//To get events of student public async Task <List <EventsItem> > GetMyAppointments(GraphServiceClient graphClient) { List <EventsItem> items = new List <EventsItem>(); // Get events. IUserEventsCollectionPage events = await graphClient.Me.Events.Request().GetAsync(); if (events?.Count > 0) { foreach (Event current in events) { items.Add(new EventsItem { Id = current.Id, Body = current.Body, Attendees = current.Attendees.ToList(), Location = current.Location, EndTime = current.End, StartTime = current.Start, Subject = current.Subject, EventDate = DateTime.Parse(current.Start.DateTime.ToString()).Date, EventDay = DateTime.Parse(current.Start.DateTime.ToString()).DayOfWeek, EventStart = DateTime.Parse(current.Start.DateTime.ToString()).ToString("t"), EventEnd = DateTime.Parse(current.End.DateTime.ToString()).ToString("t"), }); } } return(items); }
private static void ListEvents(IUserEventsCollectionPage events) { for (int i = 0; i < 5; i++) { Event anEvent = events[i]; Console.WriteLine($"Index: {i} Organiser: {anEvent.Organizer.EmailAddress.Name} Subject: {anEvent.Subject}"); } }
private IEnumerable <Event> GetAllEventsBasedOnPage(IUserEventsCollectionPage resultPage) { var allEvents = new List <Event>(); do { var eventsOfCurrentPage = resultPage.CurrentPage.ToList(); allEvents.AddRange(eventsOfCurrentPage); resultPage = resultPage.NextPageRequest?.GetAsync().Result; } while (resultPage != null); return(allEvents); }
/// <summary> /// Retrieve current connected user's events. /// <para>(default=10)</para> /// <para>Permission Scope : Event.Read (Read user calendar)</para> /// </summary> /// <param name="cancellationToken">The <see cref="CancellationToken"/> for the request.</param> /// <param name="top">The number of items to return in a result set.</param> /// <param name="selectFields">array of fields Microsoft Graph has to include in the response.</param> /// <returns>a Collection of Pages containing the events</returns> public async Task <IUserEventsCollectionPage> GetEventsAsync(CancellationToken cancellationToken, int top = 10, MicrosoftGraphEventFields[] selectFields = null) { IUserEventsCollectionPage events = null; if (selectFields == null) { events = await _graphProvider.Me.Events.Request().OrderBy(OrderBy).Top(top).GetAsync(cancellationToken); } else { string selectedProperties = MicrosoftGraphHelper.BuildString(selectFields); events = await _graphProvider.Me.Events.Request().OrderBy(OrderBy).Top(top).Select(selectedProperties).GetAsync(); } _nextPageRequest = events.NextPageRequest; return(events); }
// Get events in all the current user's mail folders. public async Task <List <ResultsItem> > GetMyEvents(GraphServiceClient graphClient) { List <ResultsItem> items = new List <ResultsItem>(); // Get events. IUserEventsCollectionPage events = await graphClient.Me.Events.Request().GetAsync(); if (events?.Count > 0) { foreach (Event current in events) { items.Add(new ResultsItem { Display = current.Subject, Id = current.Id }); } } return(items); }
private IEnumerable <DisplayEvent> ToDisplayEvents(IUserEventsCollectionPage events) { var eventResults = events.Select(e => new DisplayEvent(e.Subject, e.Start.DateTime, e.End.DateTime)); var currentEvents = eventResults.OrderBy(e => e.Start) .Where(e => e.Start.DayOfYear >= DateTime.Now.DayOfYear && e.Start.DayOfYear <= DateTime.Now.DayOfYear + 1 && e.End >= DateTime.Now); // Set HasBegan on passed event with active end time foreach (var ev in currentEvents) { if (ev.Start.TimeOfDay <= DateTime.Now.TimeOfDay) { ev.HasBegan = true; } } return(currentEvents); }
// Get events in all the current user's mail folders. public async Task <List <ResultsItem> > GetMyEvents() { List <ResultsItem> items = new List <ResultsItem>(); // Get events. IUserEventsCollectionPage events = await graphClient.Me.Events.Request(requestOptions) .WithUserAccount(ClaimsPrincipal.Current.ToGraphUserAccount()) .GetAsync(); if (events?.Count > 0) { foreach (Event current in events) { items.Add(new ResultsItem { Display = current.Subject, Id = current.Id }); } } return(items); }
// Gets the signed-in user's calendar events. public static async Task <IUserEventsCollectionPage> GetEventsAsync() { IUserEventsCollectionPage events = null; try { var graphClient = AuthenticationHelper.GetAuthenticatedClient(); events = await graphClient.Me.Events.Request().GetAsync(); foreach (var myEvent in events) { Debug.WriteLine("Got event: " + myEvent.Id); } } catch (ServiceException e) { Debug.WriteLine("We could not get the current user's events: " + e.Error.Message); return(null); } return(events); }
public async Task PageIteratorDevTest() { // Get an initial page results to populate the iterator. IUserEventsCollectionPage iUserEventsCollectionPage = await graphClient.Me.Events.Request().Top(2).GetAsync(); // Create the function to process each entity returned in the pages. Func <Event, bool> processEachEvent = (e) => { bool shouldContinue = true; //if (e.Subject.Contains("Latin")) // shouldContinue = false; Debug.WriteLine($"Event subject: {e.Subject}"); return(shouldContinue); }; // This requires the dev to specify the generic type in the CollectionPage. eventPageIterator = PageIterator <Event> .CreatePageIterator(graphClient, iUserEventsCollectionPage, processEachEvent); await eventPageIterator.IterateAsync(); Assert.Equal(PagingState.Complete, eventPageIterator.State); }
protected override async void OnAppearing() { base.OnAppearing(); // Get the events events = await App.GraphClient.Me.Events.Request() .Select(e => new { e.Subject, e.Organizer, e.Start, e.End, e.Attendees, e.BodyPreview, }) .OrderBy("createdDateTime DESC") .GetAsync(); // Add the events to the list view eventsList = events.CurrentPage.ToList(); CalendarList.ItemsSource = eventsList; }
public static async Task <IEnumerable <TaskTarea> > GetUserTasks(string mail, DateTime from, DateTime to) { var err = ""; IUserEventsCollectionPage tasks = null; try { try { var tasks1 = await GetGraphClient(token).Users[mail].Request().GetAsync(); Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("-------------------------------------------------------"); Console.WriteLine("Acceso Correcto para el Usuario"); Console.WriteLine(" " + tasks1.Id + " " + tasks1.DisplayName + " " + tasks1.GivenName + " " + tasks1.JobTitle + " "); Console.WriteLine(" " + tasks1.City + " " + tasks1.Department + " " + tasks1.Country); Console.WriteLine(" " + tasks1.MobilePhone + " " + tasks1.MySite); Console.WriteLine(" " + tasks1.OfficeLocation + " " + tasks1.StreetAddress); foreach (var phone in tasks1.BusinessPhones) { Console.WriteLine("telefono : " + phone.ToString()); } Console.WriteLine("-------------------------------------------------------"); Console.ResetColor(); var utcFrom = from.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm"); var utcTo = to.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm"); tasks = await GetGraphClient(token).Users[mail].Events .Request().Top(1000) .Select("subject, body, start, end") .Filter($"start/dateTime le '{utcTo}' and end/dateTime ge '{utcFrom}'") .GetAsync(); } catch (ServiceException e) { switch (e.Error.Code) { case "Request_ResourceNotFound": case "ResourceNotFound": case "ErrorItemNotFound": case "itemNotFound": err = JsonConvert.SerializeObject(new { Message = $"User '{email}' was not found." }, Formatting.Indented); break; case "ErrorInvalidUser": err = JsonConvert.SerializeObject(new { Message = $"The requested user '{email}' is invalid." }, Formatting.Indented); break; case "AuthenticationFailure": err = JsonConvert.SerializeObject(new { e.Error.Message }, Formatting.Indented); break; //case "TokenNotFound": // await httpContext.ChallengeAsync(); // err = JsonConvert.SerializeObject(new { e.Error.Message }, Formatting.Indented); // break; default: err = JsonConvert.SerializeObject(new { Message = e.Error.Code }, Formatting.Indented); break; } } return(tasks.Select(x => new TaskTarea { Title = x.Subject, Status = 2, Id = -1, Notes = x.Body.Content, Start = DateTime.Parse(x.Start.DateTime).ToUniversalTime(), End = DateTime.Parse(x.End.DateTime).ToUniversalTime(), Type = 4, IsEditable = false, ExternalId = x.Id })); } catch (Exception e) { Colorear(); if (err == "") { Console.WriteLine(e); } else { Console.WriteLine(err); } Console.ResetColor(); return(new List <TaskTarea>()); } }
public MockUserEventsCollectionRequest( IUserEventsCollectionPage nextPage) { NextPage = nextPage; }