public async Task <IActionResult> DayDetails(DateTime startDate, DateTime mealDate) { Customer customer = await repository.GetCustomer(userManager, HttpContext); ViewData["customerName"] = customer.Name; OrderedMeal OrderedMealForDate = repository .GetOrderedMealForDate(startDate, mealDate, customer.EMail); bool test = OrderedMealForDate == null; System.Diagnostics.Debug.WriteLine("Ordered meal is null? " + test); MealDetailViewModel mealDetailViewModel = new MealDetailViewModel(OrderedMealForDate) { Date = mealDate, StartDate = startDate }; if (OrderedMealForDate != null) { int MealId = OrderedMealForDate.MealId; mealDetailViewModel.OrderedMeal = await repository.GetMealById(MealId); } return(View(mealDetailViewModel)); }
public void OrderedMealShouldBeMappedToOrderedMealPoco() { //Arrange var orderedMeal = new OrderedMeal { Count = 6, MealName = "meal name", OrderId = 145, Id = 1765, Price = 234.67, PurchaserName = "purchaser name" }; //Act var mappedOrderedMeal = _orderdedMealMapper.MapToPoco(orderedMeal); //Assert Assert.Equal(mappedOrderedMeal.Id, mappedOrderedMeal.Id); Assert.Equal(mappedOrderedMeal.MealName, mappedOrderedMeal.MealName); Assert.Equal(mappedOrderedMeal.Count, mappedOrderedMeal.Count); Assert.Equal(mappedOrderedMeal.OrderId, mappedOrderedMeal.OrderId); Assert.Equal(mappedOrderedMeal.Price, mappedOrderedMeal.Price); Assert.Equal(mappedOrderedMeal.PurchaserName, mappedOrderedMeal.PurchaserName); Assert.IsType <OrderedMealPoco>(mappedOrderedMeal); }
public async Task <IActionResult> SetMeal(OrderedMeal orderedMeal) { Customer customer = await repository.GetCustomer(userManager, HttpContext); Meal Meal = await repository.GetMealById(orderedMeal.MealId); orderedMeal.Meal = Meal; orderedMeal.TotalPrice = orderedMeal.CalculateTotalPrice(); System.Diagnostics.Debug.WriteLine("Calculated price: " + orderedMeal.CalculateTotalPrice()); System.Diagnostics.Debug.WriteLine("Received date: " + orderedMeal.MealDate); DateTime activeMonday; if ((int)orderedMeal.MealDate.DayOfWeek == 0) { activeMonday = orderedMeal.MealDate.AddDays(-6); } else { activeMonday = orderedMeal.MealDate.AddDays(1 - (int)orderedMeal.MealDate.DayOfWeek); } System.Diagnostics.Debug.WriteLine("Active monday SetMeal: " + activeMonday); Order order = await GetOrderFromSession(activeMonday, customer.EMail); OrderedMeal existing = order.OrderedMeals.FirstOrDefault( om => om.MealDate.Date == orderedMeal.MealDate.Date); order.OrderedMeals.Remove(existing); order.OrderedMeals.Add(orderedMeal); SaveOrderToSession(order); return(RedirectToAction("EditOrder", new { startDate = activeMonday })); }
public IActionResult TakeoutOrderForm(AddOrderedMealViewModel model) { if (model.OrderedMeals == null) { model.OrderedMeals = new List <OrderedMeal>(); } var meal = new OrderedMeal { MenuEntryId = (int)model.CurrentOrderedMealId, Quantity = (int)model.Quantity, Comment = model.Comments, Price = _context.MenuEntries.Find(model.CurrentOrderedMealId).Price }; model.OrderedMeals.Add(meal); CreateTakeoutPriorityOrderQueue(model); var menuEntries = _context.MenuEntries.Include(m => m.Menu).ToList(); var selectList = new List <SelectListItem>(); foreach (var entry in menuEntries) { selectList.Add(new SelectListItem() { Value = entry.MenuEntryId.ToString(), Text = entry.MenuEntryName, });; } ViewData["Menu"] = new SelectList(selectList, "Value", "Text"); return(Redirect("/User/TakeoutOrdersPage")); }
public bool HasMealForDate(DateTime mealDate) { OrderedMeal oMeal = Order.OrderedMeals .FirstOrDefault(om => om.MealDate == mealDate); bool test = oMeal != null; System.Diagnostics.Debug.WriteLine("Meal found for date? " + test); return(test); }
public decimal BirthDateDiscount() { OrderedMeal oMealForBirthDate = OrderedMeals .FirstOrDefault(om => om.MealDate.Month == BirthDate.Month && om.MealDate.Day == BirthDate.Day); if (oMealForBirthDate == null) { return(0); } return(oMealForBirthDate.TotalPrice); }
public IActionResult AddOrderedMeal(int?id, AddOrderedMealViewModel model) { if (model.OrderedMeals == null) { model.OrderedMeals = new List <OrderedMeal>(); } var meal = new OrderedMeal { InOrderOrderId = (int)model.OrderId, MenuEntryId = (int)model.CurrentOrderedMealId, Quantity = (int)model.Quantity, Comment = model.Comments, Price = _context.MenuEntries.Find(model.CurrentOrderedMealId).Price }; model.OrderedMeals.Add(meal); foreach (var m in model.OrderedMeals) { var om = new OrderedMeal { InOrderOrderId = (int)model.OrderId, MenuEntryId = m.MenuEntryId, Quantity = m.Quantity, Comment = m.Comment, Price = m.Price }; _context.Add(om); } _context.SaveChanges(); var menuEntries = _context.MenuEntries.Include(m => m.Menu).ToList(); var selectList = new List <SelectListItem>(); foreach (var entry in menuEntries) { selectList.Add(new SelectListItem() { Value = entry.MenuEntryId.ToString(), Text = entry.MenuEntryName, });; } ViewData["Menu"] = new SelectList(selectList, "Value", "Text"); return(Redirect("/Waiter/OrderPage/" + model.OrderId.ToString())); }
public bool HasPlusFifteenOrders() { if (OrderedMeals.Count() < 15) { return(false); } OrderedMeal oMealForBirthDate = OrderedMeals .FirstOrDefault(om => om.MealDate.Date == BirthDate.Date); if (oMealForBirthDate == null) { return(true); } return(OrderedMeals.Count() > 15); }
public MealDetailViewModel(OrderedMeal orderedMeal) { bool test = orderedMeal == null; System.Diagnostics.Debug.WriteLine("Received ordered meal is null? " + test); if (test) { HasOrderedMeal = false; return; } IncludeStarter = orderedMeal.IncludeStarter; IncludeDessert = orderedMeal.IncludeDessert; Size = orderedMeal.Size; // Meal object is given through controller }
public IActionResult AddOrderedMealAdd(AddOrderedMealViewModel model) { if (model.OrderedMeals == null) { model.OrderedMeals = new List <OrderedMeal>(); } var meal = new OrderedMeal { InOrderOrderId = (int)model.OrderId, MenuEntryId = (int)model.CurrentOrderedMealId, Quantity = (int)model.Quantity, Comment = model.Comments, Price = _context.MenuEntries.Find(model.CurrentOrderedMealId).Price }; model.OrderedMeals.Add(meal); for (int i = 0; i < model.OrderedMeals.Count; i++) { model.OrderedMeals[i].MenuEntry = _context.MenuEntries.Find(model.OrderedMeals[i].MenuEntryId); } model.CurrentOrderedMealId = null; model.Quantity = null; model.Comments = null; var menuEntries = _context.MenuEntries.Include(m => m.Menu).ToList(); var selectList = new List <SelectListItem>(); foreach (var entry in menuEntries) { selectList.Add(new SelectListItem() { Value = entry.MenuEntryId.ToString(), Text = entry.MenuEntryName, });; } ViewData["Menu"] = new SelectList(selectList, "Value", "Text"); return(View("AddOrderedMeal", model)); }
public void CreateTakeoutPriorityOrderQueue(AddOrderedMealViewModel model) { var usrID = HttpContext.Session.GetInt32("userID"); var users = _context.Users.Include(t => t.TakeoutOrders).Include(r => r.Reservations).ToList(); foreach (var user in users) { user.LoyalityPoints = user.Reservations.Where(r => r.State != (int)OrderState.Canceled).ToList().Count; user.LoyalityPoints -= user.Reservations.Where(r => r.State == (int)OrderState.Canceled).ToList().Count; user.LoyalityPoints += user.TakeoutOrders.Where(r => r.State != (int)OrderState.Canceled).ToList().Count; user.LoyalityPoints -= user.TakeoutOrders.Where(r => r.State == (int)OrderState.Canceled).ToList().Count; } var takeout = new TakeoutOrder { OrderedByUserId = (int)usrID, OrderDate = DateTime.Now, OrderedForDate = (DateTime)model.OrderedForDate, Price = 0, State = (int)OrderState.Created, ManagedByWaiterId = 1 }; var minDate = takeout.OrderedForDate.AddMinutes(-5); var maxDate = takeout.OrderedForDate.AddMinutes(5); var beforeTake = _context.TakeoutOrders.Where(d => DateTime.Compare(minDate, d.OrderedForDate) <= 0); var afterTake = beforeTake.Where(d => DateTime.Compare(maxDate, d.OrderedForDate) >= 0).Include(u => u.OrderedBy); var overlaped = afterTake.FirstOrDefault(); bool overlap = overlaped != null ? true : false; int currentUserPoints = users.Where(l => l.UserId == (int)usrID).FirstOrDefault().LoyalityPoints; int overlapUserPoints = overlap ? overlaped.OrderedBy.LoyalityPoints : 0; if (overlap) { if (overlapUserPoints >= currentUserPoints) { takeout.State = (int)OrderState.Canceled; _context.Add(takeout); _context.SaveChanges(); foreach (var m in model.OrderedMeals) { var om = new OrderedMeal { InTakeoutTakeoutOrderId = takeout.TakeoutOrderId, MenuEntryId = m.MenuEntryId, Quantity = m.Quantity, Comment = m.Comment, Price = m.Price }; _context.Add(om); } } else { overlaped.State = (int)OrderState.Canceled; _context.Update(overlaped); _context.Add(takeout); _context.SaveChanges(); foreach (var m in model.OrderedMeals) { var om = new OrderedMeal { InTakeoutTakeoutOrderId = takeout.TakeoutOrderId, MenuEntryId = m.MenuEntryId, Quantity = m.Quantity, Comment = m.Comment, Price = m.Price }; _context.Add(om); } } } else // No overlap detected { _context.Add(takeout); _context.SaveChanges(); foreach (var m in model.OrderedMeals) { var om = new OrderedMeal { InTakeoutTakeoutOrderId = takeout.TakeoutOrderId, MenuEntryId = m.MenuEntryId, Quantity = m.Quantity, Comment = m.Comment, Price = m.Price }; _context.Add(om); } } _context.SaveChanges(); }
public void AddOrderedMeal(OrderedMeal orderedMeal) { var orderedMealPoco = _mealMapper.MapToPoco(orderedMeal); _db.Insert("OrderedMeals", "Id", orderedMealPoco); }
public void AddMeal(OrderedMeal meal) { orderRepository.AddOrderedMeal(meal); }