private async Task<ActionResult> ReturnShipmentDateView(Guid notificationId) { var movementNumber = await mediator.SendAsync(new GenerateMovementNumber(notificationId)); var shipmentDates = await mediator.SendAsync(new GetShipmentDates(notificationId)); ViewBag.MovementNumber = movementNumber; var model = new ShipmentDateViewModel(shipmentDates, movementNumber); return View("ShipmentDate", model); }
private ShipmentDateViewModel GetViewModel(DateTime? actualDate) { var shipmentDates = new ShipmentDates { StartDate = new DateTime(2015, 2, 1), EndDate = new DateTime(2016, 1, 1) }; var shipmentDateViewModel = new ShipmentDateViewModel(shipmentDates, 10); if (actualDate.HasValue) { shipmentDateViewModel.Day = actualDate.Value.Day; shipmentDateViewModel.Month = actualDate.Value.Month; shipmentDateViewModel.Year = actualDate.Value.Year; } return shipmentDateViewModel; }
public async Task<ActionResult> ShipmentDate(Guid notificationId, ShipmentDateViewModel model) { TempData[MovementNumberKey] = model.MovementNumber; TempData[ShipmentDateKey] = model.AsDateTime(); if (!ModelState.IsValid) { ViewBag.MovementNumber = model.MovementNumber; return View(model); } var proposedMovementDate = await mediator.SendAsync(new IsProposedMovementDateValid(notificationId, model.AsDateTime().Value)); if (proposedMovementDate.IsOutOfRange) { ModelState.AddModelError("Day", "The actual date of shipment cannot be more than 30 calendar days in the future. Please enter a different date."); } if (proposedMovementDate.IsOutsideConsentPeriod) { ModelState.AddModelError("Day", "The actual date of shipment cannot be outside of the consent validity period. Please enter a different date."); } if (!ModelState.IsValid) { ViewBag.MovementNumber = model.MovementNumber; return View(model); } var workingDaysUntilShipment = await mediator.SendAsync(new GetWorkingDaysUntil(notificationId, model.AsDateTime().GetValueOrDefault())); if (workingDaysUntilShipment < 4) { return RedirectToAction("ThreeWorkingDaysWarning", "Create"); } return RedirectToAction("Quantity", "Create"); }