public async Task <IEnumerable <TModel> > FindAll(IStoredProcedureQuery namedQuery) { var results = await ExecuteQueryResults(namedQuery); results = OnFindAll(results); return(results); }
public async Task <TModel> Find(IStoredProcedureQuery namedQuery) { var results = await FindAll(namedQuery); Invariant.IsFalse(results.Count() > 1, () => "More than one result found for query: {0}".FormatInvariantCulture(this)); return(results.FirstOrDefault()); }
private async Task <IEnumerable <TModel> > ExecuteQueryResults(IStoredProcedureQuery storedProcedureQuery) { var repository = _persistenceFactory.GetPersistence(storedProcedureQuery.GetType()); Invariant.IsNotNull(repository, () => $"IPersistence is null for '{storedProcedureQuery.GetType().PrettyPrint()}'"); var queryResults = await repository.ExecuteStoredProcedure <TModel>(storedProcedureQuery.BuildNamedCriteria(), CancellationToken.None); OnAfterQueryExecuted(queryResults); return(queryResults); }