示例#1
0
        void HandleCalendarStatus(CalendarStatus calendarStatus)
        {
            ObjectGuid guid = GetPlayer().GetGUID();

            CalendarEvent calendarEvent = Global.CalendarMgr.GetEvent(calendarStatus.EventID);

            if (calendarEvent != null)
            {
                CalendarInvite invite = Global.CalendarMgr.GetInvite(calendarStatus.InviteID);
                if (invite != null)
                {
                    invite.Status = (CalendarInviteStatus)calendarStatus.Status;

                    Global.CalendarMgr.UpdateInvite(invite);
                    Global.CalendarMgr.SendCalendarEventStatus(calendarEvent, invite);
                    Global.CalendarMgr.SendCalendarClearPendingAction(calendarStatus.Guid);
                }
                else
                {
                    Global.CalendarMgr.SendCalendarCommandResult(guid, CalendarError.NoInvite); // correct?
                }
            }
            else
            {
                Global.CalendarMgr.SendCalendarCommandResult(guid, CalendarError.EventInvalid);
            }
        }
示例#2
0
 public Day(DateTime date, DateTime firstDayOfMonth)
 {
     this.Date = date;
     if (date.Date < DateTime.Now || date.Month != firstDayOfMonth.Month)
         this.Status = CalendarStatus.Unavailable;
     else
         this.Status = CalendarStatus.Available;
 }
示例#3
0
        private void UpdateLatestCalendarEventsDisplay(object sender, CalendarStatus calendarStatus)
        {
            Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(
                CoreDispatcherPriority.Normal,
                () =>
            {
                if (calendarStatus.CalenderItems.Count > 0)
                {
                    this.CalendarGroup00.DataContext = calendarStatus.CalenderItems[0];
                }

                if (calendarStatus.CalenderItems.Count > 1)
                {
                    this.CalendarGroup01.DataContext = calendarStatus.CalenderItems[1];
                }

                if (calendarStatus.CalenderItems.Count > 2)
                {
                    this.CalendarGroup02.DataContext = calendarStatus.CalenderItems[2];
                }

                if (calendarStatus.CalenderItems.Count > 3)
                {
                    this.CalendarGroup03.DataContext = calendarStatus.CalenderItems[3];
                }

                if (calendarStatus.CalenderItems.Count > 4)
                {
                    this.CalendarGroup04.DataContext = calendarStatus.CalenderItems[4];
                }

                if (calendarStatus.CalenderItems.Count > 5)
                {
                    this.CalendarGroup05.DataContext = calendarStatus.CalenderItems[5];
                }

                if (calendarStatus.CalenderItems.Count > 6)
                {
                    this.CalendarGroup06.DataContext = calendarStatus.CalenderItems[6];
                }

                if (calendarStatus.CalenderItems.Count > 7)
                {
                    this.CalendarGroup07.DataContext = calendarStatus.CalenderItems[7];
                }

                if (calendarStatus.CalenderItems.Count > 8)
                {
                    this.CalendarGroup08.DataContext = calendarStatus.CalenderItems[8];
                }

                if (calendarStatus.CalenderItems.Count > 9)
                {
                    this.CalendarGroup09.DataContext = calendarStatus.CalenderItems[9];
                }
            }
                );
        }
示例#4
0
        private async Task <CalendarStatus> GetRawEvents()
        {
            //Call Google Calendar API
            var yesterdayDateTime = DateTime.Now.Date;//DateTime.Now.AddDays(-1);
            var minDateString     = yesterdayDateTime.ToString("O");

            var currentCalendar = new CalendarStatus();

            using (var httpRequest = new Windows.Web.Http.HttpRequestMessage())
            {
                var    client      = new Windows.Web.Http.HttpClient();
                string calendarAPI = $"https://www.googleapis.com/calendar/v3/calendars/[email protected]/events?timeMin={minDateString}";

                httpRequest.Method                = Windows.Web.Http.HttpMethod.Get;
                httpRequest.RequestUri            = new Uri(calendarAPI);
                httpRequest.Headers.Authorization = new Windows.Web.Http.Headers.HttpCredentialsHeaderValue("Bearer", this.accessToken);

                var response = await client.SendRequestAsync(httpRequest);

                if (response.IsSuccessStatusCode)
                {
                    var listString = await response.Content.ReadAsStringAsync();

                    currentCalendar.AddRawCalendarItems(listString, "personal");
                }
                else
                {
                    var errorRaw = await response.Content.ReadAsStringAsync();

                    dynamic jsonObject = Newtonsoft.Json.JsonConvert.DeserializeObject(errorRaw);

                    dynamic error        = jsonObject.error;
                    dynamic errors       = error.errors;
                    dynamic firstItem    = errors[0];
                    dynamic reasonObject = firstItem.reason;
                    string  reason       = reasonObject.Value;

                    if (reason == "authError")
                    {
                        throw new Exception();
                    }
                }
            }

            using (var httpRequest = new Windows.Web.Http.HttpRequestMessage())
            {
                var    client             = new Windows.Web.Http.HttpClient();
                string holydayCalendarAPI =
                    $"https://www.googleapis.com/calendar/v3/calendars/{this.holydaysCalendarId}/events?timeMin={minDateString}";

                httpRequest.Method                = Windows.Web.Http.HttpMethod.Get;
                httpRequest.RequestUri            = new Uri(holydayCalendarAPI);
                httpRequest.Headers.Authorization =
                    new Windows.Web.Http.Headers.HttpCredentialsHeaderValue("Bearer", this.accessToken);

                var holidayresponse = await client.SendRequestAsync(httpRequest);

                if (holidayresponse.IsSuccessStatusCode)
                {
                    var listString = await holidayresponse.Content.ReadAsStringAsync();

                    currentCalendar.AddRawCalendarItems(listString, "public");
                }
                else
                {
                    var errorRaw = await holidayresponse.Content.ReadAsStringAsync();

                    dynamic jsonObject = Newtonsoft.Json.JsonConvert.DeserializeObject(errorRaw);

                    dynamic error        = jsonObject.error;
                    dynamic errors       = error.errors;
                    dynamic firstItem    = errors[0];
                    dynamic reasonObject = firstItem.reason;
                    string  reason       = reasonObject.Value;

                    if (reason == "authError")
                    {
                        throw new Exception();
                    }
                }
            }

            return(currentCalendar);
        }