Exemple #1
0
        public async Task <PagedResultDto <TempProductList> > GetAdvancedTempProducts(GetProductFilterInput input)
        {
            var tempquery = _TempProductRepository.GetAll().Where(c => c.Updated == false)
                            .WhereIf(
                !input.Filter.IsNullOrEmpty(),
                p => p.ProductCode.Contains(input.Filter) ||
                p.SuspectCode.Contains(input.Filter) ||
                p.Gpcode.Contains(input.Filter)
                );
            var product = from a in tempquery
                          select new TempProductList
            {
                IsSelect                 = false,
                Id                       = a.Id,
                ProductCode              = a.ProductCode,
                ProductName              = a.ProductName,
                SuspectCode              = a.SuspectCode,
                Gpcode                   = a.Gpcode,
                Description              = a.Description,
                ProductSpecificationId   = 0,
                ProductSpecificationName = "",
                Price                    = a.Price,
                CreationTime             = a.CreationTime,
                GMTCreationTime          = a.CreationTime,
                Width                    = (int)a.Width,
                Height                   = (int)a.Height,
                Depth                    = (int)a.Depth,
                Dimention                = "",
                BafcoMade                = false,
                CategoryName             = "",
                ScreationTime            = a.CreationTime.ToString(),
            };

            var productCount = await product.CountAsync();

            var productlist = await product.ToListAsync();

            if (input.Sorting == "ProductCode,ProductSpecificationName,SuspectCode,Gpcode,Price,CategoryName,BafcoMade,CreationTime")
            {
                productlist = await product
                              .OrderByDescending(a => a.CreationTime)
                              .PageBy(input)
                              .ToListAsync();
            }
            else
            {
                productlist = await product
                              .OrderBy(input.Sorting)
                              .PageBy(input)
                              .ToListAsync();
            }
            var productlistoutput = productlist.MapTo <List <TempProductList> >();

            foreach (var data in productlistoutput)
            {
                var imageqry = _TempProductImageRepository.GetAll().Where(p => p.TemporaryProductId == data.Id).FirstOrDefault();

                if (imageqry != null)
                {
                    data.ProductImage = imageqry.ImageUrl;
                }
                var width  = "";
                var depth  = "";
                var height = "";

                if (data.Width > 0)
                {
                    width = data.Width.ToString() + " - ";
                }
                if (data.Depth > 0)
                {
                    depth = data.Depth.ToString() + " - ";
                }
                if (data.Height > 0)
                {
                    height = data.Height.ToString();
                }

                data.Dimention = width + "" + depth + "" + height;

                var quotaion = _quotationProductRepository.GetAll().Where(p => p.TemporaryProductId == data.Id).FirstOrDefault();
                if (quotaion != null)
                {
                    data.IsQuotation = true;
                }
            }

            return(new PagedResultDto <TempProductList>(productCount, productlistoutput));
        }
Exemple #2
0
        public async Task <PagedResultDto <ProductList> > GetAdvancedProducts(GetProductFilterInput input)
        {
            var query = _productRepository.GetAll().Where(p => p.Id == 0);

            if (input.ProductSpecificationId > 0)
            {
                query = _productRepository.GetAll().Where(r => r.ProductSpecificationId == input.ProductSpecificationId);
            }
            else if (input.ProductCategoryId > 0)
            {
                query = (from p in _productRepository.GetAll()
                         join ps in _ProductSpecificationRepository.GetAll() on p.ProductSpecificationId equals ps.Id
                         join pg in _productGroupRepository.GetAll() on ps.ProductGroupId equals pg.Id
                         join pc in _ProductCategoryRepository.GetAll() on pg.ProductCategoryId equals pc.Id
                         where pc.Id == input.ProductCategoryId
                         select p);
            }
            else if (input.ProductCategoryId == -2)
            {
                query = _productRepository.GetAll().Where(p => p.ProductSpecificationId == null);
            }
            else
            {
                query = _productRepository.GetAll();
            }

            query = query
                    .Include(u => u.ProductSpecifications)
                    .WhereIf(
                !input.Filter.IsNullOrEmpty(),
                p => p.ProductCode.Contains(input.Filter) ||
                p.SuspectCode.Contains(input.Filter) ||
                p.Gpcode.Contains(input.Filter) ||
                p.ProductName.Contains(input.Filter) ||
                p.ProductSpecifications.ProductGroups.ProductGroupName.Contains(input.Filter) ||
                p.ProductSpecifications.ProductGroups.ProductCategorys.Name.Contains(input.Filter) ||
                p.ProductSpecifications.Name.Contains(input.Filter)
                );


            var product = from a in query
                          select new ProductList
            {
                IsSelected               = false,
                Id                       = a.Id,
                ProductCode              = a.ProductCode,
                ProductName              = a.ProductName,
                SuspectCode              = a.SuspectCode,
                Gpcode                   = a.Gpcode,
                Description              = a.Description,
                ProductSpecificationId   = a.ProductSpecificationId,
                ProductSpecificationName = a.ProductSpecificationId > 0 ? a.ProductSpecifications.Name : "",
                Price                    = a.Price,
                ScreationTime            = a.CreationTime.ToString(),
                Width                    = a.Width,
                Height                   = a.Height,
                Depth                    = a.Depth,
                Dimention                = "",
                BafcoMade                = a.ProductSpecificationId > 0 ? a.ProductSpecifications.BafcoMade : false,
                CategoryName             = a.ProductSpecificationId > 0 ? (a.ProductSpecifications.ProductGroups.ProductCategoryId > 0 ? a.ProductSpecifications.ProductGroups.ProductCategorys.Name : "Custom Product") : "Custom Product",
                IsDiscountable           = false
            };


            var productCount = await product.CountAsync();

            var productlist = await product.ToListAsync();

            if (input.Sorting == "ProductCode,ProductSpecificationName,SuspectCode,Gpcode,Price,CategoryName,BafcoMade,CreationTime")
            {
                productlist = await product
                              .OrderByDescending(a => a.CreationTime)
                              .PageBy(input)
                              .ToListAsync();
            }
            else
            {
                productlist = await product
                              .OrderBy(input.Sorting)
                              .PageBy(input)
                              .ToListAsync();
            }
            var productlistoutput = productlist.MapTo <List <ProductList> >();

            foreach (var data in productlistoutput)
            {
                var width  = "";
                var depth  = "";
                var height = "";

                if (data.Width > 0)
                {
                    width = data.Width.ToString() + " - ";
                }
                if (data.Depth > 0)
                {
                    depth = data.Depth.ToString() + " - ";
                }
                if (data.Height > 0)
                {
                    height = data.Height.ToString();
                }

                data.Dimention = width + "" + depth + "" + height;
                var imageqry = _ProductImageRepository.GetAll().Where(p => p.ProductId == data.Id).FirstOrDefault();

                if (imageqry != null)
                {
                    data.ProductImage = imageqry.ImageUrl;
                }

                var quotaion = _quotationProductRepository.GetAll().Where(p => p.ProductId == data.Id).FirstOrDefault();
                if (quotaion != null)
                {
                    data.IsQuotation = true;
                }
                if (data.ProductSpecificationId > 0)
                {
                    var Family = (from s in _ProductSpecificationRepository.GetAll()
                                  join g in _productGroupRepository.GetAll() on s.ProductGroupId equals g.Id
                                  where s.Id == data.ProductSpecificationId
                                  select g.prodFamily).FirstOrDefault();

                    data.IsDiscountable = (bool)(Family.Discount ?? false);
                }
                else
                {
                    data.IsDiscountable = false;
                }
            }

            return(new PagedResultDto <ProductList>(productCount, productlistoutput));
        }