Beispiel #1
0
        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());
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
 public void AddOrderToWeekOrder(WeekOrder weekOrder, Order order)
 {
     weekOrder.Orders = new List <Order>
     {
         order
     };
     context.SaveChanges();
 }
Beispiel #6
0
        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);
        }
Beispiel #8
0
 public void InsertWeekOrder(WeekOrder weekOrder)
 {
     context.WeekOrders.Add(weekOrder);
     context.SaveChanges();
 }