Ejemplo n.º 1
0
 public MeetingFolderBuilder(LmsCompany lmsCompany, IAdobeConnectProxy provider, bool useLmsUserEmailForSearch, LmsMeetingType lmsMeetingType = LmsMeetingType.Meeting)
 {
     _lmsCompany = lmsCompany ?? throw new ArgumentNullException(nameof(lmsCompany));
     _provider   = provider ?? throw new ArgumentNullException(nameof(provider));
     _useLmsUserEmailForSearch = useLmsUserEmailForSearch;
     _lmsMeetingType           = lmsMeetingType;
 }
Ejemplo n.º 2
0
        private string GetAnnouncementMessage(LmsMeetingType meetingType, MeetingDTO meetingDto, string referrer, DateTime startDate)
        {
            string date = startDate.ToString("yyyy-MM-dd");
            string time = startDate.ToString("h:mm tt", CultureInfo.InvariantCulture);

            switch (meetingType)
            {
            case LmsMeetingType.Meeting:
            case LmsMeetingType.VirtualClassroom:
                string pattern = "Meeting \"{0}\" will start {1} at {2}. Its duration will be {3}. You can join it in your <a href='{4}'>Adobe Connect Conference section</a>.";
                return(string.Format(
                           pattern,
                           meetingDto.Name,
                           date,
                           time,
                           meetingDto.Duration,
                           referrer ?? string.Empty));

            case LmsMeetingType.OfficeHours:
                string message = string.Format("You can join the meeting \"{0}\" in your <a href='{1}'>Adobe Connect Conference section</a>.", meetingDto.Name.Trim(), referrer ?? string.Empty);
                if (!string.IsNullOrEmpty(meetingDto.OfficeHours))
                {
                    message = string.Format("Meeting time: {0}. ", meetingDto.OfficeHours) + message;
                }
                return(message);

            case LmsMeetingType.StudyGroup:
                return(string.Format("You can join the meeting \"{0}\" in your <a href='{1}'>Adobe Connect Conference section</a>.", meetingDto.Name.Trim(), referrer ?? string.Empty));

            case LmsMeetingType.Seminar:
                return(string.Format("You can join the seminar \"{0}\" in your <a href='{1}'>Adobe Connect Conference section</a>.", meetingDto.Name.Trim(), referrer ?? string.Empty));
            }

            return(string.Empty);
        }
Ejemplo n.º 3
0
        public RoomTypeFactory(Esynctraining.AdobeConnect.IAdobeConnectProxy provider, LmsMeetingType roomType, ISeminarService seminarService)
        {
            // TODO: null check

            this.provider       = provider;
            this.roomType       = roomType;
            this.seminarService = seminarService;
        }
Ejemplo n.º 4
0
        public static PrincipalType HostGroup(LmsMeetingType meetingType)
        {
            switch (meetingType)
            {
            case LmsMeetingType.VirtualClassroom:
                return(PrincipalType.named_vc_admins);

            default:
                return(PrincipalType.live_admins);
            }
        }
Ejemplo n.º 5
0
        public static bool UseDbMeetingFolderId(LmsMeetingType meetingType)
        {
            switch (meetingType)
            {
            case LmsMeetingType.VirtualClassroom:
                return(false);

            default:
                return(true);
            }
        }
Ejemplo n.º 6
0
        public static ScoShortcutType GetTemplatesShortcut(LmsMeetingType meetingType)
        {
            switch (meetingType)
            {
            case LmsMeetingType.VirtualClassroom:
                return(ScoShortcutType.shared_training_templates);

            default:
                return(ScoShortcutType.shared_meeting_templates);
            }
        }
Ejemplo n.º 7
0
        public static ScoShortcutType GetMeetingFolderShortcut(LmsMeetingType meetingType, bool isUserFolder)
        {
            switch (meetingType)
            {
            case LmsMeetingType.VirtualClassroom:
                return(isUserFolder ? ScoShortcutType.user_courses : ScoShortcutType.courses);

            default:
                return(isUserFolder ? ScoShortcutType.user_meetings : ScoShortcutType.meetings);
            }
        }
Ejemplo n.º 8
0
        private async Task CreateAnnouncement(
            LmsMeetingType meetingType,
            ILmsLicense lmsCompany,
            ILtiParam param,
            MeetingDTOInput meetingDto)
        {
            if (!lmsCompany.ShowAnnouncements.GetValueOrDefault() || string.IsNullOrEmpty(param.context_title))
            {
                return;
            }

            var announcementTitle = string.Format(
                "A new {0} room was created for course {1}",
                meetingNames[meetingType],
                param.context_title);
            string announcementMessage = GetAnnouncementMessage(meetingType, meetingDto, param.referer);

            switch (lmsCompany.LmsProviderId)
            {
            case (int)LmsProviderEnum.Canvas:
                var lmsUser = LmsUserModel.GetOneByUserIdAndCompanyLms(param.lms_user_id, lmsCompany.Id).Value;
                var token   = UsersSetup.IsTeacher(param, lmsCompany) && !string.IsNullOrEmpty(lmsUser.Token)
                        ? lmsUser.Token
                        : lmsCompany.AdminUser.Return(a => a.Token, string.Empty);

                await CanvasApi.CreateAnnouncement(
                    lmsCompany.LmsDomain,
                    token,
                    param.course_id,
                    announcementTitle,
                    announcementMessage);

                break;

            case (int)LmsProviderEnum.Blackboard:
                BlackboardApi.CreateAnnouncement(param.course_id.ToString(), param.lms_user_id, lmsCompany.GetLMSSettings(Settings), announcementTitle, announcementMessage);
                break;

            case (int)LmsProviderEnum.AgilixBuzz:
                // string error;
//                    this.dlapApi.CreateAnnouncement(
//                        credentials,
//                        param.course_id,
//                        announcementTitle,
//                        announcementMessage,
//                        out error);
                break;
            }
        }
Ejemplo n.º 9
0
        private string GetAnnouncementMessage(LmsMeetingType meetingType, MeetingDTOInput meetingDto, string referrer)
        {
            //string startDate;
            //string startTime;
            //// TRICK: !!
            //var input = meetingDto as MeetingDTOInput;
            //if (input != null)
            //{
            //    startDate = input.StartDate;
            //    startTime = input.StartTime;
            //}
            //else
            //{
            //    DateTime begin = ((double)meetingDto.StartTimeStamp).ConvertFromUnixTimeStamp();
            //    //start_date = meeting.Sco.BeginDate.ToString("yyyy-MM-dd"),
            //    //start_time = meeting.Sco.BeginDate.ToString("h:mm tt", CultureInfo.InvariantCulture),
            //}

            switch (meetingType)
            {
            case LmsMeetingType.Meeting:
            case LmsMeetingType.VirtualClassroom:
                string pattern = "Meeting \"{0}\" will start {1} at {2}. Its duration will be {3}. You can join it in your <a href='{4}'>Adobe Connect Conference section</a>.";
                return(string.Format(
                           pattern,
                           meetingDto.Name,
                           meetingDto.StartDate,
                           meetingDto.StartTime,
                           meetingDto.Duration,
                           referrer ?? string.Empty));

            case LmsMeetingType.OfficeHours:
                string message = string.Format("You can join the meeting \"{0}\" in your <a href='{1}'>Adobe Connect Conference section</a>.", meetingDto.Name.Trim(), referrer ?? string.Empty);
                if (!string.IsNullOrEmpty(meetingDto.OfficeHours))
                {
                    message = string.Format("Meeting time: {0}. ", meetingDto.OfficeHours) + message;
                }
                return(message);

            case LmsMeetingType.StudyGroup:
                return(string.Format("You can join the meeting \"{0}\" in your <a href='{1}'>Adobe Connect Conference section</a>.", meetingDto.Name.Trim(), referrer ?? string.Empty));

            case LmsMeetingType.Seminar:
                return(string.Format("You can join the seminar \"{0}\" in your <a href='{1}'>Adobe Connect Conference section</a>.", meetingDto.Name.Trim(), referrer ?? string.Empty));
            }

            return(string.Empty);
        }
Ejemplo n.º 10
0
        public virtual TelephonyProfileOption GetTelephonyOption(LmsMeetingType meetingType)
        {
            switch (meetingType)
            {
            case LmsMeetingType.Meeting:
            case LmsMeetingType.VirtualClassroom:
            case LmsMeetingType.Seminar:
                return((TelephonyProfileOption)GetSetting <int>(
                           LmsLicenseSettingNames.Telephony.CourseMeetingOption));

            case LmsMeetingType.OfficeHours:
                return((TelephonyProfileOption)GetSetting <int>(LmsLicenseSettingNames.Telephony.OfficeHoursOption));

            case LmsMeetingType.StudyGroup:
                return((TelephonyProfileOption)GetSetting <int>(LmsLicenseSettingNames.Telephony.StudyGroupOption));

            default:
                throw new ArgumentOutOfRangeException("Non supported meeting type");
            }
        }
Ejemplo n.º 11
0
        public IFutureValue <LmsCourseMeeting> GetOneByUserAndType(int companyLmsId, string userId, LmsMeetingType type)
        {
            if (companyLmsId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(companyLmsId));
            }
            if (string.IsNullOrWhiteSpace(userId))
            {
                throw new ArgumentException("userId can not be empty", nameof(userId));
            }
            if (type <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(type));
            }

            int typeValue       = (int)type;
            LmsCourseMeeting x  = null;
            OfficeHours      oh = null;
            LmsUser          u  = null;
            var defaultQuery    = new DefaultQueryOver <LmsCourseMeeting, int>()
                                  .GetQueryOver(() => x)
                                  .JoinAlias(() => x.OfficeHours, () => oh, JoinType.InnerJoin)
                                  .JoinAlias(() => oh.LmsUser, () => u, JoinType.InnerJoin)
                                  .Where(() => x.LmsCompanyId == companyLmsId &&
                                         x.LmsMeetingType == typeValue &&
                                         (x.OfficeHours != null && u.UserId == userId))
                                  .Take(1);

            return(this.Repository.FindOne(defaultQuery));
        }