Пример #1
0
        public IResult <ICustomerContractDetailReturn> GetCustomerContract(string customerContractKey)
        {
            if (customerContractKey == null)
            {
                throw new ArgumentNullException("customerContractKey");
            }

            var contractKeyResult = KeyParserHelper.ParseResult <IContractKey>(customerContractKey);

            if (!contractKeyResult.Success)
            {
                return(contractKeyResult.ConvertTo <ICustomerContractDetailReturn>());
            }
            var contractKey = new ContractKey(contractKeyResult.ResultingObject);

            var select         = ContractProjectors.SelectDetail();
            var contractDetail = _inventoryShipmentOrderUnitOfWork.ContractRepository.All()
                                 .Where(contractKey.FindByPredicate)
                                 .SplitSelect(select).FirstOrDefault();

            if (contractDetail == null)
            {
                return(new InvalidResult <ICustomerContractDetailReturn>(null, string.Format(UserMessages.CustomerContractNotFound, customerContractKey)));
            }

            return(new SuccessResult <ICustomerContractDetailReturn>(contractDetail));
        }
Пример #2
0
        public IResult <IContractShipmentSummaryReturn> GetContractShipmentSummary(string contractKey)
        {
            var contractKeyResult = KeyParserHelper.ParseResult <IContractKey>(contractKey);

            if (!contractKeyResult.Success)
            {
                return(contractKeyResult.ConvertTo <IContractShipmentSummaryReturn>());
            }
            var key    = new ContractKey(contractKeyResult.ResultingObject);
            var select = ContractProjectors.SplitSelectShipmentSummary();

            var contract = _inventoryShipmentOrderUnitOfWork.ContractRepository
                           .All().Where(key.FindByPredicate)
                           .SplitSelect(select).FirstOrDefault();

            if (contract == null)
            {
                return(new InvalidResult <IContractShipmentSummaryReturn>(null, string.Format(UserMessages.CustomerContractNotFound, contractKey)));
            }

            return(new SuccessResult <IContractShipmentSummaryReturn>(contract));
        }
Пример #3
0
        public IResult <IQueryable <ICustomerContractSummaryReturn> > GetCustomerContracts(FilterCustomerContractsParameters parameters)
        {
            var parsedFiltersResult = parameters.ParseToPredicateBuilderFilters();

            if (!parsedFiltersResult.Success)
            {
                return(parsedFiltersResult.ConvertTo <IQueryable <ICustomerContractSummaryReturn> >());
            }

            var predicateResult = ContractPredicateBuilder.BuildPredicate(parsedFiltersResult.ResultingObject);

            if (!predicateResult.Success)
            {
                return(predicateResult.ConvertTo <IQueryable <ICustomerContractSummaryReturn> >());
            }

            var select = ContractProjectors.SelectSummary();
            var query  = _inventoryShipmentOrderUnitOfWork.ContractRepository.All()
                         .Where(predicateResult.ResultingObject)
                         .SplitSelect(select);

            return(new SuccessResult <IQueryable <ICustomerContractSummaryReturn> >(query));
        }