Esempio n. 1
0
        private string SetupUserMeetingsFolder(LmsCompany lmsCompany, IAdobeConnectProxy provider,
                                               Principal user, bool useLmsUserEmailForSearch)
        {
            var shortcutName = MeetingTypeFactory.GetMeetingFolderShortcut(_lmsMeetingType, true).GetACEnum();
            var shortcut     = provider.GetShortcutByType(shortcutName);

            var userFolderName = lmsCompany.ACUsesEmailAsLogin.GetValueOrDefault() ? user.Email : user.Login;

            //var userFolderName = useLmsUserEmailForSearch ? user.Email : user.Login;
            var meetingsFolderName = string.IsNullOrEmpty(lmsCompany.UserFolderName)
                ? userFolderName
                : lmsCompany.UserFolderName;
            string meetingFolderScoId;

            CreateUserFoldersStructure(shortcut.ScoId, provider, userFolderName,
                                       meetingsFolderName, out meetingFolderScoId);
            return(meetingFolderScoId);
        }
Esempio n. 2
0
        private string SetupSharedMeetingsFolder(LmsCompany lmsCompany, LmsProvider lmsProvider, IAdobeConnectProxy provider)
        {
            string ltiFolderSco = null;
            string name         = lmsCompany.UserFolderName ?? lmsProvider.LmsProviderName;

            name = name.TruncateIfMoreThen(60);
            bool useDbFolderId = MeetingTypeFactory.UseDbMeetingFolderId(_lmsMeetingType);

            if (useDbFolderId && !string.IsNullOrWhiteSpace(lmsCompany.ACScoId))
            {
                ScoInfoResult meetingsFolder = provider.GetScoInfo(lmsCompany.ACScoId);
                if (meetingsFolder.Success && meetingsFolder.ScoInfo != null)
                {
                    if (meetingsFolder.ScoInfo.Name.Equals(name, StringComparison.OrdinalIgnoreCase))
                    {
                        ltiFolderSco = meetingsFolder.ScoInfo.ScoId;
                    }
                    else
                    {
                        ScoInfoResult updatedSco =
                            provider.UpdateSco(
                                new FolderUpdateItem
                        {
                            ScoId    = meetingsFolder.ScoInfo.ScoId,
                            Name     = name,
                            FolderId = meetingsFolder.ScoInfo.FolderId,
                            Type     = ScoType.folder
                        });
                        if (updatedSco.Success && updatedSco.ScoInfo != null)
                        {
                            ltiFolderSco = updatedSco.ScoInfo.ScoId;
                        }
                    }
                }
            }

            if (ltiFolderSco == null)
            {
                var shortcutName = MeetingTypeFactory.GetMeetingFolderShortcut(_lmsMeetingType, false).GetACEnum();
                ScoContentCollectionResult sharedMeetings = provider.GetContentsByType(shortcutName);
                if (sharedMeetings.ScoId != null && sharedMeetings.Values != null)
                {
                    ScoContent existingFolder = sharedMeetings.Values.FirstOrDefault(v => v.Name.Equals(name, StringComparison.OrdinalIgnoreCase) && v.IsFolder);
                    if (existingFolder != null)
                    {
                        ltiFolderSco = existingFolder.ScoId;
                    }
                    else
                    {
                        ScoInfoResult newFolder = provider.CreateSco(new FolderUpdateItem {
                            Name = name, FolderId = sharedMeetings.ScoId, Type = ScoType.folder
                        });
                        if (newFolder.Success && newFolder.ScoInfo != null)
                        {
                            provider.UpdatePublicAccessPermissions(newFolder.ScoInfo.ScoId, SpecialPermissionId.denied);
                            ltiFolderSco = newFolder.ScoInfo.ScoId;
                        }
                    }
                }
                if (ltiFolderSco != null && useDbFolderId)
                {
                    lmsCompany.ACScoId = ltiFolderSco;
                }
            }

            return(ltiFolderSco);
        }