public bool Create(PromotionCreateRequest entity) { string description = entity.Description; DateTime beginDate = entity.BeginDate; DateTime expiredDate = entity.ExpiredDate; if (!util.ValidRangeLengthInput(description, 1, 250) || beginDate == null || expiredDate == null || beginDate.CompareTo(expiredDate) >= 0) { return(false); } Promotion existed = _proRepo.GetAll() .FirstOrDefault(e => e.Description.Trim().ToLower().Equals(description.Trim().ToLower())); if (existed != null) { return(false); } Promotion newEntity = new Promotion(); newEntity.Description = description.Trim(); newEntity.BeginDate = beginDate; newEntity.BrandId = entity.BrandId; return(_proRepo.Create(newEntity)); }
public ActionResult List(PagerRequest request, BannerSearchOption search) { int totalCount; var linq = _bannerRepo.Get(e => (!search.PromotionId.HasValue || (e.SourceId == search.PromotionId.Value && e.SourceType == (int)SourceType.Promotion)) && (!search.Status.HasValue || e.Status == (int)search.Status.Value) && e.Status != (int)DataStatus.Deleted , out totalCount , request.PageIndex , request.PageSize , e => { if (!search.OrderBy.HasValue) { return(e.OrderByDescending(o => o.CreatedDate)); } else { switch (search.OrderBy.Value) { case GenericOrder.OrderByCreateUser: return(e.OrderByDescending(o => o.CreatedUser)); case GenericOrder.OrderByCreateDate: default: return(e.OrderByDescending(o => o.CreatedDate)); } } }); var linq_All = linq.Join(_proRepo.GetAll(), o => o.SourceId, i => i.Id, (o, i) => new { B = o, P = i }) .GroupJoin(_resourceRepo.Get(r => r.SourceType == (int)SourceType.BannerPromotion), o => o.B.Id, i => i.SourceId, (o, i) => new { B = o.B, P = o.P, R = i.FirstOrDefault() }); var vo = from l in linq_All.ToList() select new BannerViewModel() { Id = l.B.Id, SourceId = l.B.SourceId, SourceType = l.B.SourceType, Resource = MappingManager.ResourceViewMapping(l.R), Promotion = MappingManager.PromotionViewMapping(l.P), SortOrder = l.B.SortOrder, Status = l.B.Status }; var v = new BannerCollectionViewModel(request, totalCount) { Banners = vo.ToList() }; ViewBag.SearchOptions = search; return(View("List", v)); }
public IEnumerable <Promotion> GetAll(int count) { var result = _promotionRepository.GetAll(); if (result.Count() > count) { return(result.Reverse().Take(count).Reverse()); } return(result); }
public void AddProdut(string prodName, int quanity) { IProductModel productmodel = Factorypattern.GetProduct(); productmodel.Product = _productRepository.Get(prodName); productmodel.Quanity = quanity; productmodel.Promotion = _promotionRepository.GetAll().FirstOrDefault(p => p.Products.Contains(productmodel.Product)); cart.Add(productmodel); }
public async Task <IActionResult> LoadBox(int type = 1) { try { var AllPromotions = ((List <PromotionBoxModel>)(await _promotionrepo.GetAll()).Data).Where(x => x.B_Type == type).ToList(); return(new JsonResult(ResponseModel.Success(data: AllPromotions))); } catch (Exception ex) { return(new JsonResult(ResponseModel.ServerInternalError(data: ex))); } }
/// <summary> /// Juice of the program. /// </summary> public void CalculatePromotions() { //set sub total and total first calculateSubTotal(); var allPromos = _promotionRepository.GetAll(); //In real life we will filter promotions by date range. foreach (Promotion reward in allPromos) { //Get the combined dataset of Bucket and Basket. Make sure all products in Bucket has matched. var combo = from b in reward.BucketList join l in _basketList on b.ProductTitle.ToUpper() equals l.ProductTitle.ToUpper() where l.Quantity >= b.Quantity select new { b.ProductTitle, b.Discount, b.Operator, b.Quantity, l.LinePrice, discountQualificationRatio = Math.Floor((decimal)l.Quantity / b.Quantity) }; //full bucket with basket match check var fullBucketMatch = !reward.BucketList.Select(b => b.ProductTitle).Except(combo.Select(c => c.ProductTitle)).Any(); var discountScale = combo.Count() > 0 && fullBucketMatch?combo.Min(c => c.discountQualificationRatio) : 0; foreach (var line in combo) { var absoluteDiscount = 0.0m; switch (line.Operator) { case DiscountOperator.Fraction: absoluteDiscount = line.LinePrice * line.Discount * line.Quantity * discountScale; break; case DiscountOperator.Absolute: absoluteDiscount = line.Discount * discountScale; break; case DiscountOperator.ItemReduction: absoluteDiscount = line.LinePrice * line.Discount * discountScale; break; } _total = _total - absoluteDiscount; } } }
public IEnumerable <Promotion> GetAll() { return(_promotionRepository.GetAll()); }
public string GetAll(int page) { return(_repo.GetAll(page)); }
public IEnumerable <Promotion> GetAlls() { return(_promotion.GetAll(null)); }
public IActionResult GetAll() { return(Ok(_promotionRepository.GetAll())); }
public ActionResult List(CouponInfoGetListRequest request, int?authuid, UserModel authUser) { request.AuthUid = authuid.Value; request.AuthUser = authUser; if (request == null) { return new RestfulResult { Data = new ExecuteResult <CouponInfoResponse>(null) } } ; var linq = _couponRepo.Get(c => c.User_Id == authUser.Id && c.Status != (int)CouponStatus.Deleted); if (request.Type.HasValue) { switch (request.Type.Value) { case CouponRequestType.Used: linq = linq.Where(c => c.Status == (int)CouponStatus.Used); break; case CouponRequestType.Expired: linq = linq.Where(c => c.Status != (int)CouponStatus.Used && c.ValidEndDate < DateTime.Now); break; case CouponRequestType.UnUsed: linq = linq.Where(c => c.Status != (int)CouponStatus.Used && c.ValidEndDate >= DateTime.Now); break; } } int totalCount = linq.Count(); int skipCount = request.Page > 0 ? (request.Page - 1) * request.Pagesize : 0; linq = linq.OrderByDescending(c => c.CreatedDate).Skip(skipCount).Take(request.Pagesize); var productLinq = _productRepo.GetAll().Join(_storeRepo.GetAll(), o => o.Store_Id, i => i.Id, (o, i) => new { Pd = o, S = i }); var promotionLinq = _promotionRepo.GetAll().Join(_storeRepo.GetAll(), o => o.Store_Id, i => i.Id, (o, i) => new { Pr = o, S = i }); var linq2 = linq.GroupJoin(productLinq, o => o.FromProduct, i => i.Pd.Id, (o, i) => new { C = o, Pd = i.FirstOrDefault() }) .GroupJoin(promotionLinq, o => o.C.FromPromotion, i => i.Pr.Id, (o, i) => new { C = o.C, Pd = o.Pd, Pr = i.FirstOrDefault() }); var responseData = from l in linq2.ToList() select new CouponInfoResponse().FromEntity <CouponInfoResponse>(l.C, c => { var prod = l.Pd; if (prod != null) { c.ProductInfoResponse = new ProductInfoResponse().FromEntity <ProductInfoResponse>(prod.Pd, p => { p.StoreInfoResponse = new StoreInfoResponse().FromEntity <StoreInfoResponse>(prod.S); }); c.ProductId = c.ProductInfoResponse.Id; c.ProductName = c.ProductInfoResponse.Name; c.ProductDescription = c.ProductInfoResponse.Description; c.ProductType = (int)SourceType.Product; } var pro = l.Pr; if (pro != null) { c.PromotionInfoResponse = new PromotionInfoResponse().FromEntity <PromotionInfoResponse>(pro.Pr, p => { p.StoreInfoResponse = new StoreInfoResponse().FromEntity <StoreInfoResponse>(pro.S); }); c.ProductId = c.PromotionInfoResponse.Id; c.ProductName = c.PromotionInfoResponse.Name; c.ProductDescription = c.PromotionInfoResponse.Description; c.ProductType = (int)SourceType.Promotion; } }); var response = new CouponInfoCollectionResponse(request.PagerRequest, totalCount) { CouponInfoResponses = responseData.ToList() }; return(new RestfulResult { Data = new ExecuteResult <CouponInfoCollectionResponse>(response) }); }
public List <Promotion> GetAll() { List <Promotion> promotions = _promotionRepository.GetAll().ToList(); return(promotions); }
public async Task <IEnumerable <Promotion> > GetAll() { return(await promotionRepository.GetAll()); }
public async Task <Order> CreateOrderAsync(OrderAddViewModel orderAddVM) { Order order = new Order() { ContactPhone = orderAddVM.ContactPhone, CreateDate = DateTime.Now, CusName = orderAddVM.CusName, Description = orderAddVM.Description, ShipAddress = orderAddVM.ShipAddress, ShipDate = orderAddVM.ShipDate, State = "pending", DiscountCode = orderAddVM.DiscountCode, Sum = 0, Total = 0 }; order = _orderRepository.Add(order); OrderDetail orderDetail = null; foreach (var odd in orderAddVM.OrderDetailAdds) { ShoesHasSize shoesHasSize = _shoesHasSizeRepository.GetAll() .Where(h => h.SizeId == odd.SizeId && h.ShoesId == odd.ShoesId).FirstOrDefault(); if (shoesHasSize != null) { if (shoesHasSize.Quantity >= odd.Quantity) { orderDetail = new OrderDetail() { OrderId = order.Id, Quantity = odd.Quantity, ShoesId = odd.ShoesId, SizeId = odd.SizeId }; _orderDetailRepository.Add(orderDetail); double price = _shoesRepository.GetById(odd.ShoesId.Value).Price.Value; order.Sum += price * odd.Quantity; shoesHasSize.Quantity -= odd.Quantity.Value; _shoesHasSizeRepository.Update(shoesHasSize); if (shoesHasSize.Quantity == 0) { Shoes shoes = _shoesRepository.GetById(odd.ShoesId.Value); shoes.IsAvaiable = false; _shoesRepository.Update(shoes); } } } } order.Total = order.Sum; if (order.DiscountCode != "") { order.Discount = _promotionRepository.GetAll() .Where(p => p.DiscountCode == order.DiscountCode).FirstOrDefault().Discount; order.Total -= order.Sum * order.Discount / 100; } if (order.Total == 0) { _orderRepository.Delete(order); return(null); } else { order = _orderRepository.Update(order); OrderViewModel orderVM = _mapper.Map <OrderViewModel>(order); FirebaseSerivce <OrderViewModel> firebaseSerivce = new FirebaseSerivce <OrderViewModel>(); await firebaseSerivce.SetDataAsync("orders", orderVM); } return(order); }
// GET api/promotion public IEnumerable<Promotion> GetAllPromotions() { return repo.GetAll(); }
public ResultMessage <ICollection <Promotion> > GetAll(Expression <Func <Promotion, bool> > filter = null) { return(_promotionRepository.GetAll(filter)); }