Upload project.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public abstract class ActionHandler
|
||||
{
|
||||
|
||||
protected readonly Action action;
|
||||
protected readonly WebSocketConnection webSocketConnection;
|
||||
protected readonly IServiceProvider serviceProvider;
|
||||
|
||||
public ActionHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider)
|
||||
{
|
||||
this.action = action;
|
||||
this.webSocketConnection = webSocketConnection;
|
||||
this.serviceProvider = serviceProvider;
|
||||
}
|
||||
|
||||
public abstract void HandleAction();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class AuthenticationHandler : ActionHandler
|
||||
{
|
||||
|
||||
// Delay between each command run after authentication
|
||||
private static readonly int delayBetweenAction = 100;
|
||||
|
||||
// Commands run after authentication
|
||||
private static readonly string[] actions = {
|
||||
"staticsystem",
|
||||
"staticcpu",
|
||||
"staticram",
|
||||
"staticgpu",
|
||||
"staticstorage",
|
||||
"staticmotherboard",
|
||||
"staticbios",
|
||||
"staticos"
|
||||
};
|
||||
|
||||
public AuthenticationHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override async void HandleAction()
|
||||
{
|
||||
webSocketConnection.Authentication = true;
|
||||
WebSocketManager websocketManager = serviceProvider.GetService<WebSocketManager>();
|
||||
websocketManager.AddSocket(webSocketConnection.Id, webSocketConnection);
|
||||
foreach (string action in actions)
|
||||
{
|
||||
await webSocketConnection.SendAction(action);
|
||||
Thread.Sleep(delayBetweenAction);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class DefaultHandler : ActionHandler
|
||||
{
|
||||
|
||||
public DefaultHandler(Action action, WebSocketConnection webSocket, IServiceProvider serviceProvider) : base(action, webSocket, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override async void HandleAction()
|
||||
{
|
||||
JObject properties = new JObject
|
||||
{
|
||||
{ "message", "Invalid Action Sent (" + action.action + ")" }
|
||||
};
|
||||
await webSocketConnection.SendAction("error", properties);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class StaticBIOSHandler : ActionHandler
|
||||
{
|
||||
|
||||
public StaticBIOSHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
|
||||
string manufacturerFromJSON = (string) action.properties.SelectToken("manufacturer");
|
||||
string captionFromJSON = (string)action.properties.SelectToken("caption");
|
||||
string versionFromJSON = (string) action.properties.SelectToken("version");
|
||||
string dateFromJSON = (string) action.properties.SelectToken("date");
|
||||
|
||||
Manufacturer manufacturer = context.Manufacturers.Where(m => m.Name == manufacturerFromJSON).FirstOrDefault();
|
||||
if (manufacturer == null && manufacturerFromJSON != null)
|
||||
{
|
||||
manufacturer = new Manufacturer
|
||||
{
|
||||
Name = manufacturerFromJSON
|
||||
};
|
||||
context.Add(manufacturer);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? manufacturerId = (manufacturer != null ? manufacturer.Id : (Guid?) null);
|
||||
var biosModel = context.BIOSModels.FirstOrDefault(m => m.ManufacturerId.Equals(manufacturer));
|
||||
if (biosModel == null)
|
||||
{
|
||||
biosModel = new BIOSModel
|
||||
{
|
||||
ManufacturerId = manufacturerId
|
||||
};
|
||||
context.Add(biosModel);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
var systemBIOS = context.SystemBIOSs.FirstOrDefault(m => m.SystemId.Equals(systemUUID));
|
||||
if (systemBIOS == null)
|
||||
{
|
||||
systemBIOS = new SystemBIOS
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
BIOSModelId = biosModel.Id,
|
||||
Caption = captionFromJSON,
|
||||
Version = versionFromJSON,
|
||||
Date = dateFromJSON,
|
||||
LastUpdated = DateTime.Now
|
||||
};
|
||||
context.Add(systemBIOS);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!systemBIOS.BIOSModelId.Equals(biosModel.Id))
|
||||
{
|
||||
context.Remove(systemBIOS);
|
||||
systemBIOS = new SystemBIOS
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
BIOSModelId = biosModel.Id,
|
||||
Caption = captionFromJSON,
|
||||
Version = versionFromJSON,
|
||||
Date = dateFromJSON,
|
||||
LastUpdated = DateTime.Now
|
||||
};
|
||||
context.Add(systemBIOS);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
systemBIOS.Caption = captionFromJSON;
|
||||
systemBIOS.Version = versionFromJSON;
|
||||
systemBIOS.Date = dateFromJSON;
|
||||
systemBIOS.LastUpdated = DateTime.Now;
|
||||
context.Update(systemBIOS);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class StaticCPUHandler : ActionHandler
|
||||
{
|
||||
|
||||
public StaticCPUHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
DateTime lastUpdated = DateTime.Now;
|
||||
int slot = 0;
|
||||
|
||||
string modelFromJSON = (string) action.properties.SelectToken("model");
|
||||
string manufacturerFromJSON = (string) action.properties.SelectToken("manufacturer");
|
||||
string architectureFromJSON = (string) action.properties.SelectToken("architecture");
|
||||
int clockspeedFromJSON = (int) action.properties.SelectToken("clockspeed");
|
||||
int corecountFromJSON = (int) action.properties.SelectToken("corecount");
|
||||
int threadcountFromJSON = (int) action.properties.SelectToken("threadcount");
|
||||
|
||||
Manufacturer manufacturer = context.Manufacturers.Where(m => m.Name == manufacturerFromJSON).FirstOrDefault();
|
||||
if (manufacturer == null && manufacturerFromJSON != null)
|
||||
{
|
||||
manufacturer = new Manufacturer
|
||||
{
|
||||
Name = manufacturerFromJSON
|
||||
};
|
||||
context.Add(manufacturer);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? manufacturerId = (manufacturer != null ? manufacturer.Id : (Guid?) null);
|
||||
Model model = context.Models.FirstOrDefault(m => m.Name.Equals(modelFromJSON) && m.ManufacturerId.Equals(manufacturerId));
|
||||
if ((model == null) && ((modelFromJSON != null && manufacturer == null) || (modelFromJSON != null || manufacturer != null)))
|
||||
{
|
||||
model = new Model
|
||||
{
|
||||
Name = modelFromJSON
|
||||
};
|
||||
if (manufacturer != null)
|
||||
{
|
||||
model.ManufacturerId = manufacturer.Id;
|
||||
}
|
||||
context.Add(model);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
var architecture = context.Architectures.FirstOrDefault(m => m.Name.Equals(architectureFromJSON));
|
||||
if (architecture == null && architectureFromJSON != null)
|
||||
{
|
||||
architecture = new Architecture
|
||||
{
|
||||
Name = architectureFromJSON
|
||||
};
|
||||
context.Add(architecture);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? modelId = (model != null ? model.Id : (Guid?) null);
|
||||
Guid? architectureId = (architecture != null ? architecture.Id : (Guid?) null);
|
||||
var cpuModel = context.CPUModels.FirstOrDefault(m => m.ModelId.Equals(modelId) && m.ArchitectureId.Equals(architectureId));
|
||||
if (cpuModel == null)
|
||||
{
|
||||
cpuModel = new CPUModel
|
||||
{
|
||||
ModelId = modelId,
|
||||
ArchitectureId = architectureId
|
||||
};
|
||||
context.Add(cpuModel);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
var systemCPU = context.SystemCPUs.Where(m => m.SystemId.Equals(systemUUID) && m.Slot.Equals(slot)).FirstOrDefault();
|
||||
if (systemCPU == null)
|
||||
{
|
||||
systemCPU = new SystemCPU
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
CPUModelID = cpuModel.Id,
|
||||
ClockSpeed = clockspeedFromJSON,
|
||||
CoreCount = corecountFromJSON,
|
||||
ThreadCount = threadcountFromJSON,
|
||||
LastUpdated = lastUpdated
|
||||
};
|
||||
context.Add(systemCPU);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!systemCPU.CPUModelID.Equals(cpuModel.Id))
|
||||
{
|
||||
context.Remove(systemCPU);
|
||||
systemCPU = new SystemCPU
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
CPUModelID = cpuModel.Id,
|
||||
ClockSpeed = clockspeedFromJSON,
|
||||
CoreCount = corecountFromJSON,
|
||||
ThreadCount = threadcountFromJSON,
|
||||
LastUpdated = lastUpdated
|
||||
};
|
||||
context.Add(systemCPU);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
systemCPU.ClockSpeed = clockspeedFromJSON;
|
||||
systemCPU.CoreCount = corecountFromJSON;
|
||||
systemCPU.ThreadCount = threadcountFromJSON;
|
||||
systemCPU.LastUpdated = lastUpdated;
|
||||
context.Update(systemCPU);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
//slot++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using Syski.WebSocket.Services.WebSockets.Actions.Handlers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class StaticGPUHandler : ActionHandler
|
||||
{
|
||||
|
||||
public StaticGPUHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
DateTime lastUpdated = DateTime.Now;
|
||||
int slot = 0;
|
||||
|
||||
string modelFromJSON = (string) action.properties.SelectToken("model");
|
||||
string manufacturerFromJSON = (string) action.properties.SelectToken("manufacturer");
|
||||
|
||||
Manufacturer manufacturer = context.Manufacturers.Where(m => m.Name == manufacturerFromJSON).FirstOrDefault();
|
||||
if (manufacturer == null && manufacturerFromJSON != null)
|
||||
{
|
||||
manufacturer = new Manufacturer
|
||||
{
|
||||
Name = manufacturerFromJSON
|
||||
};
|
||||
context.Add(manufacturer);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? manufacturerId = (manufacturer != null ? manufacturer.Id : (Guid?)null);
|
||||
Model model = context.Models.FirstOrDefault(m => m.Name.Equals(modelFromJSON) && m.ManufacturerId.Equals(manufacturerId));
|
||||
if ((model == null) && ((modelFromJSON != null && manufacturer == null) || (modelFromJSON != null || manufacturer != null)))
|
||||
{
|
||||
model = new Model
|
||||
{
|
||||
Name = modelFromJSON
|
||||
};
|
||||
if (manufacturer != null)
|
||||
{
|
||||
model.ManufacturerId = manufacturer.Id;
|
||||
}
|
||||
context.Add(model);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? modelId = (model != null ? model.Id : (Guid?)null);
|
||||
var gpuModel = context.GPUModels.FirstOrDefault(m => m.ModelId.Equals(modelId));
|
||||
if (gpuModel == null)
|
||||
{
|
||||
gpuModel = new GPUModel
|
||||
{
|
||||
ModelId = modelId,
|
||||
};
|
||||
context.Add(gpuModel);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
var systemGPU = context.SystemGPUs.Where(m => m.SystemId.Equals(systemUUID) && m.Slot.Equals(slot)).FirstOrDefault();
|
||||
if (systemGPU == null)
|
||||
{
|
||||
systemGPU = new SystemGPU
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
GPUModelId = gpuModel.Id,
|
||||
Slot = slot,
|
||||
LastUpdated = lastUpdated
|
||||
};
|
||||
context.Add(systemGPU);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!systemGPU.GPUModelId.Equals(gpuModel.Id))
|
||||
{
|
||||
context.Remove(systemGPU);
|
||||
systemGPU = new SystemGPU
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
GPUModelId = gpuModel.Id,
|
||||
Slot = slot,
|
||||
LastUpdated = lastUpdated
|
||||
};
|
||||
context.Add(systemGPU);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
systemGPU.LastUpdated = lastUpdated;
|
||||
context.Update(systemGPU);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
//slot++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class StaticMotherboardHandler : ActionHandler
|
||||
{
|
||||
|
||||
public StaticMotherboardHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
|
||||
string modelFromJSON = (string) action.properties.SelectToken("model");
|
||||
string manufacturerFromJSON = (string) action.properties.SelectToken("manufacturer");
|
||||
string versionFromJSON = (string) action.properties.SelectToken("version");
|
||||
|
||||
Manufacturer manufacturer = context.Manufacturers.Where(m => m.Name == manufacturerFromJSON).FirstOrDefault();
|
||||
if (manufacturer == null && manufacturerFromJSON != null)
|
||||
{
|
||||
manufacturer = new Manufacturer
|
||||
{
|
||||
Name = manufacturerFromJSON
|
||||
};
|
||||
context.Add(manufacturer);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? manufacturerId = (manufacturer != null ? manufacturer.Id : (Guid?) null);
|
||||
Model model = context.Models.FirstOrDefault(m => m.Name.Equals(modelFromJSON) && m.ManufacturerId.Equals(manufacturerId));
|
||||
if ((model == null) && ((modelFromJSON != null && manufacturer == null) || (modelFromJSON != null || manufacturer != null)))
|
||||
{
|
||||
model = new Model
|
||||
{
|
||||
Name = modelFromJSON
|
||||
};
|
||||
if (manufacturer != null)
|
||||
{
|
||||
model.ManufacturerId = manufacturer.Id;
|
||||
}
|
||||
context.Add(model);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? modelId = (model != null ? model.Id : (Guid?) null);
|
||||
var motherboardModel = context.MotherboardModels.FirstOrDefault(m => m.ModelId.Equals(modelId) && m.Version.Equals(versionFromJSON));
|
||||
if (motherboardModel == null)
|
||||
{
|
||||
motherboardModel = new MotherboardModel
|
||||
{
|
||||
ModelId = modelId,
|
||||
Version = versionFromJSON
|
||||
};
|
||||
context.Add(motherboardModel);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
var systemMotherboard = context.SystemMotherboards.FirstOrDefault(m => m.SystemId.Equals(systemUUID));
|
||||
if (systemMotherboard == null)
|
||||
{
|
||||
systemMotherboard = new SystemMotherboard
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
MotherboardModelId = motherboardModel.Id,
|
||||
LastUpdated = DateTime.Now
|
||||
};
|
||||
context.Add(systemMotherboard);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!systemMotherboard.MotherboardModelId.Equals(motherboardModel.Id))
|
||||
{
|
||||
context.Remove(systemMotherboard);
|
||||
systemMotherboard = new SystemMotherboard
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
MotherboardModelId = motherboardModel.Id,
|
||||
LastUpdated = DateTime.Now
|
||||
};
|
||||
context.Add(systemMotherboard);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
systemMotherboard.LastUpdated = DateTime.Now;
|
||||
context.Update(systemMotherboard);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class StaticOperatingSystemHandler : ActionHandler
|
||||
{
|
||||
|
||||
public StaticOperatingSystemHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
|
||||
string osnameFromJSON = (string) action.properties.SelectToken("name");
|
||||
string architectureFromJSON = (string) action.properties.SelectToken("architecture");
|
||||
string versionFromJSON = (string) action.properties.SelectToken("version");
|
||||
|
||||
var osName = context.OperatingSystemModels.FirstOrDefault(m => m.Name == osnameFromJSON);
|
||||
if (osName == null)
|
||||
{
|
||||
osName = new Data.OperatingSystemModel()
|
||||
{
|
||||
Name = osnameFromJSON
|
||||
};
|
||||
context.Add(osName);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
var architecture = context.Architectures.Where(m => m.Name == architectureFromJSON).FirstOrDefault();
|
||||
if (architecture == null && architectureFromJSON != null)
|
||||
{
|
||||
architecture = new Architecture
|
||||
{
|
||||
Name = architectureFromJSON
|
||||
};
|
||||
context.Add(architecture);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? architectureId = (architecture != null ? architecture.Id : (Guid?)null);
|
||||
var systemOS = context.SystemOSs.FirstOrDefault(m => m.SystemId.Equals(systemUUID));
|
||||
if (systemOS == null)
|
||||
{
|
||||
systemOS = new SystemOS()
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
OperatingSystemId = osName.Id,
|
||||
ArchitectureId = architectureId,
|
||||
Version = versionFromJSON,
|
||||
LastUpdated = DateTime.Now
|
||||
};
|
||||
context.Add(systemOS);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!systemOS.OperatingSystemId.Equals(osName.Id))
|
||||
{
|
||||
context.Remove(systemOS);
|
||||
systemOS = new SystemOS()
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
OperatingSystemId = osName.Id,
|
||||
ArchitectureId = architectureId,
|
||||
Version = versionFromJSON,
|
||||
LastUpdated = DateTime.Now
|
||||
};
|
||||
context.Add(systemOS);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
systemOS.ArchitectureId = architectureId;
|
||||
systemOS.Version = versionFromJSON;
|
||||
systemOS.LastUpdated = DateTime.Now;
|
||||
context.Update(systemOS);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class StaticRAMHandler : ActionHandler
|
||||
{
|
||||
public StaticRAMHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
DateTime lastUpdated = DateTime.Now;
|
||||
int slot = 0;
|
||||
|
||||
JArray ramArray = (JArray) action.properties.SelectToken("ram");
|
||||
foreach (JToken ram in ramArray)
|
||||
{
|
||||
string modelFromJSON = (string) ram.SelectToken("model");
|
||||
string manufacturerFromJSON = (string) ram.SelectToken("manufacturer");
|
||||
string typeFromJSON = (string) ram.SelectToken("type");
|
||||
int speedFromJSON = (int) ram.SelectToken("speed");
|
||||
long sizeFromJSON = (long) ram.SelectToken("size");
|
||||
|
||||
Manufacturer manufacturer = context.Manufacturers.Where(m => m.Name == manufacturerFromJSON).FirstOrDefault();
|
||||
if (manufacturer == null && manufacturerFromJSON != null)
|
||||
{
|
||||
manufacturer = new Manufacturer
|
||||
{
|
||||
Name = manufacturerFromJSON
|
||||
};
|
||||
context.Add(manufacturer);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? manufacturerId = (manufacturer != null ? manufacturer.Id : (Guid?) null);
|
||||
Model model = context.Models.FirstOrDefault(m => m.Name.Equals(modelFromJSON) && m.ManufacturerId.Equals(manufacturerId));
|
||||
if ((model == null) && ((modelFromJSON != null && manufacturer == null) || (modelFromJSON != null || manufacturer != null)))
|
||||
{
|
||||
model = new Model
|
||||
{
|
||||
Name = modelFromJSON
|
||||
};
|
||||
if (manufacturer != null)
|
||||
{
|
||||
model.ManufacturerId = manufacturer.Id;
|
||||
}
|
||||
context.Add(model);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? modelId = (model != null ? model.Id : (Guid?) null);
|
||||
var ramModel = context.RAMModels.FirstOrDefault(m => m.ModelId.Equals(modelId) && m.Size.Equals(sizeFromJSON));
|
||||
if (ramModel == null)
|
||||
{
|
||||
ramModel = new RAMModel
|
||||
{
|
||||
ModelId = modelId,
|
||||
Size = sizeFromJSON
|
||||
};
|
||||
context.Add(ramModel);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
var systemRAM = context.SystemRAMs.Where(m => m.SystemId.Equals(systemUUID) && m.Slot.Equals(slot)).FirstOrDefault();
|
||||
if (systemRAM == null)
|
||||
{
|
||||
systemRAM = new SystemRAM
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
RAMModelId = ramModel.Id,
|
||||
Slot = slot,
|
||||
Speed = speedFromJSON,
|
||||
LastUpdated = lastUpdated
|
||||
};
|
||||
context.Add(systemRAM);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!systemRAM.RAMModelId.Equals(ramModel.Id))
|
||||
{
|
||||
context.Remove(systemRAM);
|
||||
systemRAM = new SystemRAM
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
RAMModelId = ramModel.Id,
|
||||
Slot = slot,
|
||||
Speed = speedFromJSON,
|
||||
LastUpdated = lastUpdated
|
||||
};
|
||||
context.Add(systemRAM);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
systemRAM.Speed = speedFromJSON;
|
||||
systemRAM.LastUpdated = lastUpdated;
|
||||
context.Update(systemRAM);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
slot++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class StaticStorageHandler : ActionHandler
|
||||
{
|
||||
|
||||
public StaticStorageHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
DateTime lastUpdated = DateTime.Now;
|
||||
int slot = 0;
|
||||
JArray storageArray = (JArray)action.properties.SelectToken("storage");
|
||||
|
||||
foreach (JToken storage in storageArray)
|
||||
{
|
||||
string modelFromJSON = (string) storage.SelectToken("model");
|
||||
string manufacturerFromJSON = (string) storage.SelectToken("manufacturer");
|
||||
string interfaceFromJSON = (string) storage.SelectToken("interface");
|
||||
long sizeFromJSON = (long) storage.SelectToken("size");
|
||||
|
||||
Manufacturer manufacturer = context.Manufacturers.Where(m => m.Name == manufacturerFromJSON).FirstOrDefault();
|
||||
if (manufacturer == null && manufacturerFromJSON != null)
|
||||
{
|
||||
manufacturer = new Manufacturer
|
||||
{
|
||||
Name = manufacturerFromJSON
|
||||
};
|
||||
context.Add(manufacturer);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? manufacturerId = (manufacturer != null ? manufacturer.Id : (Guid?) null);
|
||||
Model model = context.Models.FirstOrDefault(m => m.Name.Equals(modelFromJSON) && m.ManufacturerId.Equals(manufacturerId));
|
||||
if ((model == null) && ((modelFromJSON != null && manufacturer == null) || (modelFromJSON != null || manufacturer != null)))
|
||||
{
|
||||
model = new Model
|
||||
{
|
||||
Name = modelFromJSON
|
||||
};
|
||||
if (manufacturer != null)
|
||||
{
|
||||
model.ManufacturerId = manufacturer.Id;
|
||||
}
|
||||
context.Add(model);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? modelId = (model != null ? model.Id : (Guid?) null);
|
||||
var storageModel = context.StorageModels.FirstOrDefault(m => m.ModelId.Equals(modelId) && m.Size.Equals(sizeFromJSON));
|
||||
if (storageModel == null)
|
||||
{
|
||||
storageModel = new StorageModel
|
||||
{
|
||||
ModelId = modelId,
|
||||
Size = sizeFromJSON
|
||||
};
|
||||
context.Add(storageModel);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
var interfacetype = context.StorageInterfaceTypes.Where(t => t.Name == interfaceFromJSON).FirstOrDefault();
|
||||
if (interfacetype == null && interfaceFromJSON != null)
|
||||
{
|
||||
interfacetype = new StorageInterfaceType()
|
||||
{
|
||||
Name = interfaceFromJSON
|
||||
};
|
||||
context.Add(interfacetype);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? interfacetypeId = (interfacetype != null ? interfacetype.Id : (Guid?) null);
|
||||
var systemStorage = context.SystemStorages.Where(m => m.SystemId.Equals(systemUUID) && m.Slot.Equals(slot)).FirstOrDefault();
|
||||
if (systemStorage == null)
|
||||
{
|
||||
systemStorage = new SystemStorage
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
StorageModelId = storageModel.Id,
|
||||
Slot = slot,
|
||||
StorageInterfaceId = interfacetypeId,
|
||||
LastUpdated = lastUpdated
|
||||
};
|
||||
context.Add(systemStorage);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!systemStorage.StorageModelId.Equals(storageModel.Id))
|
||||
{
|
||||
context.Remove(systemStorage);
|
||||
systemStorage = new SystemStorage
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
StorageModelId = storageModel.Id,
|
||||
Slot = slot,
|
||||
StorageInterfaceId = interfacetypeId,
|
||||
LastUpdated = lastUpdated
|
||||
};
|
||||
context.Add(systemStorage);
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
systemStorage.StorageInterfaceId = interfacetypeId;
|
||||
systemStorage.LastUpdated = lastUpdated;
|
||||
context.Update(systemStorage);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
slot++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class StaticSystemHandler : ActionHandler
|
||||
{
|
||||
|
||||
public StaticSystemHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
|
||||
var system = context.Systems.Where(u => u.Id == systemUUID).FirstOrDefault();
|
||||
if (system != null)
|
||||
{
|
||||
string modelFromJSON = (string) action.properties.SelectToken("model");
|
||||
string manufacturerFromJSON = (string) action.properties.SelectToken("manufacturer");
|
||||
string typeFromJSON = (string) action.properties.SelectToken("type");
|
||||
string hostNameFromJSON = (string) action.properties.SelectToken("hostname");
|
||||
|
||||
Manufacturer manufacturer = context.Manufacturers.Where(m => m.Name == manufacturerFromJSON).FirstOrDefault();
|
||||
if (manufacturer == null && manufacturerFromJSON != null)
|
||||
{
|
||||
manufacturer = new Manufacturer
|
||||
{
|
||||
Name = manufacturerFromJSON
|
||||
};
|
||||
context.Add(manufacturer);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
Guid? manufacturerId = (manufacturer != null ? manufacturer.Id : (Guid?) null);
|
||||
Model model = context.Models.FirstOrDefault(m => m.Name.Equals(modelFromJSON) && m.ManufacturerId.Equals(manufacturerId));
|
||||
if ((model == null) && ((modelFromJSON != null && manufacturer == null) || (modelFromJSON != null || manufacturer != null)))
|
||||
{
|
||||
model = new Model
|
||||
{
|
||||
Name = modelFromJSON
|
||||
};
|
||||
if (manufacturer != null)
|
||||
{
|
||||
model.ManufacturerId = manufacturer.Id;
|
||||
}
|
||||
context.Add(model);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
List<SystemTypeName> systemTypeNameList = new List<SystemTypeName>();
|
||||
SystemTypeName systemTypeName = context.SystemTypeNames.FirstOrDefault(stn => stn.Name.Equals(typeFromJSON));
|
||||
if (systemTypeName == null && typeFromJSON != null)
|
||||
{
|
||||
systemTypeName = new SystemTypeName
|
||||
{
|
||||
Name = typeFromJSON
|
||||
};
|
||||
context.Add(systemTypeName);
|
||||
context.SaveChanges();
|
||||
systemTypeNameList.Add(systemTypeName);
|
||||
}
|
||||
else
|
||||
{
|
||||
systemTypeNameList.Add(systemTypeName);
|
||||
}
|
||||
|
||||
bool changed = false;
|
||||
List<SystemType> currentSystemTypes = context.SystemTypes.Where(st => st.SystemId.Equals(systemUUID)).ToList();
|
||||
List<SystemType> removeSystemTypes = currentSystemTypes.ToList();
|
||||
foreach (SystemTypeName stn in systemTypeNameList)
|
||||
{
|
||||
bool found = false;
|
||||
foreach(SystemType st in currentSystemTypes)
|
||||
{
|
||||
if (st.TypeId.Equals(stn.Id))
|
||||
{
|
||||
found = true;
|
||||
removeSystemTypes.Remove(st);
|
||||
}
|
||||
}
|
||||
|
||||
if (!found)
|
||||
{
|
||||
SystemType systemType = new SystemType
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
TypeId = stn.Id
|
||||
};
|
||||
context.Add(systemType);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if (changed)
|
||||
{
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
if (removeSystemTypes.Count > 0)
|
||||
{
|
||||
foreach (SystemType st in removeSystemTypes)
|
||||
{
|
||||
context.Remove(st);
|
||||
}
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
system.ModelId = (model != null ? model.Id : (Guid?) null);
|
||||
system.HostName = hostNameFromJSON;
|
||||
system.LastUpdated = DateTime.Now;
|
||||
context.Update(system);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class SystemAuthenticationHandler : AuthenticationHandler
|
||||
{
|
||||
|
||||
public SystemAuthenticationHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var system = context.Systems.FirstOrDefault(s => s.Id == Guid.Parse((string) action.properties.SelectToken("system")) && s.Secret == (string) action.properties.SelectToken("secret"));
|
||||
if (system != null)
|
||||
{
|
||||
WebSocketManager websocketManager = serviceProvider.GetService<WebSocketManager>();
|
||||
websocketManager.SetSystemLink(webSocketConnection.Id, Guid.Parse((string) action.properties.SelectToken("system")));
|
||||
base.HandleAction();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Syski.Data;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class UserAuthenticationHandler : AuthenticationHandler
|
||||
{
|
||||
|
||||
public UserAuthenticationHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override async void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var userManager = serviceScope.ServiceProvider.GetService<UserManager<ApplicationUser>>();
|
||||
ApplicationUser user = userManager.Users.SingleOrDefault(r => r.Email.Equals((string) action.properties.SelectToken("email")));
|
||||
if (user != null)
|
||||
{
|
||||
bool validPassword = await userManager.CheckPasswordAsync(user, (string) action.properties.SelectToken("password"));
|
||||
if (validPassword)
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var system = new Data.System
|
||||
{
|
||||
LastUpdated = DateTime.Now,
|
||||
Secret = Guid.NewGuid().ToString().Replace("-", "")
|
||||
};
|
||||
context.Add(system);
|
||||
context.SaveChanges();
|
||||
|
||||
var applicationUserSystems = new ApplicationUserSystems()
|
||||
{
|
||||
UserId = user.Id,
|
||||
SystemId = system.Id
|
||||
};
|
||||
context.Add(applicationUserSystems);
|
||||
context.SaveChanges();
|
||||
|
||||
await webSocketConnection.SendAction("authentication", new JObject { { "system", system.Id }, { "secret", system.Secret } });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class VariableCPUHandler : ActionHandler
|
||||
{
|
||||
|
||||
public VariableCPUHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
|
||||
double loadFromJSON = (double) action.properties.SelectToken("load");
|
||||
int processesFromJSON = (int) action.properties.SelectToken("processes");
|
||||
|
||||
var systemCPUData = new SystemCPUData()
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
CollectionDateTime = DateTime.Now,
|
||||
Load = loadFromJSON,
|
||||
Processes = processesFromJSON
|
||||
};
|
||||
context.Add(systemCPUData);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class VariablePingHandler : ActionHandler
|
||||
{
|
||||
|
||||
public VariablePingHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
|
||||
var pingData = context.SystemPingData.OrderByDescending(i => i.SendPingTime).FirstOrDefault(spd => spd.SystemId.Equals(systemUUID));
|
||||
pingData.CollectionDateTime = DateTime.Now;
|
||||
context.Update(pingData);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class VariableRAMHandler : ActionHandler
|
||||
{
|
||||
|
||||
public VariableRAMHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
|
||||
int freeFromJSON = (int) action.properties.SelectToken("free");
|
||||
|
||||
var systemRAMData = new SystemRAMData()
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
CollectionDateTime = DateTime.Now,
|
||||
Free = freeFromJSON,
|
||||
};
|
||||
context.Add(systemRAMData);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class VariableRunningProcessesHandler : ActionHandler
|
||||
{
|
||||
|
||||
public VariableRunningProcessesHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
DateTime lastUpdated = DateTime.Now;
|
||||
JArray processesArray = (JArray) action.properties.SelectToken("processes");
|
||||
|
||||
foreach (JToken process in processesArray)
|
||||
{
|
||||
int idFromJSON = (int) process.SelectToken("id");
|
||||
string nameFromJSON = (string) process.SelectToken("name");
|
||||
long memsizetimeFromJSON = (long) process.SelectToken("memsize");
|
||||
long kerneltimeFromJSON = (long) process.SelectToken("kerneltime");
|
||||
string pathFromJSON = (string) process.SelectToken("path");
|
||||
int threadsFromJSON = (int) process.SelectToken("threads");
|
||||
long uptimeFromJSON = (long) process.SelectToken("uptime");
|
||||
int parentidFromJSON = (int) process.SelectToken("parentid");
|
||||
|
||||
var systemProcess = new SystemRunningProcesses()
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
Id = idFromJSON,
|
||||
Name = nameFromJSON,
|
||||
MemSize = memsizetimeFromJSON,
|
||||
KernelTime = kerneltimeFromJSON,
|
||||
Path = pathFromJSON,
|
||||
Threads = threadsFromJSON,
|
||||
UpTime = uptimeFromJSON,
|
||||
ParentId = parentidFromJSON,
|
||||
CollectionDateTime = lastUpdated
|
||||
};
|
||||
context.Add(systemProcess);
|
||||
}
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Syski.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Syski.WebSocket.Services.WebSockets.Actions.Handlers
|
||||
{
|
||||
public class VariableStorageHandler : ActionHandler
|
||||
{
|
||||
|
||||
public VariableStorageHandler(Action action, WebSocketConnection webSocketConnection, IServiceProvider serviceProvider) : base(action, webSocketConnection, serviceProvider)
|
||||
{
|
||||
}
|
||||
|
||||
public override void HandleAction()
|
||||
{
|
||||
using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
||||
{
|
||||
var context = serviceScope.ServiceProvider.GetService<SyskiDBContext>();
|
||||
var systemUUID = serviceProvider.GetService<WebSocketManager>().GetSystemId(webSocketConnection.Id);
|
||||
|
||||
float timeFromJSON = (float) action.properties.SelectToken("time");
|
||||
float transfersFromJSON = (float) action.properties.SelectToken("transfers");
|
||||
float readsFromJSON = (float) action.properties.SelectToken("reads");
|
||||
float writesFromJSON = (float) action.properties.SelectToken("writes");
|
||||
float byteReadsFromJSON = (float) action.properties.SelectToken("bytereads");
|
||||
float byteWritesFromJSON = (float) action.properties.SelectToken("bytewrites");
|
||||
DateTime dateTime = DateTime.Now;
|
||||
|
||||
var systemStorageData = new SystemStorageData()
|
||||
{
|
||||
SystemId = systemUUID,
|
||||
CollectionDateTime = dateTime,
|
||||
Time = timeFromJSON,
|
||||
Transfers = transfersFromJSON,
|
||||
Reads = readsFromJSON,
|
||||
Writes = writesFromJSON,
|
||||
ByteReads = byteReadsFromJSON,
|
||||
ByteWrites = byteWritesFromJSON
|
||||
};
|
||||
context.Add(systemStorageData);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user