private void OnQueryServiceListTaskChange(IList <Microsoft.EnterpriseManagement.Runtime.TaskResult> results, bool lastUpdate) { Dbg.Log($"Entering {MethodBase.GetCurrentMethod().Name}"); foreach (Microsoft.EnterpriseManagement.Runtime.TaskResult result in results) { try { ServiceListDataItem serviceListResult = DeserializeDataItemFromTaskResults <ServiceListDataItem, ServiceList>(results, (xmlReader) => new ServiceListDataItem(xmlReader)); if (serviceListResult != null && serviceListResult.Data.ErrorCode == 0) { DataTable table = PrepareServiceTable(serviceListResult); BindingSource bs = new BindingSource() { DataSource = table }; dgvServices.DataSource = bs; dgvServices.Sort(cServiceDisplayName, ListSortDirection.Ascending); } } catch (Exception e) { Dbg.Log($"Exception {e.Message} in {MethodBase.GetCurrentMethod().Name}"); } } }
private DataTable PrepareServiceTable(ServiceListDataItem serviceDataItem) { Dbg.Log($"Entering {MethodBase.GetCurrentMethod().Name}"); DataTable result = new DataTable(); result.Columns.Add("DisplayName", typeof(string)).AllowDBNull = true; result.Columns.Add("Description", typeof(string)).AllowDBNull = true; result.Columns.Add("Start", typeof(string)).AllowDBNull = true; result.Columns.Add("ObjectName", typeof(string)).AllowDBNull = true; result.Columns.Add("IsDelayed", typeof(bool)).AllowDBNull = true; result.Columns.Add("IsTriggered", typeof(bool)).AllowDBNull = true; result.Columns.Add("Status", typeof(string)).AllowDBNull = true; result.Columns.Add("SourceObject", typeof(ServiceInfo)); foreach (ServiceInfo serviceInfo in serviceDataItem.Data.Services) { result.LoadDataRow(new object[] { (object)serviceInfo.DisplayName ?? (object)serviceInfo.Name ?? DBNull.Value, (object)serviceInfo.Description ?? DBNull.Value, ServiceStartTypeToString(serviceInfo.Start), (object)serviceInfo.ObjectName ?? DBNull.Value, serviceInfo.IsDelayed, serviceInfo.IsTriggered, (object)serviceInfo.Status ?? DBNull.Value, serviceInfo }, false); } result.AcceptChanges(); Dbg.Log($"returning {result.Rows.Count} rows."); return(result); }
private void OnServiceRefresh(IList <TaskResult> results, bool lastUpdate) { Dbg.Log($"Entering {MethodBase.GetCurrentMethod().Name}"); foreach (Microsoft.EnterpriseManagement.Runtime.TaskResult result in results) { try { if (result.Status == Microsoft.EnterpriseManagement.Runtime.TaskStatus.Succeeded || result.Status == Microsoft.EnterpriseManagement.Runtime.TaskStatus.CompletedWithInfo) { using (StringReader stringReader = new StringReader(result.Output)) { using (XmlReader xmlReader = XmlReader.Create(stringReader)) { if (xmlReader.Read() && xmlReader.ReadToDescendant("ServiceList")) { ServiceListDataItem serviceListResult = new ServiceListDataItem(xmlReader.ReadSubtree()); if (serviceListResult.Data.ErrorCode == 0) { ShowServiceInfo(serviceListResult.Data.Services[0]); } } } } } } catch (Exception e) { Dbg.Log($"Exception {e.Message} in {MethodBase.GetCurrentMethod().Name}"); } } }