Esempio n. 1
0
        protected override void OnStart(string[] args)
        {
            JLogger.LogInfo(this, "OnStart() Start");

            base.OnStart(args);
            _host?.Close();

            try
            {
                JLogger.LogDebug(this, "Se crea el service host con la direccion base.");
                var baseAddress = new Uri("http://localhost:8080/CommandService");
                _host = new ServiceHost(typeof(CommandService), baseAddress);

                JLogger.LogDebug(this, "Se configura para presentar el metadata.");
                var smb = new ServiceMetadataBehavior
                {
                    HttpGetEnabled   = true,
                    MetadataExporter = { PolicyVersion = PolicyVersion.Policy15 }
                };
                _host.Description.Behaviors.Add(smb);

                JLogger.LogDebug(this, "Se Abre la comunicacion.");
                _host.Open();
            }
            catch (Exception ex)
            {
                JLogger.LogError(this, "Error al crear el host.", ex);
            }

            JLogger.LogInfo(this, "OnStart() End");
        }
Esempio n. 2
0
        public CommandResponse[] ExecuteCommand(CommandRequest req)
        {
            JLogger.LogInfo(this, "ExecuteCommand:{0}", req.ToString());

            CommandResponse[] resp;
            try
            {
                var cmd = GetCommand(req.ServiceName, req.ServiceCommand);
                if (cmd != null)
                {
                    resp = (CommandResponse[])cmd.RunCommand(req);
                }
                else
                {
                    resp = new[]
                    {
                        new CommandResponse(CommandResponseCodes.ErrorCommandNotFound[0],
                                            CommandResponseCodes.ErrorCommandNotFound[1])
                    };
                }
            }
            catch (Exception ex)
            {
                resp = new[]
                {
                    new CommandResponse(CommandResponseCodes.ErrorExceptionFound[0],
                                        CommandResponseCodes.ErrorExceptionFound[1] + ex.Message)
                };
            }
            return(resp);
        }
Esempio n. 3
0
        public void InternalLogging()
        {
            bool     insideCallback  = false;
            string   internalMessage = null;
            LogLevel internalLevel   = LogLevel.Trace;

            var sink = new Mock <ISink>();

            sink.Setup(s => s.Emit(It.IsAny <string>(), Enums.LogLevel.Info))
            .Throws <NullReferenceException>();
            sink.Setup(s => s.Emit(It.IsAny <string>(), LogLevel.Critical))
            .Callback((string msg, LogLevel level) =>
            {
                insideCallback  = true;
                internalMessage = msg;
                internalLevel   = level;
            });

            var logger = new JLogger(sink.Object, new EntryFormatter(new DataFormatter()));

            logger.Log("test");

            Assert.True(insideCallback);
            Assert.Equal(LogLevel.Critical, internalLevel);
            Assert.Contains("StackTrace", internalMessage);
            Assert.Contains("Failed to log entry", internalMessage);
        }
Esempio n. 4
0
        private void LoadWatchers()
        {
            JLogger.LogInfo(this, "LoadWatchers()");
            var watchers = Directory.EnumerateFiles(SRMAgentPaths.SRMComponents, "*.dll").ToList();

            foreach (var watcher in watchers)
            {
                JLogger.LogDebug(this, "Component found: {0}", watcher);
                try
                {
                    JLogger.LogDebug(this, "Loading assembly from file");
                    var ptrAssembly = Assembly.LoadFile(watcher);
                    foreach (var item in ptrAssembly.GetTypes())
                    {
                        if (!item.IsClass)
                        {
                            continue;
                        }
                        JLogger.LogDebug(this, "Filter for correct interface");
                        if (item.GetInterfaces().Contains(typeof(IFactWatcher)))
                        {
                            var inst = (IFactWatcher)Activator.CreateInstance(item);
                            _watchers.Add(inst);
                            JLogger.LogDebug(this, "Watcher '{0}' added to list", inst.GetFactWatcherName());
                        }
                    }
                }
                catch (Exception ex)
                {
                    JLogger.LogError(this, "LoadWatchers() Exception found: {0}", ex.Message);
                }
            }
        }
Esempio n. 5
0
        //
        private void OnEntryWritten(object source, EntryWrittenEventArgs e)
        {
            JLogger.LogInfo(this, "OnEntryWritten() eventId:{0}", e.Entry.Index);

            //ALL THE EVENT LOGS CAN FIRE THIS EVENT HANDLER SO WE NEED TO
            //GET EVENTLOG NAME FROM EVENTLOG SOURCE (DIRTY WAY)
            var eventLogName = (string)source.GetType().GetProperty("Log").GetValue(source, null);

            var fieldSeparator = (char)28;
            var sbFactMessage  = new StringBuilder();

            sbFactMessage.AppendFormat("{0}{1}{2}{3}{4}{5}{6}{7}{8}",
                                       eventLogName, fieldSeparator,
                                       e.Entry.Index, fieldSeparator,
                                       e.Entry.Source, fieldSeparator,
                                       e.Entry.TimeGenerated, fieldSeparator,
                                       e.Entry.Message);

            //FIRE NEW EVENT
            JLogger.LogInfo(this, "Firing the event");
            OnNewFact?.Invoke(this,
                              new FactWatcherEventArgs(GetFactWatcherName(), e.Entry.TimeGenerated, sbFactMessage.ToString()));

            //SAVE LOG FACTS
            JLogger.LogDebug(this, "Validate if is configured fact file");
            if (!string.IsNullOrEmpty(_savedFactFileName))
            {
                SaveFactToLog(sbFactMessage.ToString());
            }

            //STORE THE LATEST INDEX PROCESSED
            Persistence.SetValueByKey("LAST_ENTRY_INDEX", e.Entry.Index.ToString());
            Persistence.SetValueByKey("LAST_ENTRY_DATETIME", e.Entry.TimeGenerated.ToString(CultureInfo.InvariantCulture));
            //Persistence.Save();
        }
Esempio n. 6
0
        private void OnNewFactProcess(object sender, EventArgs e)
        {
            JLogger.LogInfo(this, "OnNewFactProcess()");
            var ea = (FactWatcherEventArgs)e;

            var sbFactMessage = new StringBuilder();

            sbFactMessage.AppendFormat("{0}-{1}-{2}", DateTime.Now.ToString("yyyyMMddHHmmssff",
                                                                            CultureInfo.InvariantCulture),
                                       ea.FactWatcherName,
                                       ea.FactData);

            //string factFileName = _factStorePath + DateTime.Now.ToString("yyyyMMddHHmmssffff", CultureInfo.InvariantCulture) + "-" +
            //    ea.FactDatetime.ToString("yyyyMMddHHmmssffff", CultureInfo.InvariantCulture) + ".log";
            //JLogger.LogDebug(this, "Opening {0} file to write", factFileName);
            //using (var factFile = File.Open(factFileName, FileMode.CreateNew, FileAccess.Write))
            //{
            //    JLogger.LogDebug(this, "Writing to file", factFileName);
            //    factFile.Write(Encoding.ASCII.GetBytes(sbFactMessage.ToString()), 0, sbFactMessage.Length);
            //}

            _serverAccess.ProcessFact(new Fact()
            {
                MachineId      = 0,
                AgentTimestamp = DateTime.Now.ToString("yyyyMMddHHmmssff", CultureInfo.InvariantCulture),
                Watcher        = ea.FactWatcherName,
                Datetime       = ea.FactDatetime.ToString("yyyyMMddHHmmssff", CultureInfo.InvariantCulture),
                Data           = ea.FactData
            });

            SaveFactToLog(ea.FactWatcherName, ea.FactData);
        }
Esempio n. 7
0
        public void Start()
        {
            JLogger.LogInfo(this, "Start()");
            int count = 0;
            int sleepTime;

            int.TryParse(Config.GetValueByKey("BEAT_TIME_MS"), out sleepTime);

            _cts = new CancellationTokenSource();
            var token = _cts.Token;

            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    if (token.IsCancellationRequested)
                    {
                        break;
                    }
                    //DO YOUR WORK
                    Thread.Sleep(sleepTime);
                    OnNewFact?.Invoke(this, new FactWatcherEventArgs(GetFactWatcherName(), DateTime.Now, "BEAT" + count));
                    count++;
                }
            }, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
        }
Esempio n. 8
0
        private void SaveFactToLog(string watcherName, string message)
        {
            JLogger.LogInfo(this, "SaveFactToLog()");

            var sbFactMessage = new StringBuilder();

            sbFactMessage.AppendFormat("{0}-{1}-{2}{3}", DateTime.Now.ToString("yyyyMMddHHmmssff",
                                                                               CultureInfo.InvariantCulture),
                                       watcherName,
                                       message.Replace(Environment.NewLine, " ").Replace('\r', ' '),
                                       Environment.NewLine);

            JLogger.LogDebug(this, "validate if it is configured log file {0}", _savedFactFileName);
            if (!string.IsNullOrEmpty(_savedFactFileName))
            {
                lock (_objectLock)
                {
                    JLogger.LogDebug(this, "Opening {0} file to write", _savedFactFileName);
                    using (var factFile = File.Open(SRMAgentPaths.SRMData + _savedFactFileName, FileMode.Append, FileAccess.Write))
                    {
                        JLogger.LogDebug(this, "Writing to file", _savedFactFileName);
                        factFile.Write(Encoding.ASCII.GetBytes(sbFactMessage.ToString()), 0, sbFactMessage.Length);
                    }
                }
            }

            //PRINT TO CONSOLE
            if (!string.IsNullOrEmpty(Config.GetValueByKey("TO_CONSOLE")))
            {
                Console.WriteLine(sbFactMessage.ToString());
            }
        }
Esempio n. 9
0
        protected override void OnCustomCommand(int command)
        {
            JLogger.LogInfo(this, "OnCustomCommand() Start");
            //  A custom command can be sent to a service by using this method:
            //#  int command = 128; //Some Arbitrary number between 128 & 256
            //#  ServiceController sc = new ServiceController("NameOfService");
            //#  sc.ExecuteCommand(command);

            base.OnCustomCommand(command);
            JLogger.LogInfo(this, "OnCustomCommand() End");
        }
Esempio n. 10
0
 public void Stop()
 {
     JLogger.LogInfo(this, "Stop()");
     //CLOSE ALL THE EVENT LOGS FILES OPENED
     foreach (var eventLog in _eventLogs)
     {
         JLogger.LogDebug(this, "Stoping {0} eventlog", eventLog.LogDisplayName);
         eventLog.EnableRaisingEvents = false;
         eventLog.Close();
     }
 }
Esempio n. 11
0
 protected override void OnStop()
 {
     JLogger.LogInfo(this, "OnStop() Start");
     base.OnStop();
     if (_wl != null)
     {
         _wl.StopWatchers();
         _wl = null;
     }
     JLogger.LogInfo(this, "OnStop() End");
 }
Esempio n. 12
0
        public void StopWatchers()
        {
            JLogger.LogInfo(this, "StoptWatchers()");

            foreach (var watcher in _watchers)
            {
                JLogger.LogDebug(this, "Stoping Watcher '{0}'", watcher.GetFactWatcherName());
                watcher.Stop();
                JLogger.LogDebug(this, "Disattached 'OnNewFactProcess' to Watcher '{0}'", watcher.GetFactWatcherName());
                watcher.OnNewFact -= OnNewFactProcess;
            }
        }
Esempio n. 13
0
        public void StartWatchers()
        {
            JLogger.LogInfo(this, "StartWatchers()");

            foreach (var watcher in _watchers)
            {
                JLogger.LogDebug(this, "Attached 'OnNewFactProcess' to Watcher '{0}'", watcher.GetFactWatcherName());
                watcher.OnNewFact += OnNewFactProcess;
                JLogger.LogDebug(this, "Starting Watcher '{0}'", watcher.GetFactWatcherName());
                watcher.Start();
            }
        }
Esempio n. 14
0
        protected override void OnStop()
        {
            JLogger.LogInfo(this, "OnStop() Start");

            base.OnStop();
            if (_host != null)
            {
                _host.Close();
                _host = null;
            }

            JLogger.LogInfo(this, "OnStop() End");
        }
Esempio n. 15
0
        protected override void OnStart(string[] args)
        {
            JLogger.LogInfo(this, "OnStart() Start");

            if (_wl == null)
            {
                _wl = new WatcherLoader();
            }

            _wl.StartWatchers();

            JLogger.LogInfo(this, "OnStart() End");
        }
Esempio n. 16
0
        //private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        /// <summary>
        ///     The main entry point for the application.
        /// </summary>
        private static void Main()
        {
            JLogger.LogInfo(null, "SRMAgentService Main Start...");

            JLogger.LogDebug(null, "SRMAgentService creating services instances array");
            ServiceBase[] servicesToRun = new ServiceBase[]
            {
                new AgentServiceCommand(),
                new AgentServiceWatcher()
            };
            JLogger.LogDebug(null, "SRMAgentService run services instances array");
            ServiceBase.Run(servicesToRun);

            JLogger.LogInfo(null, "SRMAgentService Main End...");
        }
Esempio n. 17
0
        public AgentServiceCommand()
        {
            JLogger.LogInfo(this, "AgentServiceCommand() Start");

            ServiceName  = "SRMAgentServiceCommand";
            EventLog.Log = "Application";

            CanHandlePowerEvent         = true;
            CanHandleSessionChangeEvent = true;
            CanPauseAndContinue         = true;
            CanShutdown = true;
            CanStop     = true;

            InitializeComponent();

            JLogger.LogInfo(this, "AgentServiceCommand() End");
        }
Esempio n. 18
0
        public void Start()
        {
            JLogger.LogInfo(this, "Start() In");

            //INIT REMOTE OPERATIONS
            _factHandlerClient = new SRMServerAccess();

            //Enroll Machine
            //JMachine.Id = _factHandlerClient.EnrollMachine(JMachine.GetMachine());

            //Get Configuration
            //_factHandlerClient.GetMachineConfiguration(_machine);

            //Start CommandService
            try
            {
                JLogger.LogDebug(this, "Se crea el service host con la direccion base.");
                var baseAddress = new Uri("http://localhost:8080/CommandService");
                _commandService = new ServiceHost(typeof(CommandService), baseAddress);

                JLogger.LogDebug(this, "Se configura para presentar el metadata.");
                var smb = new ServiceMetadataBehavior
                {
                    HttpGetEnabled   = true,
                    MetadataExporter = { PolicyVersion = PolicyVersion.Policy15 }
                };
                _commandService.Description.Behaviors.Add(smb);

                JLogger.LogDebug(this, "Se Abre la comunicacion.");
                _commandService.Open();
            }
            catch (Exception ex)
            {
                JLogger.LogError(this, "Error al crear el host.", ex);
            }

            //Start Watchers
            _watcherLoader = new WatcherLoader();
            _watcherLoader.StartWatchers();

            JLogger.LogInfo(this, "Stop() Out");
        }
Esempio n. 19
0
        public void Stop()
        {
            JLogger.LogInfo(this, "Stop() In");

            //STOP COMMANDSERVICE
            if (_commandService != null)
            {
                _commandService.Close();
                _commandService = null;
            }

            //STOP WATCHERS
            if (_watcherLoader != null)
            {
                _watcherLoader.StopWatchers();
                _watcherLoader = null;
            }

            JLogger.LogInfo(this, "Stop() Out");
        }
Esempio n. 20
0
        public AgentServiceWatcher()
        {
            JLogger.LogInfo(this, "AgentServiceWatcher() Start");
            _wl = new WatcherLoader();

            ServiceName  = "SRMAgentServiceWatcher";
            EventLog.Log = "Application";

            // These Flags set whether or not to handle that specific
            //  type of event. Set to true if you need it, false otherwise.
            CanHandlePowerEvent         = true;
            CanHandleSessionChangeEvent = true;
            CanPauseAndContinue         = true;
            CanShutdown = true;
            CanStop     = true;

            InitializeComponent();

            JLogger.LogInfo(this, "AgentServiceWatcher() End");
        }
Esempio n. 21
0
        private void SaveFactToLog(string message)
        {
            JLogger.LogInfo(this, "SaveFactToLog()");

            var sbFactMessage = new StringBuilder();

            sbFactMessage.AppendFormat("{0}-{1}{2}",
                                       DateTime.Now.ToString("yyyyMMddHHmmssff", CultureInfo.InvariantCulture), message, Environment.NewLine);

            JLogger.LogDebug(this, "Opening {0} file to write", _savedFactFileName);
            lock (_objectLock)
            {
                using (var factFile = File.Open(SRMAgentPaths.SRMData + _savedFactFileName, FileMode.Append, FileAccess.Write)
                       )
                {
                    JLogger.LogDebug(this, "Writing to file", _savedFactFileName);
                    factFile.Write(Encoding.ASCII.GetBytes(sbFactMessage.ToString()), 0, sbFactMessage.Length);
                }
            }
        }
Esempio n. 22
0
        private ICommand GetCommand(string id, string command)
        {
            JLogger.LogInfo(this, "getCommand(): id:{0} command:{1}", id, command);

            var assembly = Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory + @"..\commands\" + id + ".dll");

            JLogger.LogDebug("assembly:{0}", assembly);

            try
            {
                var ptrAssembly = Assembly.LoadFile(assembly);
                //foreach (var item in ptrAssembly.GetTypes())
                //{
                //    if (!item.IsClass) continue;
                //    if (item.GetInterfaces().Contains(typeof (ICommand)))
                //    {
                //        if (((ICommand) Activator.CreateInstance(item)).GetCommandName().ToUpperInvariant() ==
                //            command.ToUpperInvariant())
                //        {
                //            return (ICommand) Activator.CreateInstance(item);
                //        }
                //    }
                //}
                foreach (var item in from item in ptrAssembly.GetTypes()
                         where item.IsClass
                         where item.GetInterfaces().Contains(typeof(ICommand))
                         where string.Equals(((ICommand)Activator.CreateInstance(item)).GetCommandName(), command, StringComparison.InvariantCultureIgnoreCase)
                         select item)
                {
                    return((ICommand)Activator.CreateInstance(item));
                }
            }
            catch (Exception ex)
            {
                JLogger.LogError(this, "Error trying to LoadAssembly:{0}", ex.Message);
            }

            return(null);
        }
Esempio n. 23
0
        public void Stop()
        {
            JLogger.LogInfo(this, "Stop()");

            _cts?.Cancel();
        }
Esempio n. 24
0
 public WatcherLoader()
 {
     JLogger.LogInfo(this, "Class SRMWatcherLoader()");
     _watchers = new List <IFactWatcher>();
     LoadWatchers();
 }
Esempio n. 25
0
        public void Start()
        {
            JLogger.LogInfo(this, "Start()");

            //GET BASE CONFIGURATION
            string[] savedEventLogsName = Config.GetValueByKey("EVENT_LOGS")?.Split(',');
            int      savedLastEntryIndex; //Latest index value processed and saved

            int.TryParse(Persistence.GetValueByKey("LAST_ENTRY_INDEX"), out savedLastEntryIndex);
            var lastEntryIndex = 0; //Latest index value from actual event logs

            DateTime lastEntryDatetime = new DateTime();
            DateTime savedLastEntryDatetime;

            DateTime.TryParse(Persistence.GetValueByKey("LAST_ENTRY_DATETIME"), out savedLastEntryDatetime);

            //CREATE EVENT LOG LIST
            _eventLogs = new List <EventLog>();

            //VALIDATE AND ENABLE EVENT CATCH
            if (savedEventLogsName != null)
            {
                foreach (var eventLogName in savedEventLogsName)
                {
                    JLogger.LogDebug(this, "Checking if EventLog {0} has registry configuration", eventLogName);
                    //CHECK FOR LOGFILE
                    var regEventLog =
                        Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\EventLog\\" + eventLogName);
                    if (regEventLog != null)
                    {
                        JLogger.LogDebug(this, "EventLog {0} has registry configuration", eventLogName);
                        var temp = regEventLog.GetValue("File");
                        if (temp != null)
                        {
                            JLogger.LogDebug(this, "EventLog {0} has EventLog file created", eventLogName);

                            //CREATING AN EVENTLOG OBJECT FROM THE VALIDATED STRING
                            JLogger.LogDebug(this, "Creating EventLog object for {0}", eventLogName);
                            var eventLog = new EventLog(eventLogName);
                            _eventLogs.Add(eventLog);

                            //ATTACH EVENT
                            JLogger.LogDebug(this, "Attaching event handler to EventLog {0}", eventLogName);
                            eventLog.EntryWritten       += OnEntryWritten;
                            eventLog.EnableRaisingEvents = true;

                            //GETTING THE LAST ENTRY FROM THE EVENTLOG
                            JLogger.LogDebug(this, "Getting the last entry from the EventLog {0}", eventLogName);
                            var lastEntry =
                                (from EventLogEntry ent in eventLog.Entries orderby ent.TimeGenerated select ent)
                                .LastOrDefault();
                            if (lastEntry != null && lastEntry.Index > lastEntryIndex)
                            {
                                JLogger.LogDebug(this, "EventLog {0} last entry was {1}", eventLogName, lastEntry.Message);
                                lastEntryIndex = lastEntry.Index;
                            }

                            if (lastEntry != null && lastEntry.TimeGenerated >= lastEntryDatetime)
                            {
                                lastEntryDatetime = lastEntry.TimeGenerated;
                            }
                        }
                        else
                        {
                            //NO FILE ASSIGNED FOR THE EVENTLOG
                            JLogger.LogError(this, "EventLog {0} has not file assigned", eventLogName);
                        }
                    }
                    else
                    {
                        //NO REGISTRY KEY CREATED FOR THE EVENTLOG
                        JLogger.LogError(this, "EventLog {0} has not registry key created", eventLogName);
                    }
                }
            }

            //PROCESS ALL EVENTS
            JLogger.LogDebug(this, "Processing events in chequed EventLogs");
            foreach (var eventLog in _eventLogs)
            {
                JLogger.LogDebug(this, "Processing events in EventLog {0}", eventLog.LogDisplayName);
                var filteredEventEntrys = (from EventLogEntry ent
                                           in
                                           eventLog.Entries.Cast <EventLogEntry>()
                                           .Where(x => x.TimeGenerated <= lastEntryDatetime && x.TimeGenerated >= savedLastEntryDatetime)
                                           orderby ent.TimeGenerated
                                           select ent);
                //var filteredEventEntrys = (from EventLogEntry ent
                //           in eventLog.Entries.Cast<EventLogEntry>().Where(x => x.Index <= lastEntryIndex && x.Index > savedLastEntryIndex)
                //                           orderby ent.Index
                //                           select ent);

                JLogger.LogDebug(this, "eventslog:{0} FILTERED:{1} TOTAL:{2}",
                                 eventLog.LogDisplayName, filteredEventEntrys.Count(), eventLog.Entries.Count);
                foreach (var filteredEventEntry in filteredEventEntrys)
                {
                    JLogger.LogDebug(this, "Start() Processing entry: {0}", filteredEventEntry.Index);
                    var fieldSeparator = (char)28;
                    var sbFactMessage  = new StringBuilder();
                    sbFactMessage.AppendFormat("{0}{1}{2}{3}{4}{5}{6}{7}{8}",
                                               eventLog.LogDisplayName, fieldSeparator,
                                               filteredEventEntry.Index, fieldSeparator,
                                               filteredEventEntry.Source, fieldSeparator,
                                               filteredEventEntry.TimeGenerated, fieldSeparator,
                                               filteredEventEntry.Message);

                    //FIRE NEW EVENT
                    JLogger.LogDebug(this, "Start() Firing Event: {0}", sbFactMessage.ToString());
                    OnNewFact?.Invoke(this,
                                      new FactWatcherEventArgs(GetFactWatcherName(), filteredEventEntry.TimeGenerated,
                                                               sbFactMessage.ToString()));

                    //SAVE LOG FACTS
                    JLogger.LogDebug(this, "Validate if is configured fact file");
                    if (!string.IsNullOrEmpty(_savedFactFileName))
                    {
                        SaveFactToLog(sbFactMessage.ToString());
                    }

                    //STORE THE LATEST INDEX PROCESSED
                    Persistence.SetValueByKey("LAST_ENTRY_INDEX", filteredEventEntry.Index.ToString());
                    Persistence.SetValueByKey("LAST_ENTRY_DATETIME", filteredEventEntry.TimeGenerated.ToString(CultureInfo.InvariantCulture));
                    //Config.Save();
                }
            }
        }
Esempio n. 26
0
        // ----------------------------------------------------------------
        // THIS COMMAND LIST ALL THE AVAILABLE DRIVES IN THE MACHINE
        // ----------------------------------------------------------------
        public ICommandResponse[] RunCommand(ICommandRequest request)
        {
            JLogger.LogInfo(this, "runCommand:{0}", request.ToString());

            ICommandResponse[] cmdResp;
            var driveInfoList = new List <JDriveInfo>();

            try
            {
                //foreach (var di in DriveInfo.GetDrives())
                //{
                //    if (!di.IsReady)
                //    {
                //        continue;
                //    }

                //    //NO_REMOVABLE_DRIVES - DON'T RETURN REMOVABLE DRIVES
                //    if (di.DriveType != DriveType.Fixed && request.GetParams().Contains("NO_REMOVABLE_DRIVES"))
                //    {
                //        continue;
                //    }

                //    //NO_EMPTY_DRIVES - DON'T RETURN EMPTY DRIVES
                //    if (di.TotalSize == 0 && request.GetParams().Contains("NO_EMPTY_DRIVES"))
                //    {
                //        continue;
                //    }
                //    var data = new JDriveInfo
                //    {
                //        DEVICEID = di.Name,
                //        FREESPACE = di.TotalFreeSpace.ToString(),
                //        TOTALSIZE = di.TotalSize.ToString(),
                //        USEDSPACE = (di.TotalSize - di.TotalFreeSpace).ToString()
                //    };
                //    driveInfoList.Add(data);
                //}

                driveInfoList.AddRange(from di in DriveInfo.GetDrives()
                                       where di.IsReady
                                       where di.DriveType == DriveType.Fixed || !request.GetParams().Contains(NoRemovableDrives)
                                       where di.TotalSize != 0 || !request.GetParams().Contains(NoEmptyDrives)
                                       select new JDriveInfo
                {
                    DEVICEID = di.Name, FREESPACE = di.TotalFreeSpace.ToString(), TOTALSIZE = di.TotalSize.ToString(), USEDSPACE = (di.TotalSize - di.TotalFreeSpace).ToString()
                });

                var respData = JsonConvert.SerializeObject(driveInfoList.ToArray());
                cmdResp = new ICommandResponse[]
                {
                    new CommandResponse(CommandResponseCodes.OkCommandSuccess[0],
                                        respData)
                };
            }
            catch (Exception ex)
            {
                cmdResp = new ICommandResponse[]
                {
                    new CommandResponse(CommandResponseCodes.ErrorExceptionFound[0],
                                        CommandResponseCodes.ErrorExceptionFound[1] + ex.Message)
                };
            }

            JLogger.LogInfo(this, "runCommand Response:{0}", cmdResp.ToString());

            return(cmdResp);
        }
Esempio n. 27
0
 protected override void OnSessionChange(SessionChangeDescription changeDescription)
 {
     JLogger.LogInfo(this, "OnSessionChange() Start");
     base.OnSessionChange(changeDescription);
     JLogger.LogInfo(this, "OnSessionChange() End");
 }
Esempio n. 28
0
 protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
 {
     JLogger.LogInfo(this, "OnPowerEvent() Start");
     return(base.OnPowerEvent(powerStatus));
     //JLogger.LogInfo(this, "OnPowerEvent() End");
 }
Esempio n. 29
0
 protected override void OnShutdown()
 {
     JLogger.LogInfo(this, "OnShutdown() Start");
     base.OnShutdown();
     JLogger.LogInfo(this, "OnShutdown() End");
 }
Esempio n. 30
0
 protected override void OnContinue()
 {
     JLogger.LogInfo(this, "OnContinue() Start");
     base.OnContinue();
     JLogger.LogInfo(this, "OnContinue() End");
 }