예제 #1
0
        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;
                }
            }
        }
예제 #2
0
        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));
        }
예제 #3
0
 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);
         }
     }
 }