public FileCollector(CacheManager cacheManager, string xmlString) { _cacheManager = cacheManager; // Load the XML file RF call _xml = new XmlDocument(); _xml.LoadXml(xmlString); // Create a required files object _requiredFiles = new RequiredFiles(); _requiredFiles.RequiredFilesXml = _xml; // Get the key for later use hardwareKey = new HardwareKey(); // Make a new filelist collection _files = new Collection<RequiredFile>(); // Create a webservice call xmdsFile = new XiboClient.xmds.xmds(); // Start up the Xmds Service Object xmdsFile.Credentials = null; xmdsFile.Url = Properties.Settings.Default.XiboClient_xmds_xmds; xmdsFile.UseDefaultCredentials = false; // Hook onto the xmds file complete event xmdsFile.GetFileCompleted += new XiboClient.xmds.GetFileCompletedEventHandler(xmdsFile_GetFileCompleted); }
public RequiredFiles() { _requiredFiles = new Collection<RequiredFile>(); // Create a webservice call _report = new XiboClient.xmds.xmds(); // Start up the Xmds Service Object _report.Credentials = null; _report.Url = Properties.Settings.Default.XiboClient_xmds_xmds; _report.UseDefaultCredentials = false; }
/// <summary> /// Change to the next layout /// </summary> private void ChangeToNextLayout(string layoutPath) { try { SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_CONTINUOUS); // TODO: Check we are never out of the UI thread at this point DestroyLayout(); _isExpired = false; PrepareLayout(layoutPath); _clientInfoForm.CurrentLayoutId = layoutPath; // Do we need to notify? if (ApplicationSettings.Default.SendCurrentLayoutAsStatusUpdate) { using (xmds.xmds statusXmds = new xmds.xmds()) { statusXmds.Url = ApplicationSettings.Default.XiboClient_xmds_xmds; statusXmds.NotifyStatusAsync(ApplicationSettings.Default.Version, ApplicationSettings.Default.ServerKey, ApplicationSettings.Default.HardwareKey, "{\"currentLayoutId\":" + _layoutId + "}"); } } } catch (Exception ex) { Trace.WriteLine(new LogMessage("MainForm - ChangeToNextLayout", "Layout Change to " + layoutPath + " failed. Exception raised was: " + ex.Message), LogType.Error.ToString()); _isExpired = true; ShowSplashScreen(); // In 10 seconds fire the next layout? System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); timer.Interval = 10000; timer.Tick += new EventHandler(splashScreenTimer_Tick); // Start the timer timer.Start(); } }
/// <summary> /// Adds a media item to the Black list. Adds Locally and to the WebService /// </summary> /// <param name="id">The Media ID</param> /// <param name="type">The BlackListType, either All (to blacklist on all displays) or Single (to blacklist only on this display)</param> /// <param name="reason">The reason for the blacklist</param> public void Add(string id, BlackListType type, string reason) { // Do some validation if (reason == "") reason = "No reason provided"; int mediaId; if (!int.TryParse(id, out mediaId)) { System.Diagnostics.Trace.WriteLine(String.Format("Currently can only append Integer media types. Id {0}", id), "BlackList - Add"); } // Send to the webservice xmds1 = new XiboClient.xmds.xmds(); xmds1.BlackListCompleted += new XiboClient.xmds.BlackListCompletedEventHandler(xmds1_BlackListCompleted); xmds1.BlackListAsync(ApplicationSettings.Default.ServerKey, hardwareKey.Key, mediaId, type.ToString(), reason, ApplicationSettings.Default.Version); // Add to the local list AddLocal(id); }
/// <summary> /// Adds a media item to the Black list. Adds Locally and to the WebService /// </summary> /// <param name="id">The Media ID</param> /// <param name="type">The BlackListType, either All (to blacklist on all displays) or Single (to blacklist only on this display)</param> /// <param name="reason">The reason for the blacklist</param> public void Add(string id, BlackListType type, string reason) { // Do some validation if (reason == "") { reason = "No reason provided"; } int mediaId; if (!int.TryParse(id, out mediaId)) { System.Diagnostics.Trace.WriteLine(String.Format("Currently can only append Integer media types. Id {0}", id), "BlackList - Add"); } // Send to the webservice xmds1 = new XiboClient.xmds.xmds(); xmds1.BlackListCompleted += new XiboClient.xmds.BlackListCompletedEventHandler(xmds1_BlackListCompleted); xmds1.BlackListAsync(ApplicationSettings.Default.ServerKey, hardwareKey.Key, mediaId, type.ToString(), reason, ApplicationSettings.Default.Version); // Add to the local list AddLocal(id); }
/// <summary> /// Change to the next layout /// </summary> private void ChangeToNextLayout(string layoutPath) { try { SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_CONTINUOUS); } catch { Trace.WriteLine(new LogMessage("MainForm - ChangeToNextLayout", "Unable to set Thread Execution state"), LogType.Info.ToString()); } try { // Destroy the Current Layout try { DestroyLayout(); } catch (Exception e) { // Force collect all controls foreach (System.Windows.Forms.Control control in Controls) { control.Dispose(); Controls.Remove(control); } Trace.WriteLine(new LogMessage("MainForm - ChangeToNextLayout", "Destroy Layout Failed. Exception raised was: " + e.Message), LogType.Error.ToString()); throw e; } // Prepare the next layout try { PrepareLayout(layoutPath); _clientInfoForm.CurrentLayoutId = layoutPath; } catch (Exception e) { DestroyLayout(); Trace.WriteLine(new LogMessage("MainForm - ChangeToNextLayout", "Prepare Layout Failed. Exception raised was: " + e.Message), LogType.Error.ToString()); throw e; } // Do we need to notify? try { if (ApplicationSettings.Default.SendCurrentLayoutAsStatusUpdate) { using (xmds.xmds statusXmds = new xmds.xmds()) { statusXmds.Url = ApplicationSettings.Default.XiboClient_xmds_xmds; statusXmds.NotifyStatusAsync(ApplicationSettings.Default.ServerKey, ApplicationSettings.Default.HardwareKey, "{\"currentLayoutId\":" + _layoutId + "}"); } } } catch (Exception e) { Trace.WriteLine(new LogMessage("MainForm - ChangeToNextLayout", "Notify Status Failed. Exception raised was: " + e.Message), LogType.Error.ToString()); throw e; } } catch (Exception ex) { Trace.WriteLine(new LogMessage("MainForm - ChangeToNextLayout", "Layout Change to " + layoutPath + " failed. Exception raised was: " + ex.Message), LogType.Error.ToString()); ShowSplashScreen(); // In 10 seconds fire the next layout? System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); timer.Interval = 10000; timer.Tick += new EventHandler(splashScreenTimer_Tick); // Start the timer timer.Start(); } // We have finished changing the layout _changingLayout = false; }
private void InitializeListener() { // Make a new collection of TraceMessages _traceMessages = new Collection<TraceMessage>(); _logPath = Application.UserAppDataPath + @"/" + Properties.Settings.Default.logLocation; _xmdsProcessing = false; _xmds = new xmds.xmds(); // Register a listener for the XMDS stats _xmds.SubmitLogCompleted += new XiboClient.xmds.SubmitLogCompletedEventHandler(_xmds_SubmitLogCompleted); // Get the key for this display _hardwareKey = new HardwareKey(); }
public override void RenderMedia() { if (!string.IsNullOrEmpty(_code)) { // Stored command bool success; try { Command command = Command.GetByCode(_code); success = command.Run(); } catch (Exception e) { Trace.WriteLine(new LogMessage("ScheduleManager - Run", "Cannot run Command: " + e.Message), LogType.Error.ToString()); success = false; } // Notify the state of the command (success or failure) using (xmds.xmds statusXmds = new xmds.xmds()) { statusXmds.Url = ApplicationSettings.Default.XiboClient_xmds_xmds + "&method=notifyStatus"; statusXmds.NotifyStatusAsync(ApplicationSettings.Default.ServerKey, ApplicationSettings.Default.HardwareKey, "{\"lastCommandSuccess\":" + success + "}"); } } else { // shell command // Is this module enabled? if (ApplicationSettings.Default.EnableShellCommands) { // Check to see if we have an allow list if (!string.IsNullOrEmpty(ApplicationSettings.Default.ShellCommandAllowList)) { // Array of allowed commands string[] allowedCommands = ApplicationSettings.Default.ShellCommandAllowList.Split(','); // Check we are allowed to execute the command bool found = false; foreach (string allowedCommand in allowedCommands) { if (_command.StartsWith(allowedCommand)) { found = true; ExecuteShellCommand(); break; } } if (!found) { Trace.WriteLine(new LogMessage("ShellCommand - RenderMedia", "Shell Commands not in allow list: " + ApplicationSettings.Default.ShellCommandAllowList), LogType.Error.ToString()); } } else { // All commands are allowed ExecuteShellCommand(); } } else { Trace.WriteLine(new LogMessage("ShellCommand - RenderMedia", "Shell Commands are disabled"), LogType.Error.ToString()); } } // All shell commands have a duration of 1 base.RenderMedia(); }
public StatLog() { _stats = new Collection<Stat>(); _xmds = new xmds.xmds(); // Register a listener for the XMDS stats _xmds.SubmitStatsCompleted += new XiboClient.xmds.SubmitStatsCompletedEventHandler(_xmds_SubmitStatsCompleted); // Get the key for this display _hardwareKey = new HardwareKey(); _xmdsProcessing = false; }