public ActionResult Success(Guid notificationId)
        {
            var    fileName  = string.Empty;
            var    shipments = new List <int>();
            var    shipmentMovementFileName = string.Empty;
            object fileNameObj;
            object shipmentsObj;
            object shipmentDocumentNameObj;

            if (TempData.TryGetValue("PreNotificationFileName", out fileNameObj))
            {
                fileName = fileNameObj as string;
            }
            if (TempData.TryGetValue("PrenotificationShipments", out shipmentsObj))
            {
                shipments = shipmentsObj as List <int>;
            }
            if (TempData.TryGetValue("ShipmentMovementFileName", out shipmentDocumentNameObj))
            {
                shipmentMovementFileName = shipmentDocumentNameObj as string;
            }

            var model = new ShipmentMovementDocumentsViewModel(notificationId, shipments, fileName);

            model.ShipmentMovementFileName = shipmentMovementFileName;

            return(View(model));
        }
        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));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> Success(Guid notificationId)
        {
            var fileName  = string.Empty;
            var shipments = new List <int>();
            var shipmentMovementFileName = string.Empty;

            object fileNameObj;
            object shipmentsObj;
            object shipmentDocumentNameObj;

            if (TempData.TryGetValue("PreNotificationFileName", out fileNameObj))
            {
                fileName = fileNameObj as string;
            }
            if (TempData.TryGetValue("PrenotificationShipments", out shipmentsObj))
            {
                shipments = shipmentsObj as List <int>;
            }
            if (TempData.TryGetValue("ShipmentMovementFileName", out shipmentDocumentNameObj))
            {
                shipmentMovementFileName = shipmentDocumentNameObj as string;
            }

            var data = await mediator.SendAsync(new GetNotificationBasicInfo(notificationId));

            var model = new ShipmentMovementDocumentsViewModel(notificationId, shipments, fileName, data.NotificationType);

            model.ShipmentMovementFileName = shipmentMovementFileName;

            return(View(model));
        }
        public async Task <ActionResult> Documents(Guid notificationId, ShipmentMovementDocumentsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Warning"));
            }

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

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

            if (failedFileRules.Count > 0)
            {
                foreach (var rule in failedFileRules)
                {
                    ModelState.AddModelError(string.Empty, Prsd.Core.Helpers.EnumHelper.GetDisplayName(rule));
                }

                var    fileName  = string.Empty;
                var    shipments = new List <int>();
                object fileNameObj;
                object shipmentsObj;

                if (TempData.TryGetValue("PreNotificationFileName", out fileNameObj))
                {
                    fileName = fileNameObj as string;
                }
                if (TempData.TryGetValue("PrenotificationShipments", out shipmentsObj))
                {
                    shipments = shipmentsObj as List <int>;
                }

                TempData["PrenotificationShipments"] = shipments;
                TempData["PreNotificationFileName"]  = fileName;

                model.PreNotificationFileName = fileName;
                model.Shipments = shipments;

                return(View(model));
            }

            object draftBulkUploadIdObj;

            if (TempData.TryGetValue("DraftBulkUploadId", out draftBulkUploadIdObj))
            {
                var draftBulkUploadId = draftBulkUploadIdObj as Guid?;

                if (draftBulkUploadId != null && draftBulkUploadId != Guid.Empty)
                {
                    var fileExtension = Path.GetExtension(model.File.FileName);

                    await
                    mediator.SendAsync(new CreateBulkPrenotification(notificationId, draftBulkUploadId.Value,
                                                                     validationSummary.FileBytes, fileExtension));

                    TempData["ShipmentMovementFileName"] = model.File.FileName;
                    return(RedirectToAction("Success"));
                }
            }

            return(View(model));
        }