コード例 #1
0
        public CompanyLmsDTO(LmsCompany instance, LmsProvider provider, dynamic settings)
        {
            if (instance == null)
            {
                throw new ArgumentNullException(nameof(instance));
            }
            if (provider == null)
            {
                throw new ArgumentNullException(nameof(provider));
            }
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            this.id     = instance.Id;
            this.useFLV = instance.UseFLV;
            this.useMP4 = instance.UseMP4;
            this.enableMultipleMeetings = instance.EnableMultipleMeetings;
            this.acServer     = instance.AcServer;
            this.acUsername   = instance.AcUsername;
            this.companyId    = instance.CompanyId.Return(x => x, 0);
            this.consumerKey  = instance.ConsumerKey;
            this.createdBy    = instance.CreatedBy.Return(x => x, 0);
            this.modifiedBy   = instance.ModifiedBy.Return(x => x.Value, 0);
            this.dateCreated  = instance.DateCreated.ConvertToUnixTimestamp();
            this.dateModified = instance.DateModified.ConvertToUnixTimestamp();

            this.lmsProvider           = provider.Return(x => x.ShortName, string.Empty);
            this.sharedSecret          = instance.SharedSecret;
            this.lmsAdmin              = instance.AdminUser.With(x => x.Username);
            this.lmsAdminToken         = instance.AdminUser.With(x => x.Token);
            this.lmsDomain             = instance.LmsDomain.AddHttpProtocol(instance.UseSSL.GetValueOrDefault());
            this.primaryColor          = instance.PrimaryColor;
            this.title                 = instance.Title;
            this.useUserFolder         = instance.UseUserFolder.GetValueOrDefault();
            this.canRemoveMeeting      = instance.CanRemoveMeeting.GetValueOrDefault();
            this.canEditMeeting        = instance.CanEditMeeting.GetValueOrDefault();
            canStudentCreateStudyGroup = instance.GetSetting <bool>(LmsLicenseSettingNames.CanStudentCreateStudyGroup, true);
            this.isSettingsVisible     = instance.IsSettingsVisible.GetValueOrDefault();
            this.enableOfficeHours     = instance.EnableOfficeHours.GetValueOrDefault();
            this.enableStudyGroups     = instance.EnableStudyGroups.GetValueOrDefault();
            this.enableCourseMeetings  = instance.EnableCourseMeetings.GetValueOrDefault();

            this.enableVirtualClassrooms      = instance.GetSetting <bool>(LmsLicenseSettingNames.EnableVirtualClassrooms, false);
            this.namedVirtualClassroomManager = instance.GetSetting <bool>(LmsLicenseSettingNames.NamedVirtualClassroomManager, true);
            this.labelVirtualClassroom        = instance.GetSetting <string>(LmsLicenseSettingNames.VirtualClassroomsLabel);

            this.showEGCHelp            = instance.ShowEGCHelp.GetValueOrDefault();
            this.showLmsHelp            = instance.ShowLmsHelp.GetValueOrDefault();
            this.addPrefixToMeetingName = instance.AddPrefixToMeetingName.GetValueOrDefault();
            this.userFolderName         = instance.UserFolderName;

            Uri portalUrl = new Uri((string)settings.PortalUrl, UriKind.Absolute);

            this.setupUrl = new Uri(portalUrl, $"content/lti-config/{provider.LmsProviderName}.xml").ToString();

            this.enableProxyToolMode = instance.EnableProxyToolMode ?? false;
            this.proxyToolPassword   = instance.ProxyToolSharedPassword;

            this.allowUserCreation      = !instance.DenyACUserCreation;
            this.showAuthToken          = !instance.LoginUsingCookie.GetValueOrDefault();
            this.acUsesEmailAsLogin     = instance.ACUsesEmailAsLogin.GetValueOrDefault();
            this.enableAnnouncements    = instance.ShowAnnouncements.GetValueOrDefault();
            this.useSynchronizedUsers   = instance.UseSynchronizedUsers;
            this.meetingNameFormatterId = instance.MeetingNameFormatterId;
            this.roleMapping            = instance.RoleMappings.Select(x =>
                                                                       new LmsCompanyRoleMappingDTO(x.LmsRoleName, x.AcRole, x.IsDefaultLmsRole, x.IsTeacherRole)).ToArray();
            this.isSandbox       = instance.GetSetting <bool>(LmsLicenseSettingNames.IsOAuthSandbox);
            this.oAuthAppId      = instance.GetSetting <string>(LmsLicenseSettingNames.OAuthAppId);
            this.oAuthAppKey     = instance.GetSetting <string>(LmsLicenseSettingNames.OAuthAppKey);
            this.supportPageHtml = instance.GetSetting <string>(LmsLicenseSettingNames.SupportPageHtml);
            this.isActive        = instance.IsActive;

            this.labelMeeting    = instance.GetSetting <string>(LmsLicenseSettingNames.LabelMeeting);
            this.labelOfficeHour = instance.GetSetting <string>(LmsLicenseSettingNames.LabelOfficeHour);
            this.labelStudyGroup = instance.GetSetting <string>(LmsLicenseSettingNames.LabelStudyGroup);

            this.enableMeetingReuse   = instance.EnableMeetingReuse;
            this.additionalLmsDomains = instance.AdditionalLmsDomains;

            this.showSummary  = instance.GetSetting <bool>(LmsLicenseSettingNames.ShowMeetingSummary);
            this.showTime     = instance.GetSetting <bool>(LmsLicenseSettingNames.ShowMeetingTime);
            this.showDuration = instance.GetSetting <bool>(LmsLicenseSettingNames.ShowMeetingDuration);

            this.canRemoveRecordings     = instance.CanRemoveRecordings;
            this.autoPublishRecordings   = instance.AutoPublishRecordings;
            this.forcedAddInInstallation = instance.GetSetting <bool>(LmsLicenseSettingNames.ForcedAddInInstallation);

            this.languageId = instance.LanguageId;

            this.mp4ServiceLicenseKey = instance.GetSetting <string>(LmsLicenseSettingNames.Mp4ServiceLicenseKey);
            this.mp4ServiceWithSubtitlesLicenseKey = instance.GetSetting <string>(LmsLicenseSettingNames.Mp4ServiceWithSubtitlesLicenseKey);

            this.showAudioProfile                 = instance.GetSetting <bool>(LmsLicenseSettingNames.ShowAudioProfile);
            this.audioProfileUnique               = instance.GetSetting <bool>(LmsLicenseSettingNames.AudioProfileUnique);
            this.enableSeminars                   = instance.GetSetting <bool>(LmsLicenseSettingNames.SeminarsEnable);
            this.labelSeminar                     = instance.GetSetting <string>(LmsLicenseSettingNames.SeminarsLabel);
            this.enableAuditGuestEntry            = instance.GetSetting <bool>(LmsLicenseSettingNames.EnableAuditGuestEntry);
            this.HidePrivateRecordingsForStudents = instance.GetSetting <bool>(LmsLicenseSettingNames.HidePrivateRecordingsForStudents);
            useSakaiEvents          = instance.GetSetting <bool>(LmsLicenseSettingNames.UseSakaiEvents);
            enableMeetingSessions   = instance.GetSetting <bool>(LmsLicenseSettingNames.EnableMeetingSessions);
            enableMyContent         = instance.GetSetting <bool>(LmsLicenseSettingNames.EnableMyContent);
            enableAddGuest          = instance.GetSetting <bool>(LmsLicenseSettingNames.EnableAddGuest, true);
            enableSetUserRole       = instance.GetSetting <bool>(LmsLicenseSettingNames.EnableSetUserRole, true);
            enableRemoveUser        = instance.GetSetting <bool>(LmsLicenseSettingNames.EnableRemoveUser, true);
            moodleCoreServiceToken  = instance.GetSetting <string>(LmsLicenseSettingNames.MoodleCoreServiceToken);
            moodleQuizServiceToken  = instance.GetSetting <string>(LmsLicenseSettingNames.MoodleQuizServiceToken);
            schoologyConsumerKey    = instance.GetSetting <string>(LmsLicenseSettingNames.SchoologyConsumerKey);
            schoologyConsumerSecret = instance.GetSetting <string>(LmsLicenseSettingNames.SchoologyConsumerSecret);
            haikuConsumerKey        = instance.GetSetting <string>(LmsLicenseSettingNames.HaikuConsumerKey);
            haikuConsumerSecret     = instance.GetSetting <string>(LmsLicenseSettingNames.HaikuConsumerSecret);
            haikuToken                    = instance.GetSetting <string>(LmsLicenseSettingNames.HaikuToken);
            haikuTokenSecret              = instance.GetSetting <string>(LmsLicenseSettingNames.HaikuTokenSecret);
            isPdfMeetingUrl               = instance.GetSetting <bool>(LmsLicenseSettingNames.IsPdfMeetingUrl);
            bridgeApiTokenKey             = instance.GetSetting <string>(LmsLicenseSettingNames.BridgeApiTokenKey);
            bridgeApiTokenSecret          = instance.GetSetting <string>(LmsLicenseSettingNames.BridgeApiTokenSecret);
            UseCourseSections             = instance.GetSetting <bool>(LmsLicenseSettingNames.UseCourseSections);
            UseCourseMeetingsCustomLayout = instance.GetSetting <bool>(LmsLicenseSettingNames.UseCourseMeetingsCustomLayout);
            EnableOfficeHoursSlots        = instance.GetSetting <bool>(LmsLicenseSettingNames.EnableOfficeHoursSlots);
            EnableCanvasExportToCalendar  = instance.GetSetting <bool>(LmsLicenseSettingNames.EnableCanvasExportToCalendar);
            Telephony = new TelephonyDTO(instance);
        }