public ActionResult CalculateBillAmount(BillRequestViewModel model) { BillCalculationResponseModel Result = new BillCalculationResponseModel(); if (ModelState.IsValid) { Result = _bill.CalculatetheBilledAmount(model); } return(Json(new { Result = Result }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// /// </summary> /// <param name="Model"></param> /// <returns></returns> public BillCalculationResponseModel CalculatetheBilledAmount(BillRequestViewModel Model) { BillCalculationResponseModel Result = new BillCalculationResponseModel(); try { List <string> adsGroup = StringReplace.StringSplitter(Model.PurchasedAds); var PurchasedProductList = ProductClassifications.GettheProductClassification(adsGroup); if (PurchasedProductList.Count == 0) { Result.Message = "No Products found"; } decimal sumAmount = 0; using (WOLFCOMTechnicalTestEntities db = new WOLFCOMTechnicalTestEntities()) { var PrivilagePromotion = db.PrivilageCustomers.FirstOrDefault(x => x.CustomerPrivilageName == Model.UserType && x.Status == true); if (PrivilagePromotion == null || PrivilagePromotion.CustomerPromotions == null) { foreach (var PurchasedProduct in PurchasedProductList) { sumAmount += (PurchasedProduct.ProductPrice * PurchasedProduct.Count); } } else { var CustomerPromotionList = PrivilagePromotion.CustomerPromotions.Where(customerpromotion => PurchasedProductList.Any(product => product.ProductCode.Equals(customerpromotion.ProductCode)) && customerpromotion.Status == true).ToList(); sumAmount = BillCalculation.BillCalculationwithPromotion(CustomerPromotionList, PurchasedProductList); } Result.PrivilageType = Model.UserType; Result.Ads = Model.PurchasedAds; Result.TotalAmount = Math.Round(sumAmount, 2); } } catch (Exception ex) { logger.Error("This is an error message" + ex); throw ex; } return(Result); }