Пример #1
0
 public App(WMIService wmiService, DataSenderService dataSenderSerivce)
 {
     _wmiService        = wmiService;
     _dataSenderSerivce = dataSenderSerivce;
 }
        /// <summary>
        ///
        /// </summary>
        private void UpdateDeviceStatuses()
        {
            try
            {
                WMIService = new WMIService(EventLog);

                MattimonAgentLibrary.Models.Device scanDevice = WMIService.Scan();
                string            versAssignmentMessage       = string.Empty;
                EventLogEntryType entrytype = EventLogEntryType.Information;

                scanDevice.AgentVersion              = this.agentversion;
                scanDevice.AgentServiceVersion       = this.agentServiceVersion;
                scanDevice.UpdateServiceVersion      = this.updateServiceVersion;
                scanDevice.MattimonSQLServiceVersion = this.mattimonSQLServiceVersion;
                scanDevice.LibraryVersion            = this.libraryVersion;

                EventLog.WriteEntry(versAssignmentMessage, entrytype, DEVICE_UPD_EVENT_ID + 1);

                /* set keys */
                scanDevice.Company_Id     = fetchedCompanyId;
                scanDevice.User_Id        = fetchedUserId;
                scanDevice.Device_Id      = fetchedDeviceId;
                scanDevice.Device_Type_Id = fetchedDeviceTypeId;
                /* end set keys */

                EventLog.WriteEntry("Update Device statuses: \n\n" +
                                    "device_id: " + scanDevice.Device_Id + "\n" +
                                    "device_type_id: " + scanDevice.Device_Type_Id + "\n" +
                                    "user_id: " + scanDevice.User_Id + "\n" + "" +
                                    "company_id: " + scanDevice.Company_Id + "\n" +
                                    "agent version: " + scanDevice.AgentVersion,
                                    EventLogEntryType.Information, DEVICE_UPD_EVENT_ID);

                MattimonAgentLibrary.Models.Device returnedDevice = deviceRequests.UpdateDeviceEntry(scanDevice);
                scanDevice = null;

                if (returnedDevice.TaskCanceledException != null)
                {
                    EventLog.WriteEntry("UpdateDeviceStatuses TaskCanceledException\n\n" + returnedDevice.TaskCanceledException.ToString(), EventLogEntryType.Error, DEVICE_UPD_EVENT_ID);
                    return;
                }
                if (returnedDevice.HttpRequestException != null)
                {
                    EventLog.WriteEntry("UpdateDeviceStatuses HttpRequestException\n\n" + returnedDevice.HttpRequestException.ToString(), EventLogEntryType.Error, DEVICE_UPD_EVENT_ID);
                    //MattimonAgentLibrary.Tools.MyServiceController.StopService(ServiceName);
                    return;
                }
                if (returnedDevice.MySqlExceptionMessage != null)
                {
                    EventLog.WriteEntry("UpdateDeviceStatuses MySqlException\n\n" + returnedDevice.MySqlExceptionMessage, EventLogEntryType.Error, DEVICE_UPD_EVENT_ID);
                    //MattimonAgentLibrary.Tools.MyServiceController.StopService(ServiceName);
                    return;
                }
                if (returnedDevice.Exception != null)
                {
                    EventLog.WriteEntry("UpdateDeviceStatuses Exception\n\n" + returnedDevice.Exception.ToString(), EventLogEntryType.Error, DEVICE_UPD_EVENT_ID);
                    //MattimonAgentLibrary.Tools.MyServiceController.StopService(ServiceName);
                    return;
                }
                if (returnedDevice.RequestSuccess)
                {
                    EventLog.WriteEntry("UpdateDeviceStatuses Success\n\n",
                                        EventLogEntryType.Information, DEVICE_UPD_EVENT_ID);
                    return;
                }
            }
            catch (Exception ex)
            {
                EventLog.WriteEntry(ex.Message + "\n\n" + ex.ToString(), EventLogEntryType.Error, DEVICE_UPD_EVENT_ID);
                if (MattimonAgentLibrary.Tools.MyServiceController.GetServiceStatus(ServiceName) ==
                    MattimonAgentLibrary.Tools.MyServiceController.ServiceState.Running)
                {
                    MattimonAgentLibrary.Tools.MyServiceController.StopService(ServiceName);
                }
            }
        }