コード例 #1
0
 private object GetRidePeriod(RidePeriod ridePeriod)
 {
     if (ridePeriod.Equals(RidePeriod.Today))
     {
         return("today");
     }
     else if (ridePeriod.Equals(RidePeriod.EveryDay))
     {
         return("every day");
     }
     else
     {
         return("tomorrow");
     }
 }
コード例 #2
0
        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);
        }