示例#1
0
        public async Task <ActionResult> Upload(HttpPostedFileBase upload)
        {
            if (ModelState.IsValid)
            {
                UploadRequestCommand command = new UploadRequestCommand(upload);
                Logger.Info($"Processing {upload.FileName}");
                Logger.Info(command.ToJson());
                UploadRequestResponse response = await Mediator.Send(command);

                if (!response.IsValid)
                {
                    ModelState.AddModelError("Upload", response.Message);
                    return(View());
                }

                if (response.IsNotFound)
                {
                    return(NotFound());
                }

                //Map to MVC Models to view using AutoMapper
                AccountResponseModel accountResponseModel = Mapper.ToAccountResponseModel(response);
                Logger.Info($"Processing {upload.FileName}...Complete");
                Logger.Info(accountResponseModel.ToJson());
                ViewBag.AscendingParam = true;
                return(View(accountResponseModel));
            }

            LogModelState();
            return(View());
        }
示例#2
0
        public static UploadRequestResponse CheckValidation(this UploadRequestCommand request)
        {
            UploadRequestResponse response = new UploadRequestResponse();

            if (request == null)
            {
                response.IsValid = false;
                response.Message = "Invalid Request";
                return(response);
            }

            if (request.File == null || request.File.ContentLength <= 0)
            {
                response.IsValid = false;
                response.Message = "Invalid File";
                return(response);
            }

            if (!request.File.FileName.ToLower().EndsWith(".csv"))
            {
                response.IsValid = false;
                response.Message = "Invalid file, must be of type .csv";
                return(response);
            }

            return(response);
        }
示例#3
0
        public async Task <ActionResult> Sortable(string fileName, string sortBy = "Number", bool ascending = true)
        {
            ViewBag.AscendingParam = ascending;
            AccountSortCommand command = new AccountSortCommand
            {
                SortBy = sortBy, FileName = fileName, SortAscending = @ascending
            };
            UploadRequestResponse sortResponse = await Mediator.Send(command);

            var response = Mapper.ToAccountResponseModel(sortResponse);

            return(View(response));
        }
示例#4
0
 public static AccountResponseModel ToAccountResponseModel(this IMapper mapper, UploadRequestResponse response)
 {
     return(mapper.Map <AccountResponseModel>(response));
 }