//all product info public static product1 calculateDealForProducts(product1 Data, PistisContext db) { var finaldDeal = deals(db); var dealpro = new List <DealProduct>(); foreach (var f in finaldDeal) { dealpro.AddRange(f.DealProduct); } var pi = Convert.ToInt32(db.ProductVariantDetails.Where(x => x.Id == Data.VariantDetailId).Include(x => x.Product.ProductCategory).FirstOrDefault().Product?.ProductCategory?.ParentId); var catid = getparentCat(pi, db); Data.Commission = GetCommissionByCategoryId(catid, db); if (dealpro.Any(z => z.ProductVariantId == Data.VariantDetailId)) { foreach (var p in dealpro.Where(z => z.ProductVariantId == Data.VariantDetailId)) { Data.Discount = Data.Discount + Convert.ToInt32(p.Deal.Discount); var priceaftercomm = Data.SellingPrice + (Data.SellingPrice * Data.Commission / 100); Data.SellingPrice = priceaftercomm; Data.PriceAfterdiscount = (priceaftercomm - (priceaftercomm * Data.Discount / 100)); Data.ActiveTo = p.Deal.ActiveTo; } } else { Data.Discount = Data.Discount; var priceaftercomm = Data.SellingPrice + (Data.SellingPrice * Data.Commission / 100); Data.SellingPrice = priceaftercomm; Data.PriceAfterdiscount = (priceaftercomm - (priceaftercomm * Data.Discount / 100)); } return(Data); }
//all product info public static product1 calculatePriceForProducts(product1 d, PistisContext db) { var increment = db.PaymentConfiguration.Where(x => x.IsApplied == true).FirstOrDefault(); if (increment != null) { if (d.SellingPrice >= increment.Amount) { d.SellingPrice = d.SellingPrice + (d.SellingPrice * increment.Percentage / 100); d.PriceAfterdiscount = (d.SellingPrice - (d.SellingPrice * d.Discount / 100)); } } return d; }
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)); }