static void Main(string[] args) { //monitor.RestartMachine(); //HardwareDynamicData hardwareDynamicData = monitor.GetHardwareDynamicData(); HardwareStaticData hardwareStaticData = monitor.GetHardwareStaticData(); //SoftwareStaticData softwareStaticData = monitor.GetSoftwareStaticData(); //SoftwareDynamicData softwareDynamicData = monitor.GetSoftwareDynamicData(); //foreach (var item in softwareStaticData.InstalledProgram) //{ // Console.WriteLine(item.Name); //} //var result = monitor.TurnMachineOff(600); ////PrintProperties(data); Timer aTimer = new Timer(); ////aTimer.Elapsed += new ElapsedEventHandler(OnTimedEventProcessor); ////aTimer.Elapsed += new ElapsedEventHandler(OnTimedEventProcess); //aTimer.Elapsed += new ElapsedEventHandler(OnTimedEventGPU); //aTimer.Interval = 500; //aTimer.Enabled = true; //while (Console.Read() != 'q') ; //Console.ReadLine(); }
public HardwareStaticData GetHardwareStaticData() { HardwareStaticData data = new HardwareStaticData(); data.Processor = this.HardwareStaticBuilder.GetHardwareStaticData <ProcessorStatic>(); data.ProcessorCache = this.HardwareStaticBuilder.GetHardwareStaticData <ProcessorCache>(); data.Memory = this.HardwareStaticBuilder.GetHardwareStaticData <Memory>(); data.Disk = this.HardwareStaticBuilder.GetHardwareStaticData <Disk>(); data.CDROMDrive = this.HardwareStaticBuilder.GetHardwareStaticData <CDROMDrive>(); data.BaseBoard = this.HardwareStaticBuilder.GetHardwareStaticData <BaseBoard>(); data.Fan = this.HardwareStaticBuilder.GetHardwareStaticData <Fan>(); data.Battery = this.HardwareStaticBuilder.GetHardwareStaticData <Battery>(); data.NetworkAdapter = this.HardwareStaticBuilder.GetHardwareStaticData <NetworkAdapter>(); data.Printer = this.HardwareStaticBuilder.GetHardwareStaticData <Printer>(); data.VideoController = this.HardwareStaticBuilder.GetHardwareStaticData <VideoController>(); data.PnPEntity = this.HardwareStaticBuilder.GetHardwareStaticData <PnPEntity>(); data.Volume = this.HardwareStaticBuilder.GetHardwareStaticData <Volume>(); data.DiskPartition = this.HardwareStaticBuilder.GetHardwareStaticData <DiskPartition>(); data.SmartFailurePredictData = this.HardwareStaticBuilder.GetHardwareStaticData <SmartFailurePredictData>(); data.SmartFailurePredictStatus = this.HardwareStaticBuilder.GetHardwareStaticData <SmartFailurePredictStatus>(); data.SmartFailurePredictThresholds = this.HardwareStaticBuilder.GetHardwareStaticData <SmartFailurePredictThresholds>(); data.SMARTData = this.HardwareStaticAnalyzer.GetSmartData( data.SmartFailurePredictStatus, data.SmartFailurePredictData, data.SmartFailurePredictThresholds); data.DiskToPartition = this.HardwareStaticBuilder.GetHardwareStaticData <DiskToPartition>(); data.PartitionToVolume = this.HardwareStaticBuilder.GetHardwareStaticData <PartitionToVolume>(); data.Storage = this.HardwareStaticAnalyzer.GetStorageData( data.Disk, data.DiskPartition, data.Volume, data.DiskToPartition, data.PartitionToVolume, data.SMARTData); return(data); }
public IAsyncCommand CreateHardwareStaticDataCommand( WpfObservableRangeCollection <ProcessorStatic> processorStatic, WpfObservableRangeCollection <ProcessorCache> processorCache, WpfObservableRangeCollection <Memory> memoryItems, WpfObservableRangeCollection <BaseBoard> baseBoard, WpfObservableRangeCollection <VideoController> videoController, WpfObservableRangeCollection <NetworkAdapter> networkAdapter, WpfObservableRangeCollection <PnPEntity> pnPEntity, WpfObservableRangeCollection <CDROMDrive> cDROMDrive, WpfObservableRangeCollection <Fan> fan, WpfObservableRangeCollection <Printer> printer, WpfObservableRangeCollection <Battery> battery, WpfObservableRangeCollection <Storage> storage) { return(new AsyncCommand <HardwareStaticData>(async(cancellationToken) => { WorkstationMonitorServiceClient workstationMonitorServiceClient = null; HardwareStaticData result = null; try { workstationMonitorServiceClient = await this.wcfClient.GetNewWorkstationMonitorServiceClient(); result = await Task.Run <HardwareStaticData>(() => workstationMonitorServiceClient.ReadHardwareStaticDataAsync()) .WithCancellation(cancellationToken) // Following statements will be processed in the same thread, won't use caught context (UI) .ConfigureAwait(false); if (cancellationToken.IsCancellationRequested) { workstationMonitorServiceClient.Abort(); } else { workstationMonitorServiceClient.Close(); } if (result != null && !cancellationToken.IsCancellationRequested) { processorStatic.ReplaceRange(result.Processor, new ProcessorStaticComparer()); processorCache.ReplaceRange(result.ProcessorCache, new ProcessorCacheStaticComparer()); memoryItems.ReplaceRange(result.Memory, new MemoryStaticComparer()); baseBoard.ReplaceRange(result.BaseBoard, new BaseBoardStaticComparer()); videoController.ReplaceRange(result.VideoController, new VideoControllerStaticComparer()); networkAdapter.ReplaceRange(result.NetworkAdapter, new NetworkAdapterStaticComparer()); pnPEntity.ReplaceRange(result.PnPEntity, new PnPEntityStaticComparer()); cDROMDrive.ReplaceRange(result.CDROMDrive, new CDROMDriveStaticComparer()); fan.ReplaceRange(result.Fan, new FanStaticComparer()); printer.ReplaceRange(result.Printer, new PrinterStaticComparer()); battery.ReplaceRange(result.Battery, new BatteryStaticComparer()); storage.ReplaceRange(result.Storage); } } catch (InvalidOperationException ex) { this.messageSender.SendErrorMessage(ex.Message); // Rethrow exception in order to set correct Task state (Faulted) throw; } catch (EndpointNotFoundException) { this.messageSender.SendErrorMessageEndpointNotFound(); this.messageSender.SendCancelCommandMessage(this.wcfClient.MachineIdentifier); workstationMonitorServiceClient.Abort(); throw; } catch (TimeoutException) { this.messageSender.SendErrorMessageTimeout(); this.messageSender.SendCancelCommandMessage(this.wcfClient.MachineIdentifier); workstationMonitorServiceClient.Abort(); throw; } catch (CommunicationException ex) { this.messageSender.SendErrorMessage(ex.Message); this.messageSender.SendCancelCommandMessage(this.wcfClient.MachineIdentifier); workstationMonitorServiceClient.Abort(); throw; } return result; })); }