private object GetRidePeriod(RidePeriod ridePeriod) { if (ridePeriod.Equals(RidePeriod.Today)) { return("today"); } else if (ridePeriod.Equals(RidePeriod.EveryDay)) { return("every day"); } else { return("tomorrow"); } }
private async Task CreateEventsForRide(RidePeriod ridePeriod) { var startEvent = DateTime.Today + User.ArrivalTime.TimeOfDay; var endEvent = DateTime.Today + User.DepartureTime.TimeOfDay; if (startEvent.Date.Equals(default(DateTime).Date)) { startEvent = DateTime.Today + App.CurrentUser.ArrivalTime.TimeOfDay; endEvent = DateTime.Today + App.CurrentUser.DepartureTime.TimeOfDay; } PatternedRecurrence pattern = null; if (ridePeriod.Equals(RidePeriod.EveryDay)) { var recurrentEndEvent = endEvent.AddMonths(3); pattern = new PatternedRecurrence() { Range = new RecurrenceRange() { StartDate = new Date(startEvent.Year, startEvent.Month, startEvent.Day), EndDate = new Date(recurrentEndEvent.Year, recurrentEndEvent.Month, recurrentEndEvent.Day), Type = RecurrenceRangeType.EndDate, RecurrenceTimeZone = "UTC" }, Pattern = new RecurrencePattern() { Interval = 1, DaysOfWeek = new List <Microsoft.Graph.DayOfWeek>() { Microsoft.Graph.DayOfWeek.Monday, Microsoft.Graph.DayOfWeek.Tuesday, Microsoft.Graph.DayOfWeek.Wednesday, Microsoft.Graph.DayOfWeek.Thursday, Microsoft.Graph.DayOfWeek.Friday }, Type = RecurrencePatternType.Daily } }; } else if (ridePeriod.Equals(RidePeriod.Tomorrow)) { startEvent = startEvent.AddDays(1); endEvent = endEvent.AddDays(1); } // calculate estimated trip time to event time var tripTime = UserHelper.GetTripTimeEstimationAsync(User.Location(), User.WorkLocation()); await _calendarService.CreateEventAsync( startEvent.AddMinutes(-tripTime), startEvent, $"{AppSettings.CarpoolEventSubject} Pickup", User.StreetAddress, AppSettings.CarpoolEventSubject, new string[] { User.Mail }, false, App.CurrentUser.UserPrincipalName, pattern); await _calendarService.CreateEventAsync( endEvent, endEvent.AddMinutes(tripTime), $"{AppSettings.CarpoolEventSubject} Dropoff", User.StreetAddress, AppSettings.CarpoolEventSubject, new string[] { User.Mail }, false, App.CurrentUser.UserPrincipalName, pattern); }