public NewMessageViewModel( IMailService emailService, IDataService dataService, IDialogService dialogService, ICalendarService calendarService) { _emailService = emailService; _dataService = dataService; _calendarService = calendarService; _dialogService = dialogService; _newMessageType = NewMessageType.Invite; }
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)); }