private object GetRidePeriod(RidePeriod ridePeriod) { if (ridePeriod.Equals(RidePeriod.Today)) { return("today"); } else if (ridePeriod.Equals(RidePeriod.EveryDay)) { return("every day"); } else { return("tomorrow"); } }
public override Task InitializeAsync(object navigationData) { if (navigationData is GraphUser) { _newMessageType = NewMessageType.Invite; User = (GraphUser)navigationData; Subject = $"May I ride with you {GetRidePeriod(App.CurrentUser.RidePeriod)}?"; Message = $"Hi {User.GivenName}," + Environment.NewLine + Environment.NewLine + $"May I ride with you {GetRidePeriod(App.CurrentUser.RidePeriod)}?" + Environment.NewLine + "The WorkRides app thinks we're a good match!" + Environment.NewLine + Environment.NewLine + "Thank you," + Environment.NewLine + $"{App.CurrentUser.GivenName}"; } else if (navigationData is InspectRiderRequestViewModel) { _newMessageType = NewMessageType.Join; User = ((InspectRiderRequestViewModel)navigationData).User; _distance = ((InspectRiderRequestViewModel)navigationData).Distance; _ridePeriod = ((InspectRiderRequestViewModel)navigationData).RequestedRidePeriod.HasValue ? ((InspectRiderRequestViewModel)navigationData).RequestedRidePeriod.Value: RidePeriod.Tomorrow; _route = ((InspectRiderRequestViewModel)navigationData).PushpinsList; Subject = "Thanks for joining my carpool :)"; // Pickup time var tripTime = UserHelper.GetTripTimeEstimationAsync(User.Location(), User.WorkLocation()); var arrivalTime = User.ArrivalTime.Equals(default(DateTime).Date) ? App.CurrentUser.ArrivalTime : User.ArrivalTime; Message = $"Hi {User.GivenName}," + Environment.NewLine + Environment.NewLine + $"Thanks for joining my carpool {GetRidePeriod(_ridePeriod)}!" + Environment.NewLine + $"I'll pick you around {string.Format("{0:h:mm tt}", arrivalTime.AddMinutes(-tripTime))?.ToLowerInvariant()}" + Environment.NewLine + Environment.NewLine + $"{App.CurrentUser.GivenName}"; } return(base.InitializeAsync(navigationData)); }
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); }