public void Execute_RemovesFile() { var existingForm = new BestStartGrantBuilder("form123").Insert(); var cmdA = new AddEvidenceFile { FormId = "form123", Filename = "test.pdf", Content = Encoding.ASCII.GetBytes("evidence file"), }; cmdA.Execute(); var updatedForm = Repository.Load <BestStartGrant>("form123"); updatedForm.Evidence.Files.Count.Should().Be(1); var cloudName = updatedForm.Evidence.Files[0].CloudName; var cmdR = new RemoveEvidenceFile { FormId = "form123", CloudName = cloudName, }; cmdR.Execute(); updatedForm = Repository.Load <BestStartGrant>("form123"); updatedForm.Evidence.Files.Count.Should().Be(0); }
public void Execute_AddsFile() { var existingForm = new ChangeOfCircsBuilder("form123").Insert(); var cmd = new AddEvidenceFile { FormId = "form123", Filename = "test.pdf", Content = Encoding.ASCII.GetBytes("evidence file"), }; cmd.Execute(); var updatedForm = Repository.Load <ChangeOfCircs>("form123"); updatedForm.Evidence.Files.Count.Should().Be(1); }
public ActionResult Evidence(string id, Evidence evidence) { if (WasClicked(BsgButtons.UploadFile)) { if (Request.Files.Count == 0) { ModelState.AddModelError("", "Could not upload file"); return(Evidence_Render(id, evidence)); } var file = Request.Files[0]; if (string.IsNullOrWhiteSpace(file.FileName)) { ModelState.AddModelError("", "Please select a file to upload"); return(Evidence_Render(id, evidence)); } const int maxSize = 1024 * 1024 * 2; if (file.ContentLength > maxSize) { ModelState.AddModelError("", "Please select a file that is smaller than 2MB"); return(Evidence_Render(id, evidence)); } using (var br = new BinaryReader(file.InputStream)) { var addFile = new AddEvidenceFile { FormId = id, Filename = file.FileName, Content = br.ReadBytes((int)file.InputStream.Length), }; return(Exec(addFile, success: () => Redirect(BsgActions.Evidence(id)), failure: () => Evidence_Render(id, evidence))); } } else if (WasClicked(BsgButtons.RemoveFile)) { var cloudName = Request.Form[BsgButtons.RemoveFile]; var delFile = new RemoveEvidenceFile { FormId = id, CloudName = cloudName, }; return(Exec(delFile, success: () => Redirect(BsgActions.Evidence(id)), failure: () => Evidence_Render(id, evidence))); } var cmd = new AddEvidence { FormId = id, Evidence = evidence, }; return(Exec(cmd, success: next => RedirectNext(next), failure: () => Evidence_Render(id, evidence))); }