public ActionResult UploadFile(UploadRequest uploadFormRequest) { ServerMapPath = Server.MapPath("~/Content/files"); try { validator.Validate(ModelState, uploadFormRequest); var amazonClient = amazonService.CreateClient(); var uploadFileModel = new UploadFileModel(uploadFormRequest.file, amazonClient.AmazonClient, ServerMapPath); var uploadResponse = amazonService.UploadFile(uploadFileModel); emailService.PrepareEmail(uploadResponse.PreSignedURL, uploadFormRequest.file.FileName); emailService.Send(uploadFormRequest.Email); ViewBag.Message = "FIle had been uploaded successfully."; } catch (Exception ex) { ViewBag.Message = ex.Message; } return(View("Upload")); }
public void Validate_GivenAllowedContentTypeAndExceedingSize_ShouldReturnInvalid() { var configuration = new Mock <IConfiguration>(); ConfigurationHelper.SetupMaximumFileSizeInBytes(configuration, Constants.MaximumFileSizeInBytes); ConfigurationHelper.SetupAllowedContentTypes(configuration, "application/pdf"); var validator = new UploadRequestValidator(configuration.Object); var request = new UploadRequest { Filename = "example.pdf", Bytes = new byte[Constants.MaximumFileSizeInBytes + 1] }; var result = validator.Validate(request); result.IsValid.ShouldBe(false); result.Errors.ShouldContain(x => x.ErrorMessage == "The file must be a valid size"); }
public void Validate_GivenAllowedContentTypeAndNoFilename_ShouldReturnInvalid() { var configuration = new Mock <IConfiguration>(); ConfigurationHelper.SetupMaximumFileSizeInBytes(configuration, Constants.MaximumFileSizeInBytes); ConfigurationHelper.SetupAllowedContentTypes(configuration, "application/pdf"); var validator = new UploadRequestValidator(configuration.Object); var request = new UploadRequest { Filename = string.Empty, Bytes = new byte[1000] }; var result = validator.Validate(request); result.IsValid.ShouldBe(false); result.Errors.ShouldContain(x => x.ErrorMessage == "You must provide a filename"); }
public void Validate_GivenAllowedContentType_ShouldReturnValid() { var configuration = new Mock <IConfiguration>(); ConfigurationHelper.SetupMaximumFileSizeInBytes(configuration, Constants.MaximumFileSizeInBytes); ConfigurationHelper.SetupAllowedContentTypes(configuration, "application/pdf"); var validator = new UploadRequestValidator(configuration.Object); var request = new UploadRequest { Filename = "example.pdf", Bytes = new[] { new byte(), new byte(), new byte() } }; var result = validator.Validate(request); result.IsValid.ShouldBe(true); result.Errors.ShouldBeEmpty(); }