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))); }
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>()); }