public IActionResult Index() { ViewBag.CurrentWeek = mealRepository.CurrentWeekMeals(); ViewBag.NextWeek = mealRepository.NextWeekMeals(); DateTime startOfWeek = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Monday).AddDays(-7); var user = userRepository.GetUserByEmail(User.Identity.Name); var orders = orderRepository.GetOrdersByUserId(user.UserId); var ordersForThisWeek = orders.Where(x => x.Date > startOfWeek); WeekOrder wo = weekOrderRepository .GetWeekOrdersByCustomerId(user.UserId) .Where(x => x.StartDate == startOfWeek.Date) .FirstOrDefault(); ViewBag.TotalPrice = 0; if (wo != null) { ViewBag.TotalPrice = wo.TotalPrice; } DaysLeftToOrder(ordersForThisWeek); return(View()); }
public void AddOrderToWeekOrder(int customerId, Order order) { DateTime startOfWeek = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Monday); DateTime endOfWeek = startOfWeek.AddDays(6).AddHours(23).AddMinutes(59).AddSeconds(59); var weekOrder = context.WeekOrders.Where(x => x.Customer.UserId == customerId && x.StartDate >= startOfWeek && x.EndDate <= endOfWeek).FirstOrDefault(); if (weekOrder == null) { WeekOrder wo = new WeekOrder { Customer = userRepo.GetUserById(customerId), StartDate = startOfWeek, EndDate = endOfWeek }; wo.Orders = new List <Order> { order }; InsertWeekOrder(wo); } else { AddOrderToWeekOrder(weekOrder, order); } }
public void OrderForAtleastFourWorkDays() { WeekOrder wo = MockWORepository.GetWeekOrderById(1); Assert.IsTrue(wo.CanCompleteOrder); Assert.IsTrue(wo.Orders.Count >= 4); }
public void CanReturnWeekOrderById() { WeekOrder wo = MockWORepository.GetWeekOrderById(1); Assert.IsNotNull(wo); Assert.IsInstanceOf(typeof(WeekOrder), wo); }
public void AddOrderToWeekOrder(WeekOrder weekOrder, Order order) { weekOrder.Orders = new List <Order> { order }; context.SaveChanges(); }
public bool CompleteOrder(WeekOrder weekOrder) { var toBeCompleted = context.WeekOrders.Where(x => x.WeekOrderId == weekOrder.WeekOrderId).FirstOrDefault(); if (toBeCompleted != null && toBeCompleted.CanCompleteOrder) { context.SaveChanges(); return(true); } return(false); }
public void WeekOrderPriceWithoutDiscounts() { WeekOrder weekOrder = MockWORepository.GetWeekOrderById(1); decimal woPrice = weekOrder.TotalPrice; decimal calculatedPrice = 0; foreach (Order or in weekOrder.Orders) { calculatedPrice += or.Price; } Assert.AreEqual(calculatedPrice, woPrice); }
public void InsertWeekOrder(WeekOrder weekOrder) { context.WeekOrders.Add(weekOrder); context.SaveChanges(); }