private static void ConvertEventsToFreeBusy( ExchangeUser user, AtomEntryCollection entries, DateTimeRange coveredRange, List <string> busyMonthValues, List <string> busyBase64Data, List <string> tentativeMonthValues, List <string> tentativeBase64Data) { List <DateTimeRange> busyTimes = new List <DateTimeRange>(); List <DateTimeRange> tentativeTimes = new List <DateTimeRange>(); foreach (EventEntry googleAppsEvent in entries) { ConvertEventToFreeBusy(user, googleAppsEvent, coveredRange, busyTimes, tentativeTimes); } FreeBusyConverter.CondenseFreeBusyTimes(busyTimes); FreeBusyConverter.CondenseFreeBusyTimes(tentativeTimes); FreeBusyConverter.ConvertDateTimeBlocksToBase64String(coveredRange.Start, coveredRange.End, busyTimes, busyMonthValues, busyBase64Data); FreeBusyConverter.ConvertDateTimeBlocksToBase64String(coveredRange.Start, coveredRange.End, tentativeTimes, tentativeMonthValues, tentativeBase64Data); }
public void TestConvertDateTimeBlocks() { List <DateTimeRange> src = new List <DateTimeRange>(); List <DateTimeRange> dst = new List <DateTimeRange>(); DateTime s = DateTime.MinValue; DateTime e = DateTime.MinValue; DateTime startDate = new DateTime(2007, 07, 1, 0, 0, 0, DateTimeKind.Utc); DateTime endDate = new DateTime(2008, 05, 31, 0, 0, 0, DateTimeKind.Utc); s = new DateTime(2007, 07, 23, 13, 45, 00, DateTimeKind.Unspecified); src.Add(new DateTimeRange(s, s.AddHours(3))); dst.Add(new DateTimeRange(s, s.AddHours(3))); s = new DateTime(2007, 07, 30, 13, 45, 00, DateTimeKind.Unspecified); src.Add(new DateTimeRange(s, s)); dst.Add(new DateTimeRange(s, s)); s = new DateTime(2007, 08, 15, 13, 45, 00, DateTimeKind.Unspecified); e = new DateTime(2007, 10, 11, 02, 45, 00, DateTimeKind.Unspecified); src.Add(new DateTimeRange(s, e)); dst.Add(new DateTimeRange(s, new DateTime(2007, 08, 31, 23, 59, 00, DateTimeKind.Unspecified))); dst.Add(new DateTimeRange( new DateTime(2007, 09, 01, 00, 00, 00, DateTimeKind.Unspecified), new DateTime(2007, 09, 30, 23, 59, 00, DateTimeKind.Unspecified))); dst.Add(new DateTimeRange( new DateTime(2007, 10, 01, 00, 00, 00, DateTimeKind.Unspecified), e)); src.Add(new DateTimeRange( new DateTime(2008, 01, 01, 00, 00, 00, DateTimeKind.Unspecified), new DateTime(2008, 03, 31, 23, 59, 00, DateTimeKind.Unspecified))); dst.Add(new DateTimeRange( new DateTime(2008, 01, 01, 00, 00, 00, DateTimeKind.Unspecified), new DateTime(2008, 01, 31, 23, 59, 00, DateTimeKind.Unspecified))); dst.Add(new DateTimeRange( new DateTime(2008, 02, 01, 00, 00, 00, DateTimeKind.Unspecified), new DateTime(2008, 02, 29, 23, 59, 00, DateTimeKind.Unspecified))); dst.Add(new DateTimeRange( new DateTime(2008, 03, 01, 00, 00, 00, DateTimeKind.Unspecified), new DateTime(2008, 03, 31, 23, 59, 00, DateTimeKind.Unspecified))); src.Add(new DateTimeRange( new DateTime(2008, 04, 01, 00, 00, 00, DateTimeKind.Unspecified), new DateTime(2008, 05, 30, 23, 59, 00, DateTimeKind.Unspecified))); dst.Add(new DateTimeRange( new DateTime(2008, 04, 01, 00, 00, 00, DateTimeKind.Unspecified), new DateTime(2008, 04, 30, 23, 59, 00, DateTimeKind.Unspecified))); dst.Add(new DateTimeRange( new DateTime(2008, 05, 01, 00, 00, 00, DateTimeKind.Unspecified), new DateTime(2008, 05, 30, 23, 59, 00, DateTimeKind.Unspecified))); List <string> monthData = new List <string>(); List <string> base64Data = new List <string>(); FreeBusyConverter.ConvertDateTimeBlocksToBase64String(startDate, endDate, src, monthData, base64Data); List <DateTimeRange> result = new List <DateTimeRange>(); for (int i = 0; i < monthData.Count; i++) { int month = int.Parse(monthData[i]); string data = base64Data[i]; List <DateTimeRange> r = FreeBusyConverter.ConvertBase64StringsToDateTimeBlocks(month, data); result.AddRange(r); } Assert.AreEqual(dst.Count, result.Count); for (int i = 0; i < dst.Count; i++) { Assert.AreEqual(dst[i], result[i]); } }