Example #1
0
        public async Task <CalendarUpdateResult> AddStudentGroupSchedule(CalendarService calendarService,
                                                                         StudentGroupSchedule schedule)
        {
            var calendarEvents = ResolveEventsFromSchedule(schedule);

            try
            {
                var batchRequest = new BatchRequest(calendarService);

                foreach (var calendarEvent in calendarEvents.Take(3)) //TODO: Take all at the end of project
                {
                    batchRequest.Queue(calendarService.Events.Insert(calendarEvent, "primary"),
                                       async(Event content, RequestError error, int index, HttpResponseMessage message) =>
                    {
                        var messageContent = await message.Content.ReadAsStringAsync();
                        if (error is null)
                        {
                            return;
                        }

                        throw new Exception(error.Message);
                    });
                }

                await batchRequest.ExecuteAsync();

                return(new CalendarUpdateResult(true));
            }
            catch (Exception e)
            {
                return(new CalendarUpdateResult(e.Message));
            }
        }
Example #2
0
        private IEnumerable <Event> ResolveEventsFromSchedule(StudentGroupSchedule schedule)
        {
            var result = schedule.ScheduleClasses
                         .Select(x => new Event()
            {
                Start       = ResolveEventDate(x.Date, x.FromHour),
                End         = ResolveEventDate(x.Date, x.ToHour),
                Summary     = x.Subject,
                Location    = x.ClassRoom,
                Description = $"{x.Type}, {x.Teacher.Text}",
                Reminders   = new Event.RemindersData {
                    UseDefault = false
                }
            });

            return(result);
        }