How can I define a contract for the abstract GetSubscriptions method in the following example, except by introducing an interface and defining the contract on that?
public IEnumerable<T> GetSubscriptions()
{
using (var connection = _dataProviderFactory.CreateDbConnection(_connectionString))
{
connection.Open();
var subscriptionsQuery = GetSubscriptions(connection);
Contract.Assume(subscriptionsQuery != null);
var subscriptions = subscriptionsQuery.ToList();
Contract.Assume(subscriptions != null);
_logger.Log(LogEvents.SubscriptionsRead, subscriptions.Count(), typeof(T).Name);
return subscriptions;
}
}
protected abstract IEnumerable<T> GetSubscriptions(IDbConnection connection);
PS: This forum editor really sucks ;)