private static Guid GetFolderId(string folderName, SessionManagementWrapper sessionManager, Guid defaultFolderId) { var folderId = defaultFolderId; bool foldernameisGuid = false; if (Guid.TryParse(folderName, out var newGuid)) { var folderid = sessionManager.GetFolderById(newGuid); if (folderid.Id != new Guid("00000000-0000-0000-0000-000000000000")) { folderId = folderid.Id; } } else { if (!string.IsNullOrEmpty(folderName)) { var folder = sessionManager.GetFolderByName(folderName); if (folder != null) { folderId = folder.Id; } } } return(folderId); }
/// <summary> /// Verify the folder exists before scheduling a recording. If not, put in RR's default folder (just set folder GUID to empty). /// </summary> private ScheduledRecordingResult VerifyFolderAndScheduleRecording(SessionManagementWrapper sessionManagementWrapper, Schedule schedule, RemoteRecorderManagementWrapper remoteRecorderManagementWrapper) { // Verify the folder exists before trying to schedule a recording try { sessionManagementWrapper.GetFolderById(schedule.FolderId); } catch (Exception e) { // If folder with specified ID can't be found, set folder ID to Guid.Empty to create the recording in the Remote Recorder default folder. log.Error(String.Format("Can't find folder with ID {0} in the Panopto database.", schedule.FolderId), e); log.Warn(String.Format("Recording will be scheduled in folder with ID {0}.", this.configSettings.PanoptoDefaultFolder)); schedule.FolderId = this.configSettings.PanoptoDefaultFolder; } return(remoteRecorderManagementWrapper.ScheduleRecording(schedule)); }