Пример #1
0
        public SourceCodeListModel Get(SourceCodeListModelFilter filter, int pageNumber, int pageSize, out long totalRecords)
        {
            var sourceCodes = _sourceCodeRepository.GetbyFilter(filter, pageNumber, pageSize, out totalRecords);

            if (sourceCodes == null || sourceCodes.Count() < 1)
            {
                return(null);
            }

            var packageids = sourceCodes.Where(sc => sc.PackageDiscounts != null).SelectMany(sc => sc.PackageDiscounts.Select(pd => pd.Id)).ToArray();
            var packages   = packageids.Count() > 0 ? _packageRepository.GetByIds(packageids) : null;

            var testIds = sourceCodes.Where(sc => sc.TestDiscounts != null).SelectMany(sc => sc.TestDiscounts.Select(pd => pd.Id)).ToArray();
            var tests   = testIds.Count() > 0 ? _testRepository.GetByIds(testIds) : null;

            var shippingOptionIds = sourceCodes.Where(sc => sc.ShippingDiscounts != null).SelectMany(sc => sc.ShippingDiscounts.Select(sd => sd.Id)).ToArray();
            var shippingOptions   = shippingOptionIds.Count() > 0 ? _shippingOptionRepository.GetByIds(shippingOptionIds) : null;

            var productIds = sourceCodes.Where(sc => sc.ProductDiscounts != null).SelectMany(sc => sc.ProductDiscounts.Select(pd => pd.Id)).ToArray();
            var products   = productIds.Count() > 0 ? _electronicProductRepository.GetByIds(productIds) : null;

            return(_sourceCodeFactory.Create(sourceCodes, packages, tests, shippingOptions, products));
        }