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)); } }
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); }