public int GetPersonalDiscountPercent(OrderModel order, Person user) { var model = base.Model as PersonalCampaignModel; IEnumerable<LOrder> orders = Repository.Data.Get<LOrder>().Where(x => x.Customer.Id == user.Id).All(); Decimal totalUserBuyimgAmount = orders.Where(x => x.CreateDate >= DateTime.Now.AddDays( - model.ExpirationPeriod) ).Sum(ord => ord.OrderSumma); return totalUserBuyimgAmount >= model.SummaryBought ? model.Percent : 0; }
public ActionResult SubmitOrder(OrderModel orderModel) { ActionHelper.TryExecute(() => CartHelper.Source.SaveOrder(), ModelState); if (ModelState.IsValid) { SendEmail(); HttpContext.Session[WebStroreResource.CART] = null; return View("OrderComplete"); } return View("Index", CartHelper.Source.CalculateOrder()); }
private void ApplyPersonalCampaign(OrderModel model, Person user) { IEnumerable<LCampaign> campains = Repository.Data.Get<LCampaign>().All().Where(x => x.Active); int personalDiscountPercent = 0; foreach (var campaign in campains.Where(x => x.Active)) { var campaignType = (CampaignType) campaign.Metadata.CampaignType; if( campaignType == CampaignType.PersonalCampaign ) { PersonalCampaign personalCampaign = campaign.Metadata.Data; int tempResult = personalCampaign.GetPersonalDiscountPercent(model, user); if (tempResult >= personalDiscountPercent) personalDiscountPercent = tempResult; } } model.PersonalDiscount = model.OrderSumma*personalDiscountPercent / 100; }