public async Task <IEnumerable <Event> > GetEventsAsync(CalendarInformationRequest.Types.Calendar calendar)
        {
            try
            {
                var startFilter = DateTimeOffset.FromUnixTimeSeconds(calendar.BeginTime).DateTime.ToString("o");
                var endFilter   = DateTimeOffset.FromUnixTimeSeconds(calendar.EndTime).DateTime.ToString("o");

                _logger.LogInformation($"Start filter datetime UTC: {startFilter}");
                _logger.LogInformation($"End filter dateTime UTC: {endFilter}");

                var resultPage = await _graphClient.Users[calendar.CalendarId].Events
                                 .Request()
                                 .Select("subject,organizer,start,end")
                                 .Filter($"{SearchTermStart} gt '{startFilter}' and {SearchTermStart} lt '{endFilter}'" +
                                         $"or {SearchTermEnd} gt '{startFilter}' and {SearchTermEnd} lt '{endFilter}'" +
                                         $"or {SearchTermStart} lt '{startFilter}' and {SearchTermEnd} gt '{endFilter}'")
                                 .GetAsync();

                return(GetAllEventsBasedOnPage(resultPage));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error getting events for calendarId {calendar.CalendarId}: {ex.Message}");
                throw new RpcException(new Status(StatusCode.Internal, $"Error while reading event: {ex.Message}"));
            }
        }
Example #2
0
        public async Task <IEnumerable <RoomReply> > GetAllRoomsAsnc(CalendarInformationRequest.Types.Calendar calendar)
        {
            _logger.LogInformation($"Getting all rooms for {calendar.CalendarId}...");

            var rooms    = await _graphClient.Users[calendar.CalendarId].FindRooms().Request().GetAsync();
            var allRooms = GetAllRoomsOnPage(rooms);

            return(ConvertToRoomReplies(allRooms));
        }
 private CalendarInformationRequest CreateAzureRequest(CalendarInformationRequest.Types.Calendar calendar, AzureRequestModel model)
 {
     return(new CalendarInformationRequest
     {
         Client = new CalendarInformationRequest.Types.Client
         {
             ClientId = model.ClientId,
             ClientSecret = model.ClientSecret,
             TenantId = model.TenantId,
         },
         Calendar = calendar
     });
 }