Ejemplo n.º 1
0
        public async Task <IActionResult> DeliveryAddRangeHours(OrderDeliveryAddRangeHoursInputModel orderFromView)
        {
            var userName = this.User.Identity.Name;

            var result = await this.ordersService.SetDeliveryRangeHoursAsync(orderFromView, userName, this.ModelState);

            var hourList = OrderConstants.HourList.Split(';', StringSplitOptions.RemoveEmptyEntries);

            result.DeliveryForStartHours = hourList.Select(x => new SelectListItem {
                Text = x, Value = x
            }).ToList();
            result.DeliveryForEndHours = hourList.Select(x => new SelectListItem {
                Text = x, Value = x
            }).ToList();

            if (!this.ModelState.IsValid)
            {
                return(this.View(result));
            }

            return(this.RedirectToAction(nameof(this.DeliveryWaitingRangeHours)));
        }
Ejemplo n.º 2
0
        public async Task <OrderDeliveryAddRangeHoursViewModel> SetDeliveryRangeHoursAsync(OrderDeliveryAddRangeHoursInputModel orderFromView, string username, ModelStateDictionary modelState)
        {
            if (!modelState.IsValid)
            {
                var errorModel = await this.GetByIdAsync <OrderDeliveryAddRangeHoursViewModel>(orderFromView.Id);

                errorModel.DeliveringForStartHour = orderFromView.DeliveringForStartHour;
                errorModel.DeliveringForEndHour   = orderFromView.DeliveringForEndHour;

                return(errorModel);
            }

            var orderFromDb = await this.orderRepository.All().FirstOrDefaultAsync(x => x.Id == orderFromView.Id);

            // If order with Id NOT exists
            if (orderFromDb == null)
            {
                throw new ArgumentNullException(nameof(orderFromView.Id), string.Format(OrderConstants.NullReferenceOrderIdNotFound, orderFromView.Id));
            }

            orderFromDb.DeliveringForStartHour = orderFromView.DeliveringForStartHour;
            orderFromDb.DeliveringForEndHour   = orderFromView.DeliveringForEndHour;

            orderFromDb.StatusId = await this.orderStatusService.GetIdByNameAsync(OrderConstants.StatusDeliveryArrangedDateWaiting);

            orderFromDb.CreatorId = await this.employeesService.GetIdByUserNameAsync(username);

            this.orderRepository.Update(orderFromDb);

            await this.orderRepository.SaveChangesAsync();

            return(orderFromDb.To <OrderDeliveryAddRangeHoursViewModel>());
        }