Example #1
0
        //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);
        }
Example #2
0
 //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));
        }