//Returns the calendar events that fall in the specified duration //Implements Office 365-side paging // GET: /Calendar/ public async Task <ActionResult> Index(int?page) { var pageNumber = page ?? 1; if (page < 1) { pageNumber = 1; } //Number of events displayed on one page. Edit pageSize if you like int pageSize = 10; List <model.CalendarEvent> events = await _calenderOperations.GetTodaysCalendar(NumberOfHoursBefore, NumberOfHoursAfter, pageNumber, pageSize); //Store these in the ViewBag so you can use them in the Index view ViewBag.Page = pageNumber; ViewBag.NextPage = pageNumber + 1; ViewBag.PrevPage = pageNumber - 1; ViewBag.LastPage = false; if (events.Count == 0) { ViewBag.LastPage = true; } return(View(events)); }
//Returns the calendar events that fall in the specified duration //Implements Office 365-side paging // GET: /Calendar/ public async Task <ActionResult> Index(int?page) { ViewBag.O365ServiceOperationFailed = _O365ServiceOperationFailed; if (_O365ServiceOperationFailed) { _O365ServiceOperationFailed = false; } var pageNumber = page ?? 1; if (page < 1) { pageNumber = 1; } //Number of events displayed on one page. Edit pageSize if you like int pageSize = 10; List <model.CalendarEvent> events = new List <model.CalendarEvent>(); try { events = await _calenderOperations.GetTodaysCalendar(NumberOfHoursBefore, NumberOfHoursAfter, pageNumber, pageSize); } catch (AdalException e) { if (e.ErrorCode == AdalError.FailedToAcquireTokenSilently) { //This exception is thrown when either you have a stale access token, or you attempted to access a resource that you don't have permissions to access. throw e; } } //Store these in the ViewBag so you can use them in the Index view ViewBag.Page = pageNumber; ViewBag.NextPage = pageNumber + 1; ViewBag.PrevPage = pageNumber - 1; ViewBag.LastPage = false; if ((events != null) && (events.Count == 0)) { ViewBag.LastPage = true; } ViewBag.NoItemsinService = false; if ((events.Count == 0) && (pageNumber == 1)) { ViewBag.NoItemsinService = true; } return(View(events)); }
/// <summary> /// Loads today's calendar event items for the user /// </summary> /// <returns></returns> public async Task <bool> LoadCalendarAsync() { LoggingViewModel.Instance.Information = string.Empty; try { //Clear out any calendar events added in previous calls to LoadCalendarAsync() if (TodaysEvents != null) { TodaysEvents.Clear(); } else { TodaysEvents = new ObservableCollection <EventViewModel>(); } //Get 24 hours worth of calendar events from Exchange service via API List <EventViewModel> events = await _calendarOperations.GetTodaysCalendar(6, 6); if (events.Count == 0) { LoggingViewModel.Instance.Information = "You have no calendar events today."; } else { //Load today's events into the observable collection that is bound to UI foreach (EventViewModel calendarEvent in events) { TodaysEvents.Add(calendarEvent); } } } catch (Exception ex) { LoggingViewModel.Instance.Information = "Error on load calender " + ex.Message; return(false); } return(true); }