/// <summary> /// Gets the coupon create item view model async. /// </summary> /// <returns>The coupon create item view model async.</returns> /// <param name="Id">Identifier.</param> public async Task <CouponCreateItemViewModel> GetCouponCreateItemViewModelAsync(Guid Id) { var coupon = await _context.Coupons.Include(item => item.Products) .SingleOrDefaultAsync(m => m.Id == Id); if (coupon == null) { return(null); } var couponModel = new CouponCreateItemViewModel { Id = coupon.Id, Caption = coupon.Caption, DiscountTypeText = coupon.DiscountType, Discount = coupon.Discount, TotalCapacity = coupon.TotalCapacity, CurrentCapacity = coupon.CurrentCapacity, StartDate = coupon.StartDate, EndDate = coupon.EndDate, IsApproved = coupon.IsApproved, ProductsId = coupon.Products.Select(item => item.Id), ImageView = coupon.Image, Products = GetSelectListProducts(), DiscountType = GetSelectListDiscountTypes() }; return(couponModel); }
public async Task UpdateCouponAsync(CouponCreateItemViewModel couponModel) { var coupon = await GetCouponAsync(couponModel.Id); coupon.Caption = couponModel.Caption; coupon.Id = couponModel.Id; coupon.Discount = couponModel.Discount; coupon.DiscountType = couponModel.DiscountTypeText; coupon.StartDate = couponModel.StartDate; coupon.EndDate = couponModel.EndDate; coupon.TotalCapacity = couponModel.TotalCapacity; coupon.CurrentCapacity = couponModel.CurrentCapacity; coupon.IsApproved = couponModel.IsApproved; coupon.Products = await _context.Products.Where(item => couponModel.ProductsId.Contains(item.Id)).ToListAsync(); if (couponModel.Image != null) { using (var memoryStream = new MemoryStream()) { await couponModel.Image.CopyToAsync(memoryStream); if (memoryStream != null) { coupon.Image = memoryStream.ToArray(); } } } _context.Update(coupon); await _context.SaveChangesAsync(); }
public async Task <Coupon> CreateCouponAsync(CouponCreateItemViewModel couponModel) { var networkBarcodes = from c in couponModel.NetworkBarcodes select new NetworkBarcode() { BarcodeValue = c.BarcodeValue, BarcodeType = c.BarcodeType, Id = Guid.NewGuid(), Networks = _context.Networks.Where(x => c.Networks.Contains(x.Id)).ToList() }; var networkCoupons = networkBarcodes.SelectMany(item => item.Networks).ToList(); var coupon = new Coupon { Caption = couponModel.Caption, Id = Guid.NewGuid(), Discount = couponModel.Discount, DiscountType = couponModel.DiscountTypeText, StartDate = couponModel.StartDate, EndDate = couponModel.EndDate, TotalCapacity = couponModel.TotalCapacity, CurrentCapacity = couponModel.CurrentCapacity, IsApproved = couponModel.IsApproved, NetworkCoupons = new List <NetworkCoupon>(), NetworkBarcodes = networkBarcodes.ToList(), UserCoupons = new List <UserCoupon>(), Products = await _context.Products.Where(item => couponModel.ProductsId.Contains(item.Id)).ToListAsync() }; var networkCouponsList = new List <NetworkCoupon>(networkCoupons.Count); networkCouponsList = networkCoupons.Select(item => new NetworkCoupon { CouponId = coupon.Id, Coupon = coupon, NetworkId = item.Id, Network = item }).ToList(); coupon.NetworkCoupons = networkCouponsList; if (couponModel.Image != null) { using (var memoryStream = new MemoryStream()) { await couponModel.Image.CopyToAsync(memoryStream); if (memoryStream != null) { coupon.Image = memoryStream.ToArray(); } } } _context.Add(coupon); await _context.SaveChangesAsync(); return(coupon); }
public async Task <IActionResult> Edit(Guid id, CouponCreateItemViewModel couponModel) { if (id != couponModel.Id) { return(NotFound()); } if (ModelState.IsValid) { try { // var coupon = new Coupon // { // TotalCapacity = couponItem.TotalCapacity, // CurrentCapacity = couponItem.CurrentCapacity, // CouponName = couponItem.CouponName, // Id = couponItem.Id // }; // using (var memoryStream = new MemoryStream()) // { // await couponItem.CouponImage.CopyToAsync(memoryStream); // if (memoryStream != null) // { // coupon.CouponImage = memoryStream.ToArray(); // } // } // _context.Update(coupon); // await _context.SaveChangesAsync(); await _couponService.UpdateCouponAsync(couponModel); } catch (DbUpdateConcurrencyException) { if (!CouponExists(couponModel.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } couponModel.Products = _couponService.GetSelectListProducts(); couponModel.DiscountType = _couponService.GetSelectListDiscountTypes(); couponModel.Networks = _couponService.GetMultiSelectListNetworks(); return(View(couponModel)); }
public async Task <CouponCreateItemViewModel> GetCouponProductsListItemViewModelAsync() { var couponModel = new CouponCreateItemViewModel(); couponModel.Products = GetSelectListProducts(); couponModel.NetworkBarcodes = new List <NetworkBarcodeViewModel>() { new NetworkBarcodeViewModel() { BarcodeValue = "", Networks = new List <Guid>() } }; couponModel.Networks = GetMultiSelectListNetworks(); couponModel.DiscountType = GetSelectListDiscountTypes(); return(couponModel); }
public async Task <IActionResult> Create(CouponCreateItemViewModel couponModel) { if (couponModel.DiscountTypeText.Equals(Constants.DISCOUNT_TYPE_PERCENT)) { if (couponModel.Discount < 0 || couponModel.Discount > 100) { ModelState.AddModelError("Discount", "Out of range of possible values"); } } if (couponModel.Image == null) { ModelState.AddModelError("Image", "Please, provide image for coupon"); } if (ModelState.IsValid) { var coupon = await _couponService.CreateCouponAsync(couponModel); // for test only! AA // var location = Helpers.CookiesHelper.GetGeolocation(HttpContext); // var coupon = new Coupon // { // TotalCapacity = couponItem.TotalCapacity, // CurrentCapacity = couponItem.CurrentCapacity, // CouponName = couponItem.CouponName, // Id = Guid.NewGuid() // //MerchantUser = _userManager.Users.FirstOrDefault(item => item.Id == couponItem.MerchantUserId), // }; // using (var memoryStream = new MemoryStream()) // { // await couponItem.CouponImage.CopyToAsync(memoryStream); // coupon.CouponImage = memoryStream.ToArray(); // } // _context.Add(coupon); // await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } couponModel.Products = _couponService.GetSelectListProducts(); couponModel.DiscountType = _couponService.GetSelectListDiscountTypes(); couponModel.Networks = _couponService.GetMultiSelectListNetworks(); return(View(couponModel)); }