Пример #1
0
        //GET Product Detais Filter
        public JsonResult ProductDetailsFilter(ProductDetailsFilterViewModel filter)
        {
            try
            {
                var product        = this.ProductService.GetProductById(filter.ProductId);
                var _property      = product.PropertyProducts.OrderBy(x => x.Property.PropertyName).Select(x => x.Property);
                var propertyModels = Mapper.Map <IEnumerable <Property>, IEnumerable <PropertyModel> >(_property);

                var subProducts      = product.SubProducts.Where(x => x.ProductLeft > 0);
                var subProductModels = Mapper.Map <IEnumerable <SubProduct>, IEnumerable <SubProductModel> >(subProducts);
                foreach (PropertyModel property in propertyModels)
                {
                    foreach (var subProduct in subProductModels)
                    {
                        var propertyDetails = subProduct.PropertyDetails;
                        int count           = 0;
                        foreach (var i in filter.PropertyDetailsIds)
                        {
                            if (propertyDetails.Select(x => x.Id).Contains(i))
                            {
                                count++;
                            }
                        }
                        if (count == filter.PropertyDetailsIds.Length)
                        {
                            var temp = propertyDetails.Where(x => x.Property.Id == property.Id).SingleOrDefault();
                            propertyModels.Where(x => x.Id == property.Id).FirstOrDefault()
                            .PropertyDetailsOfSubProducts.Add(temp);
                        }
                        //var temp1 = propertyDetails.Where(x => filter.PropertyDetailsIds.Contains(x.Id));
                        //if (temp1.Count() != 0)
                        //{
                        //    var temp = propertyDetails.Where(x => x.Property.Id == property.Id).FirstOrDefault();
                        //    propertyModels.Where(x => x.Id == property.Id).FirstOrDefault()
                        //   .PropertyDetailsOfSubProducts.Add(temp);
                        //}
                    }
                }
                return(Json(propertyModels));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return(Json(""));
            }
        }
Пример #2
0
        //POST Add Cart
        public JsonResult AddCart([FromBody] ProductDetailsFilterViewModel filter)
        {
            if (filter == null)
            {
                return(Json("failed"));
            }
            var             product          = this.ProductService.GetProductById(filter.ProductId);
            var             properties       = product.PropertyProducts.OrderBy(x => x.Property.PropertyName).Select(x => x.Property);
            var             subProducts      = product.SubProducts.Where(x => x.ProductLeft > 0);
            var             subProductModels = Mapper.Map <IEnumerable <SubProduct>, IEnumerable <SubProductModel> >(subProducts);
            SubProductModel subProduct       = new SubProductModel();

            foreach (var item in subProductModels)
            {
                var propertyDetails = item.PropertyDetails;
                int count           = 0;
                for (int i = 0; i < propertyDetails.Count(); i++)
                {
                    for (int j = 0; j < filter.PropertyDetailsIds.Count(); j++)
                    {
                        if (propertyDetails[i].Id == filter.PropertyDetailsIds[j])
                        {
                            count++;
                        }
                    }
                }
                if (properties.Count() == count)
                {
                    subProduct = item;
                    break;
                }
            }

            if (subProduct.Id != 0)
            {
                //var temp = this.SubProductService.GetBySubProductById(subProduct.Id);
                //var shopCart = Mapper.Map<SubProduct, ShopCartViewModel>(temp);
                //List<ShopCartViewModel> listShopCartViewModel =
                //    HttpContext.Session.GetCart("cart");
                //foreach (var item in listShopCartViewModel)
                //{
                //    if (item.SubProductId == subProduct.Id)
                //    {
                //        return Json("duplicate");
                //    }
                //}
                //shopCart.ProductOrder = 1;
                //listShopCartViewModel.Add(shopCart);
                //HttpContext.Session.SetSession("cart", listShopCartViewModel);
                //HttpContext.Session.SetInt32("count", listShopCartViewModel.Count());

                ProductInSessionModel productInSessionModel = new ProductInSessionModel();
                productInSessionModel.SubProductId  = subProduct.Id;
                productInSessionModel.NumberProduct = 1;

                SessionModel session = HttpContext.Session.GetSession("session");
                foreach (var item in session.Products)
                {
                    if (item.SubProductId == subProduct.Id)
                    {
                        return(Json("duplicate"));
                    }
                }
                session.Products.Add(productInSessionModel);
                HttpContext.Session.SetSession("session", session);

                return(Json("success"));
            }
            else
            {
                return(Json("failed"));
            }
        }