//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);
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        /// <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);
        }
Beispiel #6
0
        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);
        }
Beispiel #8
0
        // 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);
        }
Beispiel #9
0
        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;
        }
Beispiel #11
0
        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>());
            }
        }
Beispiel #12
0
 public MockUserEventsCollectionRequest(
     IUserEventsCollectionPage nextPage)
 {
     NextPage = nextPage;
 }