public IActionResult DealAllProducts() { var finalDeal = DealHelper.getdeals(db); var DealList = new List <Deal>(); var dealLists = new DealLists(); var DealListsss = new List <DealLists>(); try { foreach (var item in finalDeal) { var productList = new List <product7>(); dealLists = new DealLists(); dealLists.Id = item.Id; dealLists.ListName = item.Name; dealLists.ActiveFrom = item.ActiveFrom.Date.ToShortDateString() + "" + item.ActiveFromTime; dealLists.ActiveTo = item.ActiveFrom.Date.ToShortDateString() + "" + item.ActiveFromTime; //foreach (var item2 in item.DealProduct) //{ // var ProductData = allProducts(item2.ProductId, item.Name, 1); // productList.Add(ProductData); //} //dealLists.products.AddRange(productList); dealLists.products = allProducts(item.DealProduct.Select(x => x.ProductVariantId).ToList(), item.Id); DealListsss.Add(dealLists); } return(Ok(DealListsss)); } catch (Exception ex) { throw ex; } }
public IActionResult getDealsProductsMobile() { var finalDeal = DealHelper.getdeals(db); finalDeal = finalDeal.Where(x => x.IsShow == true).ToList();//to show on home page var DealList = new List <Deal>(); var dealLists = new DealLists(); var DealListsss = new List <DealLists>(); try { foreach (var item in finalDeal) { var productList = new List <product7>(); dealLists = new DealLists(); dealLists.Id = item.Id; dealLists.ListName = item.Name; dealLists.ActiveFrom = item.ActiveFrom.Date.ToShortDateString() + " " + item.ActiveFromTime; dealLists.ActiveTo = item.ActiveTo.Date.ToShortDateString() + " " + item.ActiveToTime; var list = allProducts(item.DealProduct.Select(x => x.ProductVariantId).ToList(), item.Id); dealLists.products = list.Take(4).OrderByDescending(x => x.Id).ToList(); DealListsss.Add(dealLists); } return(Ok(DealListsss)); } catch (Exception ex) { throw ex; } }
public IActionResult getRelatedItems(int ProductId) { var relatedTags = new List <RelatedTag>(); var result = from prt in db.ProductRelatedTagMap where prt.ProductId == ProductId join rt in db.RelatedTag on prt.RelatedTagId equals rt.Id where rt.IsActive == true select rt; relatedTags = result.ToList(); var tags = db.Tag.Where(x => x.IsActive == true).Include(x => x.ProductTags).ToList(); var finaltags = new List <Tag>(); foreach (var t in relatedTags) { finaltags.AddRange(tags.Where(x => x.Name.ToLower().Trim() == t.Name.ToLower().Trim()).ToList()); } var final = new List <ProductTag>(); var all = db.ProductTag.Where(x => x.IsActive == true && x.IsApproved == true).ToList(); foreach (var f in finaltags) { final.AddRange(all.Where(x => x.TagId == f.Id).ToList()); } var finalpro = new List <ProductCatalogue>(); final = final.Where(x => x.ProductId != ProductId).ToList(); foreach (var l in final) { var one = new ProductCatalogue(); var variant = db.ProductVariantDetails.Where(x => x.IsActive == true && x.ProductId == l.ProductId).FirstOrDefault(); var varlist = new List <ProductVariantDetail>(); if (variant != null) { varlist.Add(variant); varlist = DealHelper.calculateDeal(varlist, db); varlist = PriceIncrementHelper.calculatePrice(varlist, db); variant = varlist[0]; one.Id = l.ProductId; one.Name = db.Products.Where(x => x.Id == l.ProductId).FirstOrDefault().Name; one.CostPrice = variant.CostPrice; one.Discount = variant.Discount; one.PriceAfterDiscount = variant.PriceAfterdiscount; one.SellingPrice = variant.Price; var image = db.ProductImages.Where(x => x.IsActive == true && x.IsDefault == true && x.ProductVariantDetailId == variant.Id).Select(x => x.ImagePath150x150).FirstOrDefault(); one.Image150 = image == null?db.ProductImages.Where(x => x.IsActive == true && x.ProductVariantDetailId == variant.Id).Select(x => x.ImagePath150x150).FirstOrDefault() : image; one.InStock = variant.InStock; one.VariantDetailId = variant.Id; finalpro.Add(one); } } return(Ok(finalpro.Take(20).ToList())); }
public async Task <IActionResult> GetProductDetails(int Id, int variantId) { var data = db.ProductVariantDetails.Where(x => x.Id == variantId && x.IsActive == true).Include(x => x.Product).FirstOrDefault(); var result = new ProductDetail(); result.Description = data.Product.Description; result.Discount = data.Discount; result.InStock = data.InStock; result.Name = data.Product.Name; result.ProductId = data.ProductId; result.ProductVariantDetailId = data.Id; result.SellingPrice = data.Price; result.PriceAfterDiscount = data.PriceAfterdiscount; result.VendorId = data.Product.VendorId; result.ShipmentVendor = data.Product.ShipmentVendor ?? false; result = DealHelper.calculateDealForProductDetail(result, db); result = PriceIncrementHelper.calculatePriceForProductDetail(result, db); return(Ok(result)); }
public product7 allProducts(int Id, string name, int orderNumber) { var eachPrd = new product7(); product7 _prd = new product7(); try { var data = db.Products.Where(x => x.IsActive == true && x.IsEnable == true && x.Id == Id) .Include(c => c.ProductVariantDetails) .Include(x => x.RatingReviews) .Include(x => x.ProductImages).OrderByDescending(x => x.Id).FirstOrDefault(); if (data != null) { eachPrd.listName = name; eachPrd.listOrder = orderNumber; eachPrd.Id = data.Id; if (data.ProductImages.Count() != 0) { eachPrd.Url = data.ProductImages?.FirstOrDefault().ImagePath; eachPrd.Url150 = data.ProductImages?.FirstOrDefault().ImagePath150x150; eachPrd.Url450 = data.ProductImages?.FirstOrDefault().ImagePath450x450; } eachPrd.Rating = data.RatingReviews.Select(x => x.Rating).FirstOrDefault(); eachPrd.Description = data.Description; eachPrd.Name = data.Name; eachPrd.ShipmentVendor = data.ShipmentVendor ?? false; eachPrd.ShipmentTime = data.ShipmentTime ?? 0; eachPrd.ShipmentCost = data.ShipmentCost ?? 0; eachPrd.ProductCategoryId = data.ProductCategoryId; if (data.ProductVariantDetails.Where(c => c.IsActive == true).Any(c => c.IsDefault == true)) { eachPrd.LandingVariant = data.ProductVariantDetails.Where(c => c.IsActive == true).Where(c => c.IsDefault == true && c.IsActive == true).Select(d => new ProductVariantDetailModel { Id = d.Id, Price = d.Price, Discount = d.Discount, PriceAfterdiscount = d.PriceAfterdiscount, InStock = d.InStock, }).FirstOrDefault(); } else { eachPrd.LandingVariant = data.ProductVariantDetails.Where(c => c.IsActive == true).Select(d => new ProductVariantDetailModel { Id = d.Id, Price = d.Price, Discount = d.Discount, PriceAfterdiscount = d.PriceAfterdiscount, InStock = d.InStock, }).FirstOrDefault(); } if (eachPrd.LandingVariant != null) { eachPrd.SellingPrice = eachPrd.LandingVariant.Price; eachPrd.Discount = eachPrd.LandingVariant.Discount; eachPrd.PriceAfterdiscount = eachPrd.LandingVariant.PriceAfterdiscount; eachPrd.InStock = eachPrd.LandingVariant.InStock; var img = data.ProductImages.Where(c => c.ProductId == eachPrd.Id && c.ProductVariantDetailId == eachPrd.LandingVariant.Id && c.IsActive == true).ToList(); if (img.Any(c => c.IsDefault == true)) { eachPrd.Url = img.Where(c => c.IsDefault == true).FirstOrDefault().ImagePath; eachPrd.Url150 = img.Where(c => c.IsDefault == true).FirstOrDefault().ImagePath150x150; eachPrd.Url450 = img.Where(c => c.IsDefault == true).FirstOrDefault().ImagePath450x450; } else { eachPrd.Url = img.FirstOrDefault().ImagePath; eachPrd.Url150 = img.FirstOrDefault().ImagePath150x150; eachPrd.Url450 = img.FirstOrDefault().ImagePath450x450; } } eachPrd.VariantDetailId = eachPrd.LandingVariant.Id; eachPrd = DealHelper.calculateDealForProducts(eachPrd, db); eachPrd = PriceIncrementHelper.calculatePriceForProducts(eachPrd, db); } } catch (Exception e) { Console.WriteLine(e.Message); } return(eachPrd); }
//for deals public List <product7> allProducts(List <int> variantId, int DealId) { var all = db.ProductVariantDetails.Where(x => x.IsActive == true && x.Product.IsActive == true && x.Product.IsEnable == true) .Include(x => x.Product.ProductImages) .Include(x => x.Product.RatingReviews) .ToList(); var result = new List <ProductVariantDetail>(); foreach (var id in variantId) { var data = all.Where(x => x.Id == id).Select(X => new ProductVariantDetail() { Id = X.Id, IsActive = X.IsActive, IsDefault = X.IsDefault, Product = X.Product, Weight = X.Weight, Discount = X.Discount, CostPrice = X.CostPrice, InStock = X.InStock, Price = X.Price, PriceAfterdiscount = X.PriceAfterdiscount, ProductId = X.ProductId, ProductImages = X.ProductImages.Where(x => x.IsActive == true).ToList(), ProductSKU = X.ProductSKU, }).FirstOrDefault(); if (data != null) { result.Add(data); } } result = DealHelper.calculateDealonetime(result, DealId, db); result = PriceIncrementHelper.calculatePrice(result, db); var list = new List <product7>(); foreach (var r in result) { var model = new product7(); model.InStock = r.InStock; model.CostPrice = r.CostPrice; model.Discount = r.Discount; model.Id = r.ProductId; model.SellingPrice = r.Price; model.VariantDetailId = r.Id; model.LandingVariant.InStock = r.InStock; model.LandingVariant.Id = r.Id; model.LandingVariant.Price = r.Price; model.LandingVariant.PriceAfterdiscount = r.PriceAfterdiscount; model.Name = r.Product?.Name; model.ShipmentVendor = r.Product?.ShipmentVendor ?? false; model.ShipmentTime = r.Product?.ShipmentTime ?? 0; model.ShipmentCost = r.Product?.ShipmentCost ?? 0; model.PriceAfterdiscount = r.PriceAfterdiscount; model.ProductCategoryId = Convert.ToInt32(r.Product?.ProductCategoryId); if (r.Product?.ProductImages.Where(x => x.IsActive == true).Count() != 0) { model.Url = r.Product?.ProductImages?.Where(x => x.IsActive == true).FirstOrDefault().ImagePath; model.Url150 = r.Product?.ProductImages?.Where(x => x.IsActive == true).FirstOrDefault().ImagePath150x150; model.Url450 = r.Product?.ProductImages?.Where(x => x.IsActive == true).FirstOrDefault().ImagePath450x450; } var rating = all.Where(x => x.Id == r.Id).Select(x => x.Product.RatingReviews).FirstOrDefault(); model.Rating = rating.Select(x => x.Rating).FirstOrDefault(); model.Description = r.Product?.Description; list.Add(model); } return(list); }
public async Task <IActionResult> GetLikeProducts(string IpAddress, int UserId) { var list = new List <ProductTag>(); if (UserId > 0) { var result = from log in db.UserLogs where log.IsActive == true && log.UserId == UserId && log.Url.Contains("product-details") join tags in db.ProductTag on log.ProductId equals tags.ProductId join p in db.Products on tags.ProductId equals p.Id select tags; list = await result.ToListAsync(); } else { var result = from log in db.UserLogs where log.IsActive == true && (log.UserId == null || log.UserId == 0) && log.IPAddress == IpAddress && log.Url.Contains("product-details") join tags in db.ProductTag on log.ProductId equals tags.ProductId join p in db.Products on tags.ProductId equals p.Id select tags; list = result.ToList(); } var ids = list.Select(x => x.ProductId).Distinct(); list = new List <ProductTag>(); foreach (var l in ids) { list.AddRange(db.ProductTag.Where(x => x.ProductId == l).ToList()); } var alltags = db.ProductTag.Where(x => x.IsActive == true).ToList(); var finaltags = new List <ProductTag>(); foreach (var l in list) { var get = alltags.Where(x => x.TagId == l.TagId && x.ProductId != l.ProductId).ToList(); finaltags.AddRange(get); } var final = new List <ProductCatalogue>(); foreach (var l in finaltags) { var one = new ProductCatalogue(); var variant = db.ProductVariantDetails.Where(x => x.IsActive == true && x.ProductId == l.ProductId).FirstOrDefault(); var varlist = new List <ProductVariantDetail>(); if (variant != null) { varlist.Add(variant); varlist = DealHelper.calculateDeal(varlist, db); varlist = PriceIncrementHelper.calculatePrice(varlist, db); variant = varlist[0]; one.Id = l.ProductId; one.Name = db.Products.Where(x => x.Id == l.ProductId).FirstOrDefault().Name; one.CostPrice = variant.CostPrice; one.Discount = variant.Discount; one.PriceAfterDiscount = variant.PriceAfterdiscount; one.SellingPrice = variant.Price; var image = db.ProductImages.Where(x => x.IsActive == true && x.IsDefault == true && x.ProductVariantDetailId == variant.Id).Select(x => x.ImagePath150x150).FirstOrDefault(); one.Image150 = image == null?db.ProductImages.Where(x => x.IsActive == true && x.ProductVariantDetailId == variant.Id).Select(x => x.ImagePath150x150).FirstOrDefault() : image; one.InStock = variant.InStock; one.VariantDetailId = variant.Id; final.Add(one); } } return(Ok(final.Take(20).ToList())); }
public List <ProductCatalogue> getFilterProducts([FromBody] Filter filter, [FromQuery] int page, [FromQuery] int pagesize) { try { if (filter.SearchData == "undefined" || filter.SearchData == null) { filter.SearchData = ""; } var model = new List <ProductCatalogue>(); var products = db.Products.Where(x => x.IsActive == true && x.IsEnable == true && x.ProductCategory.IsShow == true); var prodIds = db.HomeCategoryProduct.Where(x => x.IsActive == true && x.HomeCategoryId == filter.CategoryId).Select(x => x.ProductId).ToList(); var prod = new List <Product>(); decimal minprice = 0; decimal maxprice = 0; if (filter.SelectedVariants.Count() > 0) { foreach (var s in filter.SelectedVariants) { var result = new List <Product>(); foreach (var o in s.VariantOptionId) { var pro = from cv in db.CategoryVariants where s.CategoryId == cv.ProductCategoryId && s.VariantId == cv.VariantId join pvo in db.ProductVariantOptions on cv.Id equals pvo.CategoryVariantId join pvd in db.ProductVariantDetails on pvo.ProductVariantDetailId equals pvd.Id join p in products on pvd.ProductId equals p.Id where o == pvo.VariantOptionId && cv.IsActive == true && pvo.IsActive == true && pvd.IsActive == true && p.IsActive == true select p; result.AddRange(pro.ToList()); } products = result.AsQueryable(); } } var variantsData = new List <ProductVariantDetail>(); foreach (var p in prodIds) { if (products.Any(x => x.Id == p)) { prod.Add(products.Where(x => x.Id == p).Include(x => x.ProductVariantDetails).FirstOrDefault()); } } foreach (var item in prod) { if (item.ProductVariantDetails == null) { item.ProductVariantDetails = db.ProductVariantDetails.Where(x => x.ProductId == item.Id && x.IsActive == true).ToList(); } var data = item.ProductVariantDetails.Where(b => b.IsActive == true).ToList(); variantsData.AddRange(data); } //variantsData.OrderByDescending(x => x.Id); var priceListdata = new List <ProductVariantDetail>(); var plist = prod.ToList(); var variantlist = db.ProductVariantDetails.Where(x => x.IsActive == true).Include(x => x.Product).ToList(); foreach (var p in plist) { var list = variantlist.Where(x => x.ProductId == p.Id).ToList(); priceListdata.AddRange(list); } //pricefilter var minprice1 = priceListdata.Count() == 0 ? 0 : priceListdata.Min(x => x.Price); var maxprice1 = priceListdata.Count() == 0 ? 0 : priceListdata.Max(x => x.Price); var pricelist = PriceRange(maxprice1, minprice1); var list1 = new List <ProductVariantDetail>(); minprice = filter.MinPrice != "" && filter.MinPrice != "0" ? Convert.ToDecimal(filter.MinPrice.Split('$')[1]) : 0; maxprice = filter.MaxPrice != "" && filter.MaxPrice != "0" ? Convert.ToDecimal(filter.MaxPrice.Split('$')[1]) : 0; if (maxprice == 0) { list1 = variantsData.Where(x => x.Price >= minprice).ToList(); } else { list1 = variantsData.Where(x => x.Price >= minprice && x.Price < maxprice).ToList(); } //search by name //var data11 = foreach (var l in list1) { if (l.Product == null) { l.Product = db.Products.Where(x => x.Id == l.ProductId && x.IsActive == true && x.IsEnable == true).FirstOrDefault(); } } //get data for page var final = list1.OrderByDescending(x => x.Id).Skip((page - 1) * pagesize).Take(pagesize).ToList(); var count = list1.Count(); var ProductVariantOptions = db.ProductVariantOptions.Where(b => b.IsActive == true).ToList(); var optionsList = db.VariantOptions.Where(b => b.IsActive == true).Include(x => x.Variant).ToList(); var variantsList = new List <ProductVariantDetail>(); final = DealHelper.calculateDeal(final, db); final = PriceIncrementHelper.calculatePrice(final, db); foreach (var p in final) { var pro = new ProductCatalogue(); pro.Id = p.ProductId; //pro.Name = p.Product.Name; var pdata = prod.Where(x => x.Id == p.ProductId).FirstOrDefault(); pro.Name = pdata?.Name; pro.ShipmentVendor = pdata?.ShipmentVendor ?? false; pro.ShipmentCost = pdata?.ShipmentCost ?? 0; pro.ShipmentTime = pdata?.ShipmentTime ?? 0; pro.Description = pdata?.Description; pro.ProductCategoryName = pdata?.ProductCategory?.Name; pro.ProductCategoryId = Convert.ToInt32(pdata?.ProductCategoryId); pro.InStock = p.InStock; pro.VariantDetailId = p.Id; pro.Discount = p.Discount; pro.SellingPrice = p.Price; pro.PriceAfterDiscount = p.PriceAfterdiscount; //} var selectedImage = new ProductImage(); selectedImage = db.ProductImages.Where(x => x.IsActive == true && x.IsDefault == true && x.ProductVariantDetailId == p.Id).FirstOrDefault(); if (selectedImage == null) { selectedImage = db.ProductImages.Where(x => x.IsActive == true && x.ProductVariantDetailId == pro.VariantDetailId).FirstOrDefault(); } pro.Image = selectedImage?.ImagePath; pro.Image150 = selectedImage?.ImagePath150x150; pro.Image450 = selectedImage?.ImagePath450x450; var VariantOptionIds = ProductVariantOptions.Where(x => x.ProductVariantDetailId == pro.VariantDetailId && x.IsActive == true).ToList().Select(x => x.VariantOptionId); foreach (var v in VariantOptionIds) { var data = optionsList.Where(x => x.Id == v && x.IsActive == true).FirstOrDefault().RemoveReferences(); pro.VariantOptions.Add(data); } pro.Rating = db.RatingReviews.Where(x => x.IsActive == true && x.ReviewStatusId == 1 && x.ProductId == p.ProductId).FirstOrDefault()?.Rating; pro.Count = count; pro.PriceList = pricelist; pro.AvgRate = AvgRating(p.Id); pro.ActiveTo = p.ActiveTo; if (pdata != null) { model.Add(pro); } } //rate model = model.Where(x => x.AvgRate >= filter.AvgRate).OrderByDescending(x => x.Id).ToList(); //sorting if (filter.SortBy == "HighToLow") { model = model.OrderByDescending(x => x.PriceAfterDiscount).ToList(); } else if (filter.SortBy == "LowToHigh") { model = model.OrderBy(x => x.PriceAfterDiscount).ToList(); } if (model.Count == 0) { var model1 = new ProductCatalogue(); model1.PriceList = pricelist; model.Add(model1); } return(model); } catch (Exception ex) { throw ex; } }
public List <GetCart> GetCartByCustomerPromo(int CustomerId, string ip) { var carts = new List <Cart>(); var cart = new Cart(); var vendors = db.Users.Where(b => b.IsActive == true).ToList(); if (CustomerId > 0) { carts = db.Carts.Where(x => x.UserId == CustomerId && x.IsActive == true && x.IsConvertToCheckout == false).Include(x => x.CartItems).ToList(); } //else //{ // carts = db.Carts.Where(x => x.IpAddress == ip && x.IsActive == true && x.UserId == null && x.IsConvertToCheckout == false).Include(x => x.CartItems).ToList(); //} //to add all cartitems in first cart if (carts.Count() > 1) { cart = carts[0]; for (int i = 1; i < carts.Count(); i++) { var items = db.CartItems.Where(x => x.CartId == carts[i].Id && x.CartId != cart.Id && x.IsActive == true).ToList(); foreach (var it in items) { it.CartId = cart.Id; } try { db.Entry(items).State = EntityState.Modified; db.SaveChanges(); var allcarts = db.Carts.Where(x => x.IsActive == true && x.CartItems.Count() == 0).Include(x => x.CartItems).ToList(); //allcarts.RemoveAll(x => x.Id > 0); db.Entry(allcarts).State = EntityState.Deleted; db.SaveChanges(); } catch (Exception ex) { } } } else if (carts.Count() == 1) { cart = carts[0]; } foreach (var c in cart.CartItems.Where(m => m.IsActive == true)) { c.ProductVariantDetail = db.ProductVariantDetails.Where(x => x.IsActive == true && x.Id == c.ProductVariantDetailId) .Include(x => x.Product) .Include(x => x.ProductVariantOptions) .Include(x => x.ProductImages).FirstOrDefault().RemoveReferences(); } var cartitems = new List <GetCart>(); var newitems = cart.CartItems.Where(x => x.IsActive == true).ToList(); //newitems = DealHelper.calculateDeal(newitems, db); foreach (var c in newitems) { var model = new GetCart(); model.AdditionalCost = cart.AdditionalCost; model.ProductId = Convert.ToInt32(c.ProductVariantDetail?.ProductId); model.Id = cart.Id; if (c.ProductVariantDetail?.ProductImages.Count > 0) { model.Image150 = c.ProductVariantDetail?.ProductImages.Where(x => x.IsDefault == true && x.IsActive == true).FirstOrDefault() == null ? (c.ProductVariantDetail.ProductImages.Where(x => x.IsActive == true).FirstOrDefault().ImagePath150x150 == null? c.ProductVariantDetail.ProductImages.Where(x => x.IsActive == true).FirstOrDefault().ImagePath: c.ProductVariantDetail.ProductImages.Where(x => x.IsActive == true).FirstOrDefault().ImagePath150x150) :(c.ProductVariantDetail.ProductImages.Where(x => x.IsDefault == true && x.IsActive == true).FirstOrDefault().ImagePath150x150 == null? c.ProductVariantDetail.ProductImages.Where(x => x.IsDefault == true && x.IsActive == true).FirstOrDefault().ImagePath: c.ProductVariantDetail.ProductImages.Where(x => x.IsDefault == true && x.IsActive == true).FirstOrDefault().ImagePath150x150); } model.InStock = Convert.ToInt32(c.ProductVariantDetail?.InStock); model.SellingPrice = Convert.ToInt32(c.ProductVariantDetail.Price); var p = Convert.ToInt32(db.ProductVariantDetails.Where(x => x.Id == c.ProductVariantDetailId).Include(x => x.Product.ProductCategory).FirstOrDefault().Product?.ProductCategory?.ParentId); var catid = getparentCat(p); model.Commission = GetCommissionByCategoryId(catid); model.Discount = Convert.ToInt32(c.ProductVariantDetail.Discount); model.IpAddress = cart.IpAddress; model.IsConvertToCheckout = cart.IsConvertToCheckout; model.Name = c.ProductVariantDetail?.Product?.Name; model.OrderDate = cart.OrderDate; model.OrderNumber = cart.OrderNumber; model.UserId = cart.UserId; model.ProductVariantDetailId = c.ProductVariantDetailId; if (c.ProductVariantDetail?.ProductVariantOptions != null) { foreach (var v in c.ProductVariantDetail?.ProductVariantOptions.Where(x => x.IsActive == true)) { var variantid = v.VariantOptionId; var variantop = new VariantOption(); variantop = db.VariantOptions.Where(x => x.IsActive == true && x.Id == variantid).Include(x => x.Variant).FirstOrDefault().RemoveReferences(); var variantmodel = new VariantOptionModel(); variantmodel.Id = variantop.Id; variantmodel.Name = variantop.Name; variantmodel.VariantId = variantop.VariantId; variantmodel.varientName = variantop.Variant?.Name; model.VariantOptions.Add(variantmodel); } } model.Quantity = c.Quantity; model.CartItemId = c.Id; if (c.ProductVariantDetail?.Product.VendorId > 0) { var vendor = vendors.Where(v => v.Id == c.ProductVariantDetail?.Product?.VendorId && v.RoleId == (int)RoleType.Vendor).FirstOrDefault(); if (vendor != null) { model.VendorName = vendor.DisplayName; } } cartitems.Add(model); } cartitems = DealHelper.calculateDeal(cartitems, db); cartitems = PriceIncrementHelper.calculatePrice(cartitems, db); cartitems = SpinnerPromotion(cartitems, CustomerId); return(cartitems); var getCart = new List <GetCart>(); return(getCart); }
public IActionResult CompareProducts(int?UserId, string IpAddress) { var productDetail = new product1(); var productDetaillist = new List <product1>(); var obj = new List <CompareProduct>(); var productDetails = new ProductionSpecification(); try { if (UserId > 0) { obj = db.CompareProducts.Where(x => x.IsActive == true && x.UserId == UserId) .Include(X => X.ProductVariantDetail) .Include(X => X.ProductVariantDetail.Product) .Include(X => X.ProductVariantDetail.Product.ProductImages) .Include(x => x.ProductVariantDetail.Product.RatingReviews) .Include(x => x.ProductVariantDetail.Product.ProductionSpecifications) .Take(4) .ToList(); } else if (IpAddress != null) { obj = db.CompareProducts.Where(x => x.IsActive == true && x.IpAddress == IpAddress) .Include(X => X.ProductVariantDetail) .Include(X => X.ProductVariantDetail.Product) .Include(X => X.ProductVariantDetail.Product.ProductImages) .Include(x => x.ProductVariantDetail.Product.RatingReviews) .Include(x => x.ProductVariantDetail.Product.ProductionSpecifications) .Take(4) .ToList(); } foreach (var item in obj) { productDetail = new product1(); // productDetail.ProductSpecificationDescription = item.ProductVariantDetail.Product.ProductionSpecifications.Select(x => x.Description).FirstOrDefault(); // productDetail.ProductSpecificationHeading = item.ProductVariantDetail.Product.ProductionSpecifications.Select(x => x.HeadingName).FirstOrDefault(); foreach (var spec in item.ProductVariantDetail.Product.ProductionSpecifications) { productDetails = new ProductionSpecification(); productDetails.HeadingName = item.ProductVariantDetail.Product.ProductionSpecifications.Select(x => x.Description).FirstOrDefault(); productDetails.Description = item.ProductVariantDetail.Product.ProductionSpecifications.Select(x => x.HeadingName).FirstOrDefault(); } productDetail.ProductionSpecification.Add(productDetails); productDetail.ProductId = item.ProductVariantDetail.ProductId; productDetail.VariantDetailId = item.ProductVariantDetailId; productDetail.CompareProductId = item.Id; productDetail.Name = item.ProductVariantDetail.Product.Name; productDetail.ShipmentVendor = item.ProductVariantDetail.Product.ShipmentVendor ?? false; productDetail.ShipmentTime = item.ProductVariantDetail.Product.ShipmentTime ?? 0; productDetail.ShipmentCost = item.ProductVariantDetail.Product.ShipmentCost ?? 0; productDetail.Description = item.ProductVariantDetail.Product.Description.Length >= 255? item.ProductVariantDetail.Product.Description.Substring(0, 255): item.ProductVariantDetail.Product.Description; productDetail.SellingPrice = item.ProductVariantDetail.Price; productDetail.Discount = item.ProductVariantDetail.Discount; productDetail.PriceAfterdiscount = item.ProductVariantDetail.PriceAfterdiscount; productDetail.InStock = item.ProductVariantDetail.InStock; if (item.ProductVariantDetail.Product.ProductImages.Count > 0) { if (item.ProductVariantDetail.Product.ProductImages.Any(c => c.IsDefault == true)) { productDetail.LandingImage150 = item.ProductVariantDetail.Product.ProductImages.Where(c => c.IsDefault == true && c.IsActive == true).FirstOrDefault().ImagePath150x150; } else { productDetail.LandingImage150 = item.ProductVariantDetail.Product.ProductImages.Where(c => c.IsActive == true).FirstOrDefault().ImagePath150x150; } } var reviewCount = item.ProductVariantDetail.Product.RatingReviews.Where(X => X.Review != null).Count(); var ratingCount = item.ProductVariantDetail.Product.RatingReviews.Where(x => x.Rating > 0).Count(); var ratingSum = item.ProductVariantDetail.Product.RatingReviews.Where(x => x.Rating > 0).Sum(x => x.Rating); productDetail.ReviewCount = reviewCount; if (ratingCount > 0 && ratingSum > 0) { var ratingAvg = Convert.ToSingle(ratingSum) / Convert.ToSingle(ratingCount); productDetail.RatingAvg = ratingAvg; } if (productDetail.ReviewCount > 0 && productDetail.RatingAvg > 0) { productDetail.ReviewCount = 0; productDetail.RatingAvg = 0; } if (productDetail.LandingVariant == null) { productDetail.LandingVariant = new ProductVariantDetailModel(); } productDetail.LandingVariant.Id = Convert.ToInt32(productDetail.VariantDetailId); productDetaillist.Add(productDetail); } productDetaillist = DealHelper.calculateDealForProductsList(productDetaillist, db); productDetaillist = PriceIncrementHelper.calculatePriceForProductsList(productDetaillist, db); } catch (Exception ex) { Console.WriteLine(ex.InnerException); } return(Ok(productDetaillist)); }