public bool?WriteGuide(string guide, [FromBody] GuideSettings settings) { // Check mode if (settings.Duration < 1) { // Create settings var disable = VCRConfiguration.Current.BeginUpdate(SettingNames.EPGDuration); // Store disable[SettingNames.EPGDuration].NewValue = "0"; // Process return(ServerRuntime.Update(disable.Values)); } // Prepare to update var update = VCRConfiguration.Current.BeginUpdate(SettingNames.EPGDuration, SettingNames.EPGStations, SettingNames.EPGHours, SettingNames.EPGIncludeFreeSat, SettingNames.EPGInterval, SettingNames.EPGJoinThreshold); // Fill it update[SettingNames.EPGHours].NewValue = string.Join(", ", settings.Hours.Select(hour => hour.ToString())); update[SettingNames.EPGIncludeFreeSat].NewValue = settings.WithUKGuide.ToString(); update[SettingNames.EPGStations].NewValue = string.Join(", ", settings.Sources); update[SettingNames.EPGJoinThreshold].NewValue = settings.Threshold.ToString(); update[SettingNames.EPGInterval].NewValue = settings.Interval.ToString(); update[SettingNames.EPGDuration].NewValue = settings.Duration.ToString(); // Process return(ServerRuntime.Update(update.Values)); }
public bool?WriteProfiles(string devices, [FromBody] ProfileSettings settings) { // Validate ServerRuntime.TestAdminAccess(); // List of profiles to use var profiles = settings.SystemProfiles.Where(profile => profile.UsedForRecording).Select(profile => profile.Name).ToList(); // Move default to the front var defaultIndex = profiles.IndexOf(settings.DefaultProfile); if (defaultIndex >= 0) { // Insert at the very beginning profiles.Insert(0, profiles[defaultIndex]); profiles.RemoveAt(defaultIndex + 1); } // Prepare var update = VCRConfiguration.Current.BeginUpdate(SettingNames.Profiles); // Fill update[SettingNames.Profiles].NewValue = string.Join("|", profiles); // Process return(ServerRuntime.Update(update.Values, ServerRuntime.VCRServer.UpdateProfiles(settings.SystemProfiles, profile => profile.Name, (profile, device) => profile.WriteBack(device)))); }
public bool?WriteSecurity(string security, [FromBody] SecuritySettings settings) { // Prepare to update var update = VCRConfiguration.Current.BeginUpdate(SettingNames.RequiredUserRole, SettingNames.RequiredAdminRole); // Change settings update[SettingNames.RequiredAdminRole].NewValue = settings.AdminRole; update[SettingNames.RequiredUserRole].NewValue = settings.UserRole; // Process return(ServerRuntime.Update(update.Values)); }
public bool?WriteDirectory(string directory, [FromBody] DirectorySettings settings) { // Prepare to update var update = VCRConfiguration.Current.BeginUpdate(SettingNames.VideoRecorderDirectory, SettingNames.AdditionalRecorderPaths, SettingNames.FileNamePattern); // Change settings update[SettingNames.AdditionalRecorderPaths].NewValue = string.Join(", ", settings.TargetDirectories.Skip(1)); update[SettingNames.VideoRecorderDirectory].NewValue = settings.TargetDirectories.FirstOrDefault(); update[SettingNames.FileNamePattern].NewValue = settings.RecordingPattern; // Process return(ServerRuntime.Update(update.Values)); }
public bool?WriteSourceScan(string scan, [FromBody] SourceScanSettings settings) { // Check mode if (settings.Interval == 0) { // Create settings var disable = VCRConfiguration.Current.BeginUpdate(SettingNames.ScanInterval); // Store disable[SettingNames.ScanInterval].NewValue = "0"; // Process return(ServerRuntime.Update(disable.Values)); } // Check mode if (settings.Interval < 0) { // Create settings var manual = VCRConfiguration.Current.BeginUpdate(SettingNames.ScanDuration, SettingNames.MergeScanResult, SettingNames.ScanInterval); // Store manual[SettingNames.MergeScanResult].NewValue = settings.MergeLists.ToString(); manual[SettingNames.ScanDuration].NewValue = settings.Duration.ToString(); manual[SettingNames.ScanInterval].NewValue = "-1"; // Process return(ServerRuntime.Update(manual.Values)); } // Prepare to update var update = VCRConfiguration.Current.BeginUpdate(SettingNames.ScanDuration, SettingNames.MergeScanResult, SettingNames.ScanInterval, SettingNames.ScanHours, SettingNames.ScanJoinThreshold); // Fill it update[SettingNames.ScanHours].NewValue = string.Join(", ", settings.Hours.Select(hour => hour.ToString())); update[SettingNames.ScanJoinThreshold].NewValue = settings.Threshold.ToString(); update[SettingNames.MergeScanResult].NewValue = settings.MergeLists.ToString(); update[SettingNames.ScanInterval].NewValue = settings.Interval.ToString(); update[SettingNames.ScanDuration].NewValue = settings.Duration.ToString(); // Process return(ServerRuntime.Update(update.Values)); }
public bool?WriteOther(string other, [FromBody] OtherSettings settings) { // Prepare to update var update = VCRConfiguration.Current.BeginUpdate ( SettingNames.SuppressDelayAfterForcedHibernation, SettingNames.DisablePCRFromMPEG2Generation, SettingNames.DisablePCRFromH264Generation, SettingNames.DelayAfterForcedHibernation, SettingNames.UseStandByForHibernation, SettingNames.MayHibernateSystem, SettingNames.HibernationDelay, SettingNames.ArchiveLifeTime, SettingNames.LoggingLevel, SettingNames.LogLifeTime, SettingNames.AllowBasic, SettingNames.TCPPort, SettingNames.SSLPort, SettingNames.UseSSL ); // Change update[SettingNames.SuppressDelayAfterForcedHibernation].NewValue = settings.SuppressDelayAfterForcedHibernation.ToString(); update[SettingNames.DelayAfterForcedHibernation].NewValue = settings.DelayAfterForcedHibernation.ToString(); update[SettingNames.DisablePCRFromMPEG2Generation].NewValue = settings.DisablePCRFromMPEG2.ToString(); update[SettingNames.DisablePCRFromH264Generation].NewValue = settings.DisablePCRFromH264.ToString(); update[SettingNames.UseStandByForHibernation].NewValue = settings.UseStandBy.ToString(); update[SettingNames.HibernationDelay].NewValue = settings.HibernationDelay.ToString(); update[SettingNames.MayHibernateSystem].NewValue = settings.AllowHibernate.ToString(); update[SettingNames.ArchiveLifeTime].NewValue = settings.ArchiveTime.ToString(); update[SettingNames.LogLifeTime].NewValue = settings.ProtocolTime.ToString(); update[SettingNames.AllowBasic].NewValue = settings.AllowBasic.ToString(); update[SettingNames.LoggingLevel].NewValue = settings.Logging.ToString(); update[SettingNames.SSLPort].NewValue = settings.SSLPort.ToString(); update[SettingNames.TCPPort].NewValue = settings.WebPort.ToString(); update[SettingNames.UseSSL].NewValue = settings.UseSSL.ToString(); // Process return(ServerRuntime.Update(update.Values)); }