private async Task CreateCalendarEvents(LtiParamDTO param, LmsCourseMeeting meeting) { if (_calendarEventService == null) { return; } foreach (var session in meeting.MeetingSessions) { var eventDto = new LmsCalendarEventDTO { StartAt = session.StartDate, EndAt = session.EndDate, Title = session.Name }; var lmsSettings = _license.GetLMSSettings(Settings); try { LmsCalendarEventDTO lmsCalendarEvent = await _calendarEventService.CreateEvent(param.course_id.ToString(), lmsSettings, eventDto); session.LmsCalendarEventId = lmsCalendarEvent?.Id; } catch (Exception e) { _logger.Error(e.Message); return; } } }
public async Task <MeetingSessionDTO> CreateSessionAsync(int meetingId, LtiParamDTO param) { LmsCourseMeeting meeting = _lmsCourseMeetingModel.GetOneById(meetingId).Value; MeetingNameInfo nameInfo = string.IsNullOrWhiteSpace(meeting.MeetingNameJson) ? new MeetingNameInfo() : JsonConvert.DeserializeObject <MeetingNameInfo>(meeting.MeetingNameJson); var lastEvent = meeting.MeetingSessions.OrderByDescending(x => x.StartDate).FirstOrDefault(); DateTime startDate = DateTime.UtcNow.AddHours(1); DateTime endDate = startDate.AddHours(1); if (lastEvent != null) { startDate = lastEvent.StartDate.AddDays(1); endDate = lastEvent.EndDate.AddDays(1); } var ev = new MeetingSessionDTO { Name = nameInfo.meetingName + " #", Summary = string.Empty, StartDate = startDate, EndDate = endDate, }; if (_calendarExportService != null) { var sakaiEventResult = await _calendarExportService.SaveEventsAsync(meetingId, new MeetingSessionDTO[] { ev }, param, _license); ev = sakaiEventResult.Single(); } var dbEvent = new LmsMeetingSession { LmsCalendarEventId = ev.EventId, Name = ev.Name, StartDate = ev.StartDate, EndDate = ev.EndDate, LmsCourseMeeting = meeting, }; if (_calendarEventService != null) { var lmsSettings = _license.GetLMSSettings(Settings); LmsCalendarEventDTO calendarEventDto = new LmsCalendarEventDTO() { Title = dbEvent.Name, StartAt = dbEvent.StartDate, EndAt = dbEvent.EndDate }; LmsCalendarEventDTO newClaendarEventDto = await _calendarEventService.CreateEvent(param.course_id.ToString(), lmsSettings, calendarEventDto); dbEvent.LmsCalendarEventId = newClaendarEventDto?.Id; } meeting.MeetingSessions.Add(dbEvent); _lmsCourseMeetingModel.RegisterSave(meeting, true); return(ConvertFromEntity(dbEvent)); }
private async Task UpdateCalendarEvent(MeetingSessionDTO dto, LtiParamDTO param, LmsMeetingSession dbEvent) { if (_calendarEventService != null) { if (!string.IsNullOrEmpty(dbEvent.LmsCalendarEventId)) { var lmsSettings = _license.GetLMSSettings(Settings); LmsCalendarEventDTO calendarEventDto = new LmsCalendarEventDTO { Id = dbEvent.LmsCalendarEventId, Title = dto.Name, StartAt = dto.StartDate, EndAt = dto.EndDate }; await _calendarEventService.UpdateEvent(param.course_id.ToString(), lmsSettings, calendarEventDto); } } }