Пример #1
0
        public async Task <IEnumerable <TModel> > FindAll(IStoredProcedureQuery namedQuery)
        {
            var results = await ExecuteQueryResults(namedQuery);

            results = OnFindAll(results);
            return(results);
        }
Пример #2
0
        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());
        }
Пример #3
0
        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);
        }