public HttpResponseMessage process([FromBody] MonRequest monRequest) { object monResponse = processor.Invoke(monRequest); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK); return(response); }
public object Invoke(MonRequest request) { #region ##Definitions /* * Method: WMI * Path: root\WMI * Query: MSAcpi_ThermalZoneTemperature; CurrentTemperature, ThermalStamp */ //ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature"); //foreach (ManagementObject obj in searcher.Get()) //{ // Double temp = Convert.ToDouble(obj["CurrentTemperature"].ToString()); // UInt32 thermalStamp = Convert.ToUInt32(obj["ThermalStamp"].ToString()); // Console.WriteLine(temp); // Console.WriteLine(thermalStamp); //} //------------------------------------------------------ //var res = Wmi(@"root\WMI", "MSAcpi_ThermalZoneTemperature", "CurrentTemperature", "ThermalStamp"); /* * Method: REG * Path: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CMF\Config * Query: SYSTEM */ //object regVal = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CMF\Config", "SYSTEM", null); //------------------------------------------------------ //var res = Reg(@"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CMF\Config", "SYSTEM"); /* * Method: SVC * Path: lfscv * Query: Status */ //ServiceController controller = new ServiceController("lfsvc"); //PropertyInfo val = typeof(ServiceController).GetProperty("Status"); //Console.WriteLine($"{val.Name}: {val.GetValue(controller)}"); //------------------------------------------------------ //var res = Svc("lfsvc", "Status"); /* * Method: PRC * Path: postgres * Query: Id */ //Process prc = Process.GetProcessesByName("postgres").FirstOrDefault(); //PropertyInfo pi = typeof(Process).GetProperty("Id"); //Console.WriteLine($"{prc.ProcessName}: {pi.Name}: {pi.GetValue(prc)}"); //------------------------------------------------------ //var res = Prc("postgres", "Id"); /* * Method: CMD * Path: netstat * Query: -t */ //Process prc = new Process(); //ProcessStartInfo psi = new ProcessStartInfo("netstat", ""); //psi.RedirectStandardOutput = true; //psi.UseShellExecute = false; //prc.StartInfo = psi; //prc.Start(); //prc.WaitForExit(); //Console.WriteLine($"Output:\n{prc.StandardOutput.ReadToEnd()}"); //------------------------------------------------------ //var res = Cmd("netstat", ""); #endregion try { switch (request.Method) { case "WMI": string[] wmiSplit = request.Query.Split(';'); return(Wmi(request.Path, wmiSplit[0].Trim(), wmiSplit[1].Split(',').Select(s => s.Trim()).ToArray())); case "REG": return(Reg(request.Path, request.Query)); case "SVC": return(Svc(request.Path, request.Query.Split(',').Select(s => s.Trim()).ToArray())); case "PRC": return(Prc(request.Path, request.Query.Split(',').Select(s => s.Trim()).ToArray())); case "CMD": return(Cmd(request.Path, request.Query)); default: return(null); } } catch (Exception e) { return(e); } }