private static List <ClientOutput> GetCriticalValues(List <ClientOutput> clientOutputList) { List <ClientOutput> newClientOutputList = new List <ClientOutput>(); foreach (ClientOutput co in clientOutputList) { ClientOutput newClientOutput = new ClientOutput(co.PCName, co.ID, co.Group); foreach (PluginOutputCollection pluginCollection in co.CollectionList) { PluginOutputCollection newPluginCollection = new PluginOutputCollection(); newPluginCollection.PluginName = pluginCollection.PluginName; newPluginCollection.PluginUID = pluginCollection.PluginUID; foreach (PluginOutput pluginOutput in pluginCollection.PluginOutputList) { if (pluginOutput.Values.Any(item => item.IsCritical == true)) { newPluginCollection.PluginOutputList.Add(pluginOutput); } } if (newPluginCollection.PluginOutputList.Count > 0) { newClientOutput.CollectionList.Add(newPluginCollection); } } if (newClientOutput.CollectionList.Count > 0) { newClientOutputList.Add(newClientOutput); } } return(newClientOutputList); }
private void TakeAndPostData(bool initPost = false) { string json; string serverIP = ConfigurationManager.AppSettings["ServerIP"]; string groupName = ConfigurationManager.AppSettings["GroupName"]; ClientOutput output = new ClientOutput(getPCName(), getCPUID(), groupName); PluginOutputCollection plugOutput = new PluginOutputCollection(); _log.Debug("ServerIP: " + serverIP.ToString()); _log.Debug("GroupName: " + groupName.ToString()); json = string.Empty; output.CollectionList.Clear(); if (!initPost) { foreach (var plugin in _plugins.PluginList) { plugOutput = plugin.Output(); if (plugOutput != null) { output.CollectionList.Add(plugOutput); _log.Debug("Plugin loaded: " + plugin.ToString()); } } } else { output.InitPost = true; } if (!SendPluginOutput(output)) { // Save Output to SQLite database from JSON SaveOutputToDB(JsonConvert.SerializeObject(output)); _log.Debug("Saving output to SQLite db."); return; } try { Dictionary <int, string> dbValues = new Dictionary <int, string>(); dbValues = SQLiteDB.GetStoredJson(_dbName); foreach (var item in dbValues) { ClientOutput clientOutputDB = JsonConvert.DeserializeObject <ClientOutput>(item.Value); if (SendPluginOutput(output)) { SQLiteDB.UpdateStatus(_dbName, item.Key); } } } catch (Exception err) { _log.Error("Read stored values from database", err); return; } }
private void TakeAndPostData(bool initPost = false) { string json; string serverIP = ConfigurationManager.AppSettings["ServerIP"]; string customerName = ConfigurationManager.AppSettings["CustomerName"]; ClientOutput output = new ClientOutput(getPCName(), getMACAddress(), customerName); PluginOutputCollection plugOutput = new PluginOutputCollection(); json = string.Empty; output.CollectionList.Clear(); if (!initPost) { foreach (var plugin in _plugins.PluginList) { plugOutput = plugin.Output(); if (plugOutput != null) { output.CollectionList.Add(plugOutput); } } } else { output.InitPost = true; } if (!SendPluginOutput(output)) { SaveOutputToDB(JsonConvert.SerializeObject(output)); return; } try { Dictionary <int, string> dbValues = new Dictionary <int, string>(); dbValues = SqliteDB.GetStoredJson(_dbName); foreach (var item in dbValues) { ClientOutput clientOutputDB = JsonConvert.DeserializeObject <ClientOutput>(item.Value); if (SendPluginOutput(output)) { SqliteDB.UpdateStatus(_dbName, item.Key); } } } catch (Exception err) { _log.Error("Read stored values from database", err); return; } }