public void Binary1() { Binary b = new Binary(); b.Data = new byte[] { 1, 2, 3, 4 }; b.Name = "ATTACH"; SerializeTest(b, "Binary1.xml"); }
public BinarySerializer(Binary b) : base(b) { this.m_Binary = b; }
public void BINARY2() { iCalendar iCal = new iCalendar(); // Create a test event Event evt = iCal.Create<Event>(); evt.Summary = "Test Event"; evt.Start = new iCalDateTime(2007, 10, 15, 8, 0, 0); evt.Duration = TimeSpan.FromHours(1); // Get a data file string loremIpsum = UnicodeEncoding.Default.GetString(ReadBinary(@"Data\LoremIpsum.txt")); StringBuilder sb = new StringBuilder(); // If we copy it 300 times, we should end up with a file over 2.5MB in size. for (int i = 0; i < 300; i++) sb.AppendLine(loremIpsum); // Add an attachment to this event Binary binary = new Binary(); binary.Data = UnicodeEncoding.Default.GetBytes(sb.ToString()); evt.AddAttachment(binary); iCalendarSerializer serializer = new iCalendarSerializer(iCal); if (!Directory.Exists(@"Calendars\Serialization\Temp")) Directory.CreateDirectory(@"Calendars\Serialization\Temp"); serializer.Serialize(@"Calendars\Serialization\Temp\BINARY2.ics"); iCal = iCalendar.LoadFromFile(@"Calendars\Serialization\Temp\BINARY2.ics"); evt = iCal.Events[0]; binary = evt.Attach[0]; // Ensure the generated and serialized strings match Assert.AreEqual(sb.ToString(), UnicodeEncoding.Default.GetString(binary.Data)); // Times to finish the test for attachment file sizes (on my computer): // 0.92MB = 1.2 seconds // 2.76MB = 6 seconds // 4.6MB = 15.1 seconds // 9.2MB = 54 seconds }
public void BINARY1() { iCalendar iCal = new iCalendar(); // Create a test event Event evt = iCal.Create<Event>(); evt.Summary = "Test Event"; evt.Start = new iCalDateTime(2007, 10, 15, 8, 0, 0); evt.Duration = TimeSpan.FromHours(1); // Add an attachment to this event Binary binary = new Binary(); binary.AddParameter("X-FILENAME", "WordDocument.doc"); binary.Data = ReadBinary(@"Data\Test.doc"); evt.AddAttachment(binary); iCalendarSerializer serializer = new iCalendarSerializer(iCal); if (!Directory.Exists(@"Calendars\Serialization\Temp")) Directory.CreateDirectory(@"Calendars\Serialization\Temp"); serializer.Serialize(@"Calendars\Serialization\Temp\BINARY1.ics"); iCal = iCalendar.LoadFromFile(@"Calendars\Serialization\Temp\BINARY1.ics"); evt = iCal.Events[0]; binary = evt.Attach[0]; Assert.IsTrue(CompareBinary(@"Data\Test.doc", binary.Data), "Serialized version of Test.doc did not match the deserialized version."); }
virtual public void RemoveAttachment(Binary binary) { if (Attach == null) return; else { int index = Array.IndexOf<Binary>(Attach, binary); if (index >= 0) { Binary[] attachments = new Binary[Attach.Length - 1]; Array.Copy(Attach, 0, attachments, 0, index); Array.Copy(Attach, index + 1, attachments, index, attachments.Length - index); Attach = attachments; } } }
virtual public void AddAttachment(Binary binary) { binary.Name = "ATTACH"; if (Attach == null) { Attach = new Binary[] { binary }; } else { Binary[] attachments = Attach; Attach = new Binary[Attach.Length + 1]; attachments.CopyTo(Attach, 0); Attach[Attach.Length - 1] = binary; } }
virtual public void AddAttachment(byte[] data) { Binary binary = new Binary(); binary.Data = data; AddAttachment(binary); }