示例#1
0
        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);
        }
示例#2
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);
        }
示例#3
0
        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)));
        }