2 Commits

24 changed files with 18 additions and 133 deletions
View File
View File
+18 -18
View File
@@ -126,7 +126,7 @@ namespace ResourceMonitorService
var requestBody = await new StreamReader(context.Request.Body).ReadToEndAsync(); var requestBody = await new StreamReader(context.Request.Body).ReadToEndAsync();
var parameters = JsonConvert.DeserializeObject<dynamic>(requestBody); var parameters = JsonConvert.DeserializeObject<dynamic>(requestBody);
string action = parameters?.Action?.ToString()?.ToLower(); // "shutdown" or "restart" string? action = parameters?.Action?.ToString()?.ToLower(); // "shutdown" or "restart"
int delaySeconds = parameters?.DelaySeconds ?? 0; int delaySeconds = parameters?.DelaySeconds ?? 0;
// Validate action input // Validate action input
@@ -248,32 +248,32 @@ namespace ResourceMonitorService
} }
}) })
.Where(p => p != null) .Where(p => p != null)
.OrderByDescending(p => p.TotalProcessorTime) .OrderByDescending(p => p!.TotalProcessorTime)
.Select(p => p.Process) .Select(p => p!.Process)
.ToList(); .ToList();
// Create a new anonymous type containing the CPU usage, RAM usage, and the top 3 highest CPU-using processes // Create a new anonymous type containing the CPU usage, RAM usage, and the top 3 highest CPU-using processes
return new return new
{ {
Usage = usage, Usage = usage,
Process1 = new Process1 = processes.Count > 0 ? new
{ {
Name = processes.ElementAt(0).ProcessName, Name = processes[0].ProcessName,
TotalProcessorTime = processes.ElementAt(0).TotalProcessorTime, TotalProcessorTime = processes[0].TotalProcessorTime,
WorkingSet64 = processes.ElementAt(0).WorkingSet64 / (1024 * 1024) // Convert to MB WorkingSet64 = processes[0].WorkingSet64 / (1024 * 1024) // Convert to MB
}, } : null,
Process2 = new Process2 = processes.Count > 1 ? new
{ {
Name = processes.ElementAt(1).ProcessName, Name = processes[1].ProcessName,
TotalProcessorTime = processes.ElementAt(1).TotalProcessorTime, TotalProcessorTime = processes[1].TotalProcessorTime,
WorkingSet64 = processes.ElementAt(1).WorkingSet64 / (1024 * 1024) // Convert to MB WorkingSet64 = processes[1].WorkingSet64 / (1024 * 1024) // Convert to MB
}, } : null,
Process3 = new Process3 = processes.Count > 2 ? new
{ {
Name = processes.ElementAt(2).ProcessName, Name = processes[2].ProcessName,
TotalProcessorTime = processes.ElementAt(2).TotalProcessorTime, TotalProcessorTime = processes[2].TotalProcessorTime,
WorkingSet64 = processes.ElementAt(2).WorkingSet64 / (1024 * 1024) // Convert to MB WorkingSet64 = processes[2].WorkingSet64 / (1024 * 1024) // Convert to MB
} } : null
}; };
} }
-9
View File
@@ -1,9 +0,0 @@
import dynamic from 'next/dynamic';
const components = {
// other components
resourceUsage: dynamic(() => import('./resourceUsage/component')),
yourwidget: dynamic(() => import("./yourwidget/component"))
};
export default components;
-9
View File
@@ -1,9 +0,0 @@
import resourceUsage from "./resourceUsage/widget";
import yourwidget from "./yourwidget/widget";
const widgets = {
// other widgets
resourceUsage: resourceUsage,
yourwidget: yourwidget
};
export default widgets;
-37
View File
@@ -1,37 +0,0 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data, error } = useWidgetAPI(widget, "info");
if (error) {
return <Container service={service} error={error} />;
}
if (!data) {
return (
<Container service={service}>
<Block label="Loading..." />
</Container>
);
}
return (
<Container service={service}>
<Block label="Machine Name" value={data.ComputerInfo.MachineName} />
<Block label="OS Version" value={data.ComputerInfo.OSVersion} />
<Block label="OS Architecture" value={data.ComputerInfo.OSArchitecture} />
<Block label="Processor Count" value={data.ComputerInfo.ProcessorCount} />
<Block label="CPU Usage" value={data.CPU} />
<Block label="RAM Usage" value={data.RAM} />
<Block label="GPU Usage" value={data.GPU.Usage} />
<Block label="GPU Temperature" value={data.GPU.Temperature} />
<Block label="GPU Fan Speed" value={data.GPU.FanSpeed} />
<Block label="Currently Running Game" value={data.CurrentlyRunningGame} />
</Container>
);
}
-13
View File
@@ -1,13 +0,0 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "http://192.168.50.201:5000/api/resource-usage",
proxyHandler: genericProxyHandler,
mappings: {
info: {
endpoint: ""
}
}
};
export default widget;
-33
View File
@@ -1,33 +0,0 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data, error } = useWidgetAPI(widget, "info");
if (error) {
return <Container service={service} error={error} />;
}
if (!data) {
return (
<Container service={service}>
<Block label="yourwidget.key1" />
<Block label="yourwidget.key2" />
<Block label="yourwidget.key3" />
</Container>
);
}
return (
<Container service={service}>
<Block label="yourwidget.key1" value={t("common.number", { value: data.key1 })} />
<Block label="yourwidget.key2" value={t("common.number", { value: data.key2 })} />
<Block label="yourwidget.key3" value={t("common.number", { value: data.key3 })} />
</Container>
);
}
-14
View File
@@ -1,14 +0,0 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/{endpoint}" ,
proxyHandler: genericProxyHandler ,
mappings: {
info: {
endpoint: "v1/info" ,
},
},
};
export default widget;