public async Task <TDomain> Find(ICriteriaDomainQuery <TDomainCriteria> query)
        {
            var results = await FindAll(query);

            VerifyOneResult(results);
            return(results.FirstOrDefault());
        }
        public async Task <IEnumerable <TDomain> > ExecuteCriteria(ICriteriaDomainQuery <TDomainCriteria> query)
        {
            var results = await ExecuteQueryResults(query.BuildDomainCriteria());

            if (query.SingleResult)
            {
                VerifyOneResult(results);
            }

            return(results);
        }
 public async Task <IEnumerable <TDomain> > FindAll(ICriteriaDomainQuery <TDomainCriteria> query)
 {
     return(OnFindAll(await ExecuteCriteria(query)));
 }