예제 #1
0
 public IResult <IQueryable <IContactSummaryReturn> > GetContacts(FilterContactsParameters parameters = null)
 {
     try
     {
         return(_companyServiceProvider.GetContacts(parameters));
     }
     catch (Exception ex)
     {
         _exceptionLogger.LogException(ex);
         return(new FailureResult <IQueryable <IContactSummaryReturn> >(null, ex.Message));
     }
 }
        public IResult<IQueryable<IContactSummaryReturn>> GetContacts(FilterContactsParameters parameters)
        {
            var parsedResult = parameters.ToParsedParameters();
            if(!parsedResult.Success)
            {
                return parsedResult.ConvertTo<IQueryable<IContactSummaryReturn>>();
            }

            var predicateResult = ContactPredicateBuilder.BuildPredicate(parsedResult.ResultingObject);
            if(!predicateResult.Success)
            {
                return predicateResult.ConvertTo<IQueryable<IContactSummaryReturn>>();
            }

            var selector = ContactProjectors.SelectSummary();
            var query = _companyUnitOfWork.ContactRepository.Filter(predicateResult.ResultingObject).AsExpandable().Select(selector);

            return new SuccessResult<IQueryable<IContactSummaryReturn>>(query);
        }
예제 #3
0
        internal static IResult <ContactPredicateBuilder.PredicateBuilderFilters> ToParsedParameters(this FilterContactsParameters parameters)
        {
            if (parameters == null)
            {
                return(new SuccessResult <ContactPredicateBuilder.PredicateBuilderFilters>(new ContactPredicateBuilder.PredicateBuilderFilters()));
            }

            var companyKeyResult = KeyParserHelper.ParseResult <ICompanyKey>(parameters.CompanyKey);

            if (!companyKeyResult.Success)
            {
                return(companyKeyResult.ConvertTo <ContactPredicateBuilder.PredicateBuilderFilters>());
            }

            return(new SuccessResult <ContactPredicateBuilder.PredicateBuilderFilters>(new ContactPredicateBuilder.PredicateBuilderFilters
            {
                CompanyKey = companyKeyResult.ResultingObject.ToCompanyKey()
            }));
        }