diff --git a/ServerManagement/Components/Controls/ServerComponent.razor b/ServerManagement/Components/Controls/ServerComponent.razor index e632757..c5f42b3 100755 --- a/ServerManagement/Components/Controls/ServerComponent.razor +++ b/ServerManagement/Components/Controls/ServerComponent.razor @@ -1,9 +1,10 @@ @namespace ServerManagement.Components.Controls -

- Server is online. +

+ @server.Name is in: @server.City @(server.IsOnline ? "online" : "offline")

@code { - + private Server server = new Server { Name = "Server 1", City = "Einhoven" }; } \ No newline at end of file diff --git a/ServerManagement/Components/Pages/Servers.razor b/ServerManagement/Components/Pages/Servers.razor index 8457363..81b4882 100644 --- a/ServerManagement/Components/Pages/Servers.razor +++ b/ServerManagement/Components/Pages/Servers.razor @@ -5,6 +5,8 @@

+ +
@code { diff --git a/ServerManagement/Components/_Imports.razor b/ServerManagement/Components/_Imports.razor index b88ab12..4691cfc 100644 --- a/ServerManagement/Components/_Imports.razor +++ b/ServerManagement/Components/_Imports.razor @@ -8,4 +8,5 @@ @using Microsoft.JSInterop @using ServerManagement @using ServerManagement.Components -@using ServerManagement.Components.Controls \ No newline at end of file +@using ServerManagement.Components.Controls +@using ServerManagement.Models \ No newline at end of file diff --git a/ServerManagement/Models/Server.cs b/ServerManagement/Models/Server.cs new file mode 100644 index 0000000..c63f09d --- /dev/null +++ b/ServerManagement/Models/Server.cs @@ -0,0 +1,17 @@ +namespace ServerManagement.Models +{ + public class Server + { + public Server() + { + Random random = new Random(); + int randomNumber = random.Next(0, 2); + IsOnline = randomNumber != 0; + } + + public int Id { get; set; } + public bool IsOnline { get; set; } + public string? Name { get; set; } + public string? City { get; set; } + } +} \ No newline at end of file diff --git a/ServerManagement/Models/ServersRepository.cs b/ServerManagement/Models/ServersRepository.cs new file mode 100644 index 0000000..d37fc6a --- /dev/null +++ b/ServerManagement/Models/ServersRepository.cs @@ -0,0 +1,80 @@ +namespace ServerManagement.Models +{ + public static class ServersRepository + { + private static List servers = new List() + { + new Server { Id = 1, Name = "Server1", City = "Toronto" }, + new Server { Id = 2, Name = "Server2", City = "Toronto" }, + new Server { Id = 3, Name = "Server3", City = "Toronto" }, + new Server { Id = 4, Name = "Server4", City = "Toronto" }, + new Server { Id = 5, Name = "Server5", City = "Montreal" }, + new Server { Id = 6, Name = "Server6", City = "Montreal" }, + new Server { Id = 7, Name = "Server7", City = "Montreal" }, + new Server { Id = 8, Name = "Server8", City = "Ottawa" }, + new Server { Id = 9, Name = "Server9", City = "Ottawa" }, + new Server { Id = 10, Name = "Server10", City = "Calgary" }, + new Server { Id = 11, Name = "Server11", City = "Calgary" }, + new Server { Id = 12, Name = "Server12", City = "Halifax" }, + new Server { Id = 13, Name = "Server13", City = "Halifax" }, + }; + + public static void AddServer(Server server) + { + var maxId = servers.Max(s => s.Id); + server.Id = maxId + 1; + servers.Add(server); + } + + public static List GetServres() => servers; + + public static List GetServersByCity(string cityName) + { + return servers.Where(s => s.City.Equals(cityName, StringComparison.OrdinalIgnoreCase)).ToList(); + } + + public static Server? GetServerById(int id) + { + var server = servers.FirstOrDefault(s => s.Id == id); + if (server != null) + { + return new Server + { + Id = server.Id, + Name = server.Name, + City = server.City, + IsOnline = server.IsOnline + }; + } + + return null; + } + + public static void UpdateServer(int serverId, Server server) + { + if (serverId != server.Id) return; + + var serverToUpdate = servers.FirstOrDefault(s => s.Id == serverId); + if (serverToUpdate != null) + { + serverToUpdate.IsOnline = server.IsOnline; + serverToUpdate.Name = server.Name; + serverToUpdate.City = server.City; + } + } + + public static void DeleteServer(int serverId) + { + var server = servers.FirstOrDefault(s => s.Id == serverId); + if (server != null) + { + servers.Remove(server); + } + } + + public static List SearchServers(string serverFilter) + { + return servers.Where(s => s.Name.Contains(serverFilter, StringComparison.OrdinalIgnoreCase)).ToList(); + } + } +} \ No newline at end of file