public OperationResult RemoveRecording( ILmsLicense lmsCompany, IAdobeConnectProxy provider, string courseId, string recordingId, int id) { LmsCourseMeeting meeting = lmsCourseMeetingModel.GetOneByCourseAndId(lmsCompany.Id, courseId, id); if (meeting == null) { return(OperationResult.Error(Resources.Messages.MeetingNotFound)); } ScoContentCollectionResult result = provider.GetMeetingRecordings(new[] { meeting.GetMeetingScoId() }, lmsCompany.UseMP4); var recording = result.Values.FirstOrDefault(x => x.ScoId == recordingId); if (recording == null) { return(OperationResult.Error(Resources.Messages.RecordingNotFound)); } /*if (recording.Icon == "mp4-archive") * { * var scheduledRecording = this.GetScheduledRecording(recordingId, scoId, provider); * if (scheduledRecording.JobStatus == "job-pending") * { * return OperationResult.Error("Cannot delete " + scheduledRecording.Name + " MP4 recording. Recording converting - in progress"); * } * }*/ provider.DeleteSco(recordingId); return(OperationResult.Success()); }
[Obsolete] //?? public IEnumerable <ScoContent> GetSharedContent() { var shortcut = _provider.GetShortcutByType("content"); ScoContentCollectionResult result = _provider.GetContentsByScoId(shortcut.ScoId); return(result.Values); }
public IEnumerable <ScoContent> GetFolderContent(string folderScoId) { if (string.IsNullOrWhiteSpace(folderScoId)) { throw new ArgumentException("Folder's sco-id should have value", nameof(folderScoId)); } ScoContentCollectionResult result = _provider.GetContentsByScoId(folderScoId); return(result.Values); }
public IEnumerable <ScoContent> GetUserContent(string userLogin) { if (string.IsNullOrWhiteSpace(userLogin)) { throw new ArgumentException("Non-empty value expected", nameof(userLogin)); } var requestedUserFolder = GetUserContentFolder(userLogin); ScoContentCollectionResult result = _provider.GetContentsByScoId(requestedUserFolder.ScoId); return(result.Values); }
[Obsolete] //?? public IEnumerable <ScoContent> GetMyContent() { var shortcut = _provider.GetShortcutByType("my-content"); if (shortcut == null) { throw new WarningMessageException("User is not Meeting Host"); } ScoContentCollectionResult result = _provider.GetContentsByScoId(shortcut.ScoId); return(result.Values); }
public IEnumerable <ScoContent> GetFolderContent(ScoContentsFilter filter) { if (filter == null) { throw new ArgumentNullException(nameof(filter)); } if (string.IsNullOrEmpty(filter.ScoId)) { throw new ArgumentException("Folder's sco-id should have value", nameof(filter.ScoId)); } ScoContentCollectionResult result = _provider.GetContents(filter); return(result.Values); }
public OperationResult EditRecording( ILmsLicense lmsCompany, IAdobeConnectProxy provider, string courseId, string recordingId, int id, string name, string summary) { LmsCourseMeeting meeting = lmsCourseMeetingModel.GetOneByCourseAndId(lmsCompany.Id, courseId, id); if (meeting == null) { return(OperationResult.Error(Resources.Messages.MeetingNotFound)); } ScoContentCollectionResult result = provider.GetMeetingRecordings(new[] { meeting.GetMeetingScoId() }, lmsCompany.UseMP4); var recording = result.Values.FirstOrDefault(x => x.ScoId == recordingId); if (recording == null) { return(OperationResult.Error(Resources.Messages.RecordingNotFound)); } ScoInfoResult editResult = provider.UpdateSco <RecordingUpdateItem>(new RecordingUpdateItem { ScoId = recordingId, Name = name.Trim(), Description = summary, Type = ScoType.content, }); if (!editResult.Success || editResult.ScoInfo == null) { if ((editResult.Status.SubCode == StatusSubCodes.duplicate) && (editResult.Status.InvalidField == "name")) { return(OperationResult.Error(Resources.Messages.NotUniqueName)); } return(OperationResult.Error(editResult.Status.GetErrorInfo())); } return(OperationResult.Success()); }
[Obsolete] //?? public ScoContent GetUserContentFolder(string userLogin) { if (string.IsNullOrWhiteSpace(userLogin)) { throw new ArgumentException("Non-empty value expected", nameof(userLogin)); } var shortcut = _provider.GetShortcutByType("user-content"); ScoContentCollectionResult userFolders = _provider.GetContentsByScoId(shortcut.ScoId); var requestedUserFolder = userFolders.Values.FirstOrDefault(x => x.Name == userLogin); if (requestedUserFolder == null) { throw new WarningMessageException("Requested user's folder not found. User is not Meeting Host."); } return(requestedUserFolder); }
private IEnumerable <TemplateDto> GetShortcutContentsFromApi(IAdobeConnectProxy api, string shortcut) { ScoContentCollectionResult templates = api.GetContentsByType(shortcut); if (!templates.Success) { _logger.ErrorFormat("get {0}. AC error. {1}.", shortcut, templates.Status.GetErrorInfo()); return(Enumerable.Empty <TemplateDto>()); } if (templates.Values == null) { _logger.ErrorFormat("get {0}. Shortcut does not exist or Values is null", shortcut); return(Enumerable.Empty <TemplateDto>()); } return(templates.Values.Where(x => x.Type == ScoType.meeting.GetACEnum()).Select(v => new TemplateDto { Id = v.ScoId, Name = v.Name }).ToList()); }
/// <summary> /// The get recordings by SCO ids. /// </summary> /// <param name="scoIds">meeting/folder ids</param> /// <returns> /// The <see cref="ScoContentCollectionResult"/>. Values item's FolderId is parent folder id or meeting id. /// </returns> public ScoContentCollectionResult GetMeetingRecordings(IEnumerable <string> scoIds, bool includeMP4recordings = false) { IEnumerable <ScoContent> values = new List <ScoContent>(); foreach (var id in scoIds) { var recordings = this.GetMeetingRecordings(id, includeMP4recordings); if (recordings.Success) { values = values.Concat(recordings.Values); } } var result = new ScoContentCollectionResult( new StatusInfo { Code = StatusCodes.ok }, values); return(result); }
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); }