public ClientCommandDTO HandleClientCommandRequest(ClientCommandRequest clientCommandRequest, ClientLoginModel clientLoginModel)
        {
            MethodInfo handleMethod
                = SearchHandleMethod(_classHandle, clientCommandRequest.Command);

            if (handleMethod == null)
            {
                throw new ClientCommandHandlerException("Undefined command.");
            }
            object clientCommand = handleMethod?.Invoke(this, new object[] { clientCommandRequest });

            if ((clientCommand is string) && !string.IsNullOrEmpty(((string)clientCommand)))
            {
                return(new ClientCommandDTO(
                           new ClientCommandInformation
                {
                    SerializedData = (string)clientCommand,
                    ClientLogin = clientLoginModel
                },
                           clientCommandRequest.Command
                           ));
            }
            else
            {
                throw new ClientCommandHandlerException("Error while forming command.");
            }
        }
        public void AddTimer(ClientCommandRequest clientCommand, int elapsedTimeSec, bool repeat)
        {
            Timer timer = new Timer(elapsedTimeSec * 1000);

            timer.AutoReset = repeat;
            timer.Elapsed  += (sender, e) => TimerInvoke(sender);
            _scheduleCommands.Add(timer, clientCommand);
        }
        public string GetMemoryUsageProcesses(ClientCommandRequest clientCommandRequest)
        {
            OperatingSystemMonitoringController operatingSystemMonitoringController
                = (OperatingSystemMonitoringController)_serviceProvider.GetService(typeof(OperatingSystemMonitoringController));
            IEnumerable <ProcessDTO> processes = operatingSystemMonitoringController.GetTopMemoryUsageProcesses();

            return(JsonConvert.SerializeObject(processes));
        }
        public string GetComputerSystemInformation(ClientCommandRequest clientCommandRequest)
        {
            OperatingSystemInformationController operatingSystemInformationController =
                (OperatingSystemInformationController)_serviceProvider.GetService(typeof(OperatingSystemInformationController));
            ComputerSystemDTO computerSystem = operatingSystemInformationController.GetComputerSystemInformation();

            return(JsonConvert.SerializeObject(computerSystem));
        }
        public string GetProcessInformationById(ClientCommandRequest clientCommandRequest)
        {
            OperatingSystemInformationController operatingSystemInformationController =
                (OperatingSystemInformationController)_serviceProvider.GetService(typeof(OperatingSystemInformationController));
            ProcessInformationDTO processDTO = operatingSystemInformationController
                                               .GetProcessInformationById(int.Parse(clientCommandRequest.Arguments));

            return(JsonConvert.SerializeObject(processDTO));
        }
        public string GetComputerComponentCommandHandle(ClientCommandRequest clientCommandRequest)
        {
            HardwareSystemInformationController hardwareSystemInformationController
                = (HardwareSystemInformationController)_serviceProvider.GetService(typeof(HardwareSystemInformationController));
            ComputerHardwareInformationDTO chInformation = hardwareSystemInformationController
                                                           .GetComputerHardwareInformation();

            return(JsonConvert.SerializeObject(chInformation));
        }
 private void TimerInvoke(object sender)
 {
     lock (_timerLocker)
     {
         ClientCommandRequest clientCommandRequest = new ClientCommandRequest();
         _scheduleCommands.TryGetValue((Timer)sender, out clientCommandRequest);
         ClientCommandDTO clientCommand
             = _clientMediator.ProducingClientCommand(clientCommandRequest);
         _clientMediator.SendClientCommand(clientCommand);
     }
 }
 public ClientCommandDTO ProducingClientCommand(ClientCommandRequest ClientCommandRequest)
 {
     try
     {
         if (ClientLogin == null)
         {
             ClientLogin = _userInterface.InputLogin();
             if (!_scheduleCommandManager.IsStart)
             {
                 _scheduleCommandManager.Run();
             }
         }
         return(_clientCommandHandler.HandleClientCommandRequest(ClientCommandRequest, ClientLogin));
     }
     catch (Exception exception)
     {
         throw new SystemDiagnosticClientException(exception, "");
     }
 }
 public string TestCommandHandle(ClientCommandRequest clientCommandRequest)
 {
     return("Send Test Command");
 }