public void GOOGLE1() { TZID tzid = "Europe/Berlin"; iCalendar iCal = iCalendar.LoadFromFile(@"Calendars/General/GoogleCalendar.ics"); Event evt = iCal.Events["*****@*****.**"]; Assert.IsNotNull(evt); Date_Time dtStart = new Date_Time(2006, 12, 18, tzid, iCal); Date_Time dtEnd = new Date_Time(2006, 12, 23, tzid, iCal); List <Occurrence> occurrences = iCal.GetOccurrences(dtStart, dtEnd); Date_Time[] DateTimes = new Date_Time[] { new Date_Time(2006, 12, 18, 7, 0, 0, tzid, iCal), new Date_Time(2006, 12, 19, 7, 0, 0, tzid, iCal), new Date_Time(2006, 12, 20, 7, 0, 0, tzid, iCal), new Date_Time(2006, 12, 21, 7, 0, 0, tzid, iCal), new Date_Time(2006, 12, 22, 7, 0, 0, tzid, iCal) }; for (int i = 0; i < DateTimes.Length; i++) { Assert.AreEqual(DateTimes[i], occurrences[i].Period.StartTime, "Event should occur at " + DateTimes[i]); } Assert.IsTrue(occurrences.Count == DateTimes.Length, "There should be exactly " + DateTimes.Length + " occurrences; there were " + occurrences.Count); }
public void GOOGLE1() { TZID tzid = "Europe/Berlin"; iCalendar iCal = iCalendar.LoadFromFile(@"Calendars/General/GoogleCalendar.ics"); Event evt = iCal.Events["*****@*****.**"]; Assert.IsNotNull(evt); Date_Time dtStart = new Date_Time(2006, 12, 18, tzid, iCal); Date_Time dtEnd = new Date_Time(2006, 12, 23, tzid, iCal); iCal.Evaluate(dtStart, dtEnd); Date_Time[] DateTimes = new Date_Time[] { new Date_Time(2006, 12, 11, 7, 0, 0, tzid, iCal), new Date_Time(2006, 12, 18, 7, 0, 0, tzid, iCal), new Date_Time(2006, 12, 19, 7, 0, 0, tzid, iCal), new Date_Time(2006, 12, 20, 7, 0, 0, tzid, iCal), new Date_Time(2006, 12, 21, 7, 0, 0, tzid, iCal), new Date_Time(2006, 12, 22, 7, 0, 0, tzid, iCal) }; foreach (Date_Time dt in DateTimes) { Assert.IsTrue(evt.OccursAt(dt), "Event should occur at " + dt); } Assert.IsTrue(evt.Periods.Count == DateTimes.Length, "There should be exactly " + DateTimes.Length + " occurrences; there were " + evt.Periods.Count); }
/// <summary> /// Retrieves the <see cref="DDay.iCal.Components.TimeZone" /> object for the specified /// <see cref="TZID"/> (Time Zone Identifier). /// </summary> /// <param name="tzid">A valid <see cref="TZID"/> object, or a valid <see cref="TZID"/> string.</param> /// <returns>A <see cref="TimeZone"/> object for the <see cref="TZID"/>.</returns> public DDay.iCal.Components.TimeZone GetTimeZone(TZID tzid) { foreach (DDay.iCal.Components.TimeZone tz in TimeZones) { if (tz.TZID.Equals(tzid)) { return(tz); } } return(null); }
public static DATE_TIME AsDATE_TIME(this DateTime value, TZID tzid = null) { if (value == default(DateTime)) return new DATE_TIME(default(DATE_TIME), tzid); if (tzid != null) { return new DATE_TIME((uint)value.Year, (uint)value.Month, (uint)value.Day, (uint)value.Hour, (uint)value.Minute, (uint)value.Second, TimeType.LocalAndTimeZone, tzid); } return value.Kind == DateTimeKind.Utc ? new DATE_TIME((uint)value.Year, (uint)value.Month, (uint)value.Day, (uint)value.Hour, (uint)value.Minute, (uint)value.Second, TimeType.Utc) : new DATE_TIME((uint)value.Year, (uint)value.Month, (uint)value.Day, (uint)value.Hour, (uint)value.Minute, (uint)value.Second); }
/// <summary> /// Retrieves the <see cref="DDay.iCal.Components.TimeZone" /> object for the specified /// <see cref="TZID"/> (Time Zone Identifier). /// </summary> /// <param name="tzid">A valid <see cref="TZID"/> object, or a valid <see cref="TZID"/> string.</param> /// <returns>A <see cref="TimeZone"/> object for the <see cref="TZID"/>.</returns> public iCalTimeZone GetTimeZone(TZID tzid) { foreach (iCalTimeZone tz in TimeZones) { if (tz.TZID.Equals(tzid)) { return(tz); } } return(null); }
/// <summary> /// Retrieves the <see cref="DDay.iCal.Components.TimeZone" /> object for the specified /// <see cref="TZID"/> (Time Zone Identifier). /// </summary> /// <param name="tzid">A valid <see cref="TZID"/> object, or a valid <see cref="TZID"/> string.</param> /// <returns>A <see cref="TimeZone"/> object for the <see cref="TZID"/>.</returns> public iCalTimeZone GetTimeZone(TZID tzid) { foreach (iCalendar iCal in this) { iCalTimeZone tz = iCal.GetTimeZone(tzid); if (tz != null) { return(tz); } } return(null); }
public EventUnitTests() { keyGenerator = new SequentialGuidKeyGenerator(); var valuesFactory = new ValuesFactory(keyGenerator); var parametersFactory = new ParametersFactory(valuesFactory); var propertiesFactory = new PropertiesFactory(keyGenerator, valuesFactory, parametersFactory); var alarmFactory = new AlarmFactory(keyGenerator, propertiesFactory, valuesFactory); factory = new EventFactory(keyGenerator, alarmFactory, propertiesFactory, valuesFactory); tzid = new TZID("America", "New_York"); }
/// <summary> /// Retrieves the <see cref="DDay.iCal.Components.TimeZone" /> object for the specified /// <see cref="TZID"/> (Time Zone Identifier). /// </summary> /// <param name="tzid">A valid <see cref="TZID"/> object, or a valid <see cref="TZID"/> string.</param> /// <returns>A <see cref="TimeZone"/> object for the <see cref="TZID"/>.</returns> public DDay.iCal.Components.TimeZone GetTimeZone(TZID tzid) { foreach (iCalendar iCal in this) { DDay.iCal.Components.TimeZone tz = iCal.GetTimeZone(tzid); if (tz != null) { return(tz); } } return(null); }
/// <summary> /// Lists the event. /// </summary> /// <param name="request">The request.</param> /// <remarks> /// - Удаляет FilterElement с source (DTStart, DTEnd)в запросе и формирует на основании их предикат /// позволяющий производить выборку по данным критериям из произвольной коллекции /// /// </remarks> /// <returns></returns> public static ListResponse ListEvent(CalendarEventListRequest request) { List <CalendarEventEntity> retVal = new List <CalendarEventEntity>(); TZID dtStartTZID = String.IsNullOrEmpty(request.DTStartTimeZoneId) ? null : new TZID(request.DTStartTimeZoneId); TZID dtEndTZID = String.IsNullOrEmpty(request.DTEndTimeZoneId) ? null : new TZID(request.DTEndTimeZoneId); //Заполняем FIlterElementCollection элементами исходного массива фильтров FilterElementCollection filterColl = new FilterElementCollection(); foreach (FilterElement filterEl in request.Filters) { filterColl.Add(filterEl); } AndBlockFilterElementPredicate <DateTime> andBlockDTStartFilterPredicate = new AndBlockFilterElementPredicate <DateTime>(); AndBlockFilterElementPredicate <DateTime> andBlockDTEndFilterPredicate = new AndBlockFilterElementPredicate <DateTime>(); ConstructPredicate(andBlockDTStartFilterPredicate, filterColl, CalendarEventEntity.FieldStart); ConstructPredicate(andBlockDTEndFilterPredicate, filterColl, CalendarEventEntity.FieldEnd); //Получаем все FilterElement которые связаны с датой и формируем на основе их дерево выражений foreach (FilterElement filterEl in FindFilterElementBySource(new string[] { CalendarEventEntity.FieldStart, CalendarEventEntity.FieldEnd }, request.Filters, true)) { //Рекурсивно удаляем найденный filterElement из исходного набора DeepRemoveFilter(filterColl, filterEl); } //добавляем дополнительные критерии AddExtraCriteria(filterColl); //Получаем список эвентов retVal.AddRange(ListEvents(filterColl, request)); //Применяем критерии отбора по датам начала и завершения взятые из первоначального запроса, и преобразованные //для отбора из коллекции EntityObjects retVal.RemoveAll(delegate(CalendarEventEntity eventEntity) { return(!andBlockDTStartFilterPredicate.Evaluate(eventEntity.Start)); }); retVal.RemoveAll(delegate(CalendarEventEntity eventEntity) { return(!andBlockDTEndFilterPredicate.Evaluate(eventEntity.End)); }); retVal.Sort(); return(new ListResponse(retVal.ToArray())); }
public void PARSE11() { iCalendar iCal = iCalendar.LoadFromUri(new Uri("http://www.google.com/calendar/ical/tvhot064q4p48frqdalgo3fb2k%40group.calendar.google.com/public/basic.ics")); Assert.IsNotNull(iCal); Assert.AreEqual(1, iCal.Events.Count); Assert.AreEqual(1, iCal.TimeZones.Count); TZID tzid = iCal.TimeZones[0].TZID; IList <Occurrence> occurrences = iCal.GetOccurrences(new iCalDateTime(2009, 8, 24, tzid, iCal), new iCalDateTime(2009, 9, 28, tzid, iCal)); Assert.AreEqual(5, occurrences.Count); Assert.AreEqual(new iCalDateTime(2009, 8, 26, 8, 0, 0, tzid, iCal), occurrences[0].Period.StartTime); Assert.AreEqual(new iCalDateTime(2009, 9, 2, 8, 0, 0, tzid, iCal), occurrences[1].Period.StartTime); Assert.AreEqual(new iCalDateTime(2009, 9, 9, 8, 0, 0, tzid, iCal), occurrences[2].Period.StartTime); Assert.AreEqual(new iCalDateTime(2009, 9, 16, 8, 0, 0, tzid, iCal), occurrences[3].Period.StartTime); Assert.AreEqual(new iCalDateTime(2009, 9, 23, 8, 0, 0, tzid, iCal), occurrences[4].Period.StartTime); Assert.AreEqual(new iCalDateTime(2009, 8, 26, 10, 0, 0, tzid, iCal), occurrences[0].Period.EndTime); }
public void InitAll() { TotalTime = new TimeSpan(0); tzid = new TZID("US-Eastern"); }
public void InitAll() { tzid = new TZID("US-Eastern"); }
public static IEnumerable<DATE_TIME> AsDATE_TIMEs(this IEnumerable<DateTime> values, TZID tzid = null) { if (values == null) throw new ArgumentNullException("values"); return values.Select(x => x.AsDATE_TIME(tzid)); }
public static TIME AsTIME(this TimeSpan span, TZID tzid, TimeType format = TimeType.NONE) { if (tzid != null) { if (format == TimeType.Utc) throw new ArgumentException(); return format == TimeType.LocalAndTimeZone ? new TIME((uint)span.Hours, (uint)span.Minutes, (uint)span.Seconds, format, tzid) : new TIME((uint)span.Hours, (uint)span.Minutes, (uint)span.Seconds); } return format == TimeType.Utc ? new TIME((uint)span.Hours, (uint)span.Minutes, (uint)span.Seconds, format) : new TIME((uint)span.Hours, (uint)span.Minutes, (uint)span.Seconds); }