diff --git a/E2ETest/StraightForwardTest.cs b/E2ETest/StraightForwardTest.cs index 87cfd66c53151486e2ec23de6b3ec0f6d561ba16..82b0511d713f8e8f7631a70d3be551458592f79c 100644 --- a/E2ETest/StraightForwardTest.cs +++ b/E2ETest/StraightForwardTest.cs @@ -20,6 +20,10 @@ public class StraightForwardTest : EndToEndTestBase { .WithJsonData(@"{""data"":""value""}") .WithAttachments(new Attachment("Test.pdf", "Attachment #1"), new Attachment("Test.pdf", "Attachment #2")) + .WithAttachments(new Attachment("Test.pdf", "Attachment #3")) + // .WithAttachments("TestForm.pdf", "StreamReader", + // System.Net.Mime.MediaTypeNames.Application.Pdf, + // new FileStream("Test.pdf", FileMode.Open, FileAccess.Read)) .Build(); var submission = Sender.SendAsync(outgoing).Result; @@ -86,7 +90,7 @@ public class StraightForwardTest : EndToEndTestBase { attachments.First().Filename.Should().Be("Test.pdf"); attachments.TrueForAll(a => a.Description?.StartsWith("Attachment #") ?? false).Should() .BeTrue(); - + attachments.Count.Should().Be(3); subscriberWithSubmission.AcceptSubmissionAsync().Wait(); } diff --git a/FitConnect/SubmissionBuilder.cs b/FitConnect/SubmissionBuilder.cs index 77bfd49484c3d5389cbedefb7276a2f3f208751e..58ba35bf6a30fe69aafda1142f849b2a82f25824 100644 --- a/FitConnect/SubmissionBuilder.cs +++ b/FitConnect/SubmissionBuilder.cs @@ -19,8 +19,29 @@ public class SubmissionBuilder : ISubmissionWithDestination, return WithAttachments(attachments.ToArray()); } + public ISubmissionWithData WithAttachments(string fileName, string description, string mimeType, + FileStream fileStream) { + byte[] buffer = null; + using (fileStream) { + buffer = new byte[fileStream.Length]; + fileStream.Read(buffer, 0, (int)fileStream.Length); + } + + var attachment = new Attachment(fileName, description, mimeType) { + Content = buffer + }; + + return WithAttachments(attachment); + } + public ISubmissionWithData WithAttachments(params Attachment[] attachments) { - _submissionToSend.Attachments = attachments; + _submissionToSend.Attachments ??= new Attachment[] { }; + + foreach (var attachment in attachments) { + _submissionToSend.Attachments = + _submissionToSend.Attachments.Append(attachment).ToArray(); + } + return this; }