public async Task <ActionResult> UploadPrenotifications(Guid notificationId, PrenotificationBulkUploadViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.NotificationId = notificationId;
                model = new PrenotificationBulkUploadViewModel(notificationId);
                return(View(model));
            }

            var validationSummary = await validator.GetPrenotificationValidationSummary(model.File, notificationId, User.GetAccessToken());

            var failedFileRules    = validationSummary.FileRulesResults.Where(r => r.MessageLevel == MessageLevel.Error).Select(r => r.Rule).ToList();
            var failedContentRules = validationSummary.ContentRulesResults.Where(r => r.MessageLevel == MessageLevel.Error).ToList();

            model.FailedFileRules    = failedFileRules;
            model.FailedContentRules = failedContentRules;
            var shipments = validationSummary.ShipmentNumbers != null?validationSummary.ShipmentNumbers.ToList() : null;

            var shipmentsModel = new ShipmentMovementDocumentsViewModel(notificationId, shipments, model.File.FileName);

            TempData["PrenotificationShipments"] = shipments;
            TempData["PreNotificationFileName"]  = model.File.FileName;

            if (model.ErrorsCount > 0)
            {
                return(View("Errors", model));
            }

            TempData["DraftBulkUploadId"] = validationSummary.DraftBulkUploadId;

            return(View("Documents", shipmentsModel));
        }
        public void PostIndex_RedirectsToUpload()
        {
            var model = new PrenotificationBulkUploadViewModel(Guid.NewGuid());

            var result = controller.Index(model.NotificationId, model) as RedirectToRouteResult;

            Assert.NotNull(result);
            Assert.Equal("UploadPrenotifications", (string)result.RouteValues["action"]);
        }
        public async Task PostUploadPrenotifications_MissingFile_ReturnsView()
        {
            controller.ModelState.AddModelError("File", "Missing file");

            var model = new PrenotificationBulkUploadViewModel(Guid.NewGuid());

            var result = await controller.UploadPrenotifications(model.NotificationId, model) as ViewResult;

            Assert.NotNull(result);
            Assert.Equal(string.Empty, result.ViewName);
        }
        public async Task <ActionResult> Index(Guid notificationId)
        {
            ViewBag.NotificationId = notificationId;

            var ruleSummary = await mediator.SendAsync(new GetMovementRulesSummary(notificationId));

            var updatedRules = ruleSummary.RuleResults.Where(p => p.Rule != MovementRules.ConsentExpiresInThreeOrLessWorkingDays &&
                                                             p.Rule != MovementRules.ConsentExpiresInFourWorkingDays &&
                                                             p.Rule != MovementRules.HasApprovedFinancialGuarantee &&
                                                             p.Rule != MovementRules.FileClosed);

            var updatedSummary = new MovementRulesSummary(updatedRules);

            if (!updatedSummary.IsSuccess)
            {
                return(GetRuleErrorView(updatedSummary));
            }

            var model = new PrenotificationBulkUploadViewModel(notificationId);

            return(View("Index", model));
        }
        public ActionResult UploadPrenotifications(Guid notificationId)
        {
            var model = new PrenotificationBulkUploadViewModel(notificationId);

            return(View(model));
        }
 public ActionResult Index(Guid notificationId, PrenotificationBulkUploadViewModel model)
 {
     return(RedirectToAction("UploadPrenotifications"));
 }
 public ActionResult Errors(Guid notificationId, PrenotificationBulkUploadViewModel model)
 {
     return(RedirectToAction("Documents"));
 }