コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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;
            }));
        }