public async Task <ActionResult> CreateOrder(ViewModels.Order data) { if (ModelState.IsValid) { //Register user here // var province = await db.Provinces.Where(x => x.IdProvince == data.Province).SingleOrDefaultAsync(); var user = await db.Users.Where(x => x.UserName == User.Identity.Name).SingleOrDefaultAsync(); var newOrder = new Models.Order() { Id = Guid.NewGuid().ToString(), Title = data.Title, Descriptions = data.Descriptions, Priority = data.Priority, Province = province, Created = DateTimeOffset.Now, User = user, DeliveryAddress = data.DeliveryAddress, Status = Models.OrderStatus.Processing }; db.Orders.Add(newOrder); var result = await db.SaveChangesAsync(); if (result > 0) { return(RedirectToAction("PreviewOrder", new { id = newOrder.Id })); } } return(View()); }
public async Task <ActionResult> SubmitData(ViewModels.Order data) { var order = await db.Orders.Where(x => x.Id == data.Id).SingleOrDefaultAsync(); if (order != null) { order.Title = data.Title; order.Priority = data.Priority; order.Descriptions = data.Descriptions; order.DeliveryAddress = data.DeliveryAddress; order.Status = OrderStatus.Pending; db.Entry(order).State = EntityState.Modified; var result = await db.SaveChangesAsync(); if (result > 0) { return(RedirectToAction("Finish")); } } return(View()); }
public async Task <IActionResult> Report() { var reportViewModel = new ViewModels.Report(); var orders = await _context.Orders .Include(s => s.Items) .AsNoTracking() .ToListAsync(); decimal orderPrice; decimal total = 0; int numberOfOrders = 1; foreach (var order in orders) { orderPrice = order.Items.Where(x => x.OrderId == order.Id).Sum(x => x.Price * x.Amount); orderPrice -= order.Discount; total += orderPrice; var orderViewModel = new ViewModels.Order() { Number = numberOfOrders++, OrderCode = order.Id, DeliveryDate = order.DeliveryDate, Discount = order.Discount, OrderPrice = orderPrice }; reportViewModel.Orders.Add(orderViewModel); } reportViewModel.Total = total; reportViewModel.NumberOfOrders = --numberOfOrders; return(View(reportViewModel)); }