public async Task <IActionResult> AddAddressToOrder(int cartId) { var detailCart = new Models.ViewModels.OrderDetailsCart() { OrderHeader = new Models.OrderHeader() }; detailCart.OrderHeader.OrderTotal = 0; var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); //retrieve the user object in application user ApplicationUser applicationUser = await _db.ApplicationUser.Where(u => u.Id == claim.Value).FirstOrDefaultAsync(); var cart = _db.ShoppingCart.Where(u => u.ApplicationUserId == claim.Value); if (cart != null) { detailCart.listCart = cart.ToList(); } foreach (var list in detailCart.listCart) { list.MenuItem = await _db.MenuItem.FirstOrDefaultAsync(m => m.Id == list.MenuItemId); detailCart.OrderHeader.OrderTotal = detailCart.OrderHeader.OrderTotal + (list.MenuItem.Price * list.Count); } detailCart.OrderHeader.OrderTotalOriginal = detailCart.OrderHeader.OrderTotal; detailCart.OrderHeader.FirstName = applicationUser.FirstName; detailCart.OrderHeader.LastName = applicationUser.LastName; detailCart.OrderHeader.PhoneNumber = applicationUser.PhoneNumber; detailCart.OrderHeader.DeliveryStreet = applicationUser.StreetAddress; detailCart.OrderHeader.DeliveryStreetNumber = applicationUser.StreetNumber; detailCart.OrderHeader.DeliveryCountry = applicationUser.Country; detailCart.OrderHeader.DeliveryCity = applicationUser.City; detailCart.OrderHeader.DeliveryPostalCode = applicationUser.PostalCode; if (HttpContext.Session.GetString(SD.ssCouponCode) != null) { detailCart.OrderHeader.CouponCode = HttpContext.Session.GetString(SD.ssCouponCode); var couponFromDb = await _db.Coupon.Where(c => c.Name.ToLower() == detailCart.OrderHeader.CouponCode.ToLower()).FirstOrDefaultAsync(); detailCart.OrderHeader.OrderTotal = SD.DiscountedPrice(couponFromDb, detailCart.OrderHeader.OrderTotalOriginal); } return(View(detailCart)); }
public async Task <IActionResult> Index() { var detailCart = new Models.ViewModels.OrderDetailsCart() { OrderHeader = new Models.OrderHeader() }; detailCart.OrderHeader.OrderTotal = 0; var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); var cart = _db.ShoppingCart.Where(u => u.ApplicationUserId == claim.Value); if (cart != null) { detailCart.listCart = cart.ToList(); } foreach (var list in detailCart.listCart) { list.MenuItem = await _db.MenuItem.FirstOrDefaultAsync(m => m.Id == list.MenuItemId); detailCart.OrderHeader.OrderTotal = detailCart.OrderHeader.OrderTotal + (list.MenuItem.Price * list.Count); list.MenuItem.Description = SD.ConvertToRawHtml(list.MenuItem.Description); if (list.MenuItem.Description.Length > 100) { list.MenuItem.Description = list.MenuItem.Description.Substring(0, 99) + "..."; } } detailCart.OrderHeader.OrderTotalOriginal = detailCart.OrderHeader.OrderTotal; if (HttpContext.Session.GetString(SD.ssCouponCode) != null) { detailCart.OrderHeader.CouponCode = HttpContext.Session.GetString(SD.ssCouponCode); var couponFromDb = await _db.Coupon.Where(c => c.Name.ToLower() == detailCart.OrderHeader.CouponCode.ToLower()).FirstOrDefaultAsync(); detailCart.OrderHeader.OrderTotal = SD.DiscountedPrice(couponFromDb, detailCart.OrderHeader.OrderTotalOriginal); } return(View(detailCart)); }
public async Task <IActionResult> Summary(OrderHeader orderHeader) { var detailCart = new Models.ViewModels.OrderDetailsCart() { //OrderHeader = new Models.OrderHeader() OrderHeader = orderHeader }; detailCart.OrderHeader.OrderTotal = 0; var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); //retrieve the user object in application user ApplicationUser applicationUser = await _db.ApplicationUser.Where(u => u.Id == claim.Value).FirstOrDefaultAsync(); //save application user data applicationUser.FirstName = orderHeader.FirstName; applicationUser.LastName = orderHeader.LastName; applicationUser.Family = orderHeader.LastName; applicationUser.PhoneNumber = orderHeader.PhoneNumber; applicationUser.StreetAddress = orderHeader.DeliveryStreet; applicationUser.StreetNumber = orderHeader.DeliveryStreetNumber; applicationUser.City = orderHeader.DeliveryCity; applicationUser.Country = orderHeader.DeliveryCountry; applicationUser.PostalCode = orderHeader.DeliveryPostalCode; _db.ApplicationUser.Update(applicationUser); await _db.SaveChangesAsync(); var cart = _db.ShoppingCart.Where(u => u.ApplicationUserId == claim.Value); if (cart != null) { detailCart.listCart = cart.ToList(); } foreach (var list in detailCart.listCart) { list.MenuItem = await _db.MenuItem.FirstOrDefaultAsync(m => m.Id == list.MenuItemId); detailCart.OrderHeader.OrderTotal = detailCart.OrderHeader.OrderTotal + (list.MenuItem.Price * list.Count); } detailCart.OrderHeader.OrderTotalOriginal = detailCart.OrderHeader.OrderTotal; detailCart.OrderHeader.PickupName = applicationUser.LastName; detailCart.OrderHeader.PhoneNumber = applicationUser.PhoneNumber; detailCart.OrderHeader.PickUpDate = DateTime.Now; //detailCart.OrderHeader // address need to be passed here if (HttpContext.Session.GetString(SD.ssCouponCode) != null) { detailCart.OrderHeader.CouponCode = HttpContext.Session.GetString(SD.ssCouponCode); var couponFromDb = await _db.Coupon.Where(c => c.Name.ToLower() == detailCart.OrderHeader.CouponCode.ToLower()).FirstOrDefaultAsync(); detailCart.OrderHeader.OrderTotal = SD.DiscountedPrice(couponFromDb, detailCart.OrderHeader.OrderTotalOriginal); } return(View(detailCart)); }