internal static CalendarEvent Parse(this EventView dto, DateTimeOffset from, DateTimeOffset to) { var recurrence = JsonConvert.DeserializeObject <Recurrence>(dto.Recurrence); var @event = new Ical.Net.Event { DtStart = new CalDateTime(dto.StartsAt.DateTime), DtEnd = new CalDateTime(dto.EndsOn.DateTime), RecurrenceRules = new List <IRecurrencePattern> { recurrence.ToPattern() } }; var occurences = @event.GetOccurrences(from.DateTime, to.DateTime).ToList(); var recurringDates = occurences.Select(x => x.Period.StartTime.Value); return(new CalendarEvent { EventId = dto.EventId, CategoryId = dto.CategoryId, CategoryName = dto.CategoryName, ColorCode = dto.ColorCode, IsLocalCalendar = dto.IsLocalCalendar, CategoryOrder = dto.CategoryOrder, UserId = dto.UserId, Name = dto.Name, Location = dto.Location, StartsAt = dto.StartsAt, EndsOn = dto.EndsOn, TimeZone = dto.TimeZone, AllDay = dto.AllDay, Recurrence = recurrence, Until = dto.Until, RemindBeforeInMinutes = dto.Alarm, ReminderTypes = dto.ReminderTypes.Or("").Split(',').ToList(), IsPrivate = dto.IsPrivate, Url = dto.Url, Note = dto.Note, Occurences = recurringDates }); }
internal static Ical.Net.Event ToIcalEvent(this CalendarEvent calendarEvent) { var data = new Ical.Net.Event { DtStart = new CalDateTime(calendarEvent.StartsAt.DateTime), DtEnd = new CalDateTime(calendarEvent.EndsOn.DateTime), RecurrenceRules = new List <IRecurrencePattern> { ToPattern(calendarEvent.Recurrence) }, IsAllDay = calendarEvent.AllDay ?? false, Alarms = { GetAlarm(calendarEvent.StartsAt.DateTime, calendarEvent.Name, calendarEvent.RemindBeforeInMinutes) }, Name = calendarEvent.Name, Location = calendarEvent.Location, Url = string.IsNullOrWhiteSpace(calendarEvent.Url) ? null : new Uri(calendarEvent.Url, UriKind.RelativeOrAbsolute), Description = calendarEvent.Note }; return(data); }
internal static Ical.Net.Event ToIcalEvent(this Event dto) { var data = new Ical.Net.Event { DtStart = new CalDateTime(dto.StartsAt.DateTime), DtEnd = new CalDateTime(dto.EndsOn.DateTime), RecurrenceRules = new List <IRecurrencePattern> { ToPattern(JsonConvert.DeserializeObject <Recurrence>(dto.Recurrence)) }, IsAllDay = dto.AllDay, Alarms = { GetAlarm(dto.StartsAt.DateTime, dto.Name, dto.Alarm) }, Name = dto.Name, Location = dto.Location, Url = string.IsNullOrWhiteSpace(dto.Url) ? null : new Uri(dto.Url, UriKind.RelativeOrAbsolute), Description = dto.Note }; return(data); }