Exemplo n.º 1
0
 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();
        }