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()); }
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); }
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)); }
public static AccountResponseModel ToAccountResponseModel(this IMapper mapper, UploadRequestResponse response) { return(mapper.Map <AccountResponseModel>(response)); }