Example #1
0
        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}");
                }
            }
        }
Example #2
0
        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}");
                }
            }
        }