Upload project.

This commit is contained in:
StevenJW
2020-06-09 21:02:14 +01:00
parent 656abcf9ad
commit 1164c93622
520 changed files with 28059 additions and 0 deletions

View File

@@ -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();
}
}

View File

@@ -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);
}
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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();
}
}
}
}
}
}

View File

@@ -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++;
}
}
}
}

View File

@@ -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++;
}
}
}
}

View File

@@ -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();
}
}
}
}
}
}

View File

@@ -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();
}
}
}
}
}
}

View File

@@ -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++;
}
}
}
}
}

View File

@@ -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++;
}
}
}
}
}

View File

@@ -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();
}
}
}
}
}

View File

@@ -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();
}
}
}
}
}

View File

@@ -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 } });
}
}
}
}
}
}

View File

@@ -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();
}
}
}
}

View File

@@ -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();
}
}
}
}

View File

@@ -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();
}
}
}
}

View File

@@ -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();
}
}
}
}

View File

@@ -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();
}
}
}
}