From 88fb5425b4d66ee08b6e97fa26c18e2b545a5b7a Mon Sep 17 00:00:00 2001 From: Kevin Matsubara Date: Wed, 26 Mar 2025 17:35:28 +0100 Subject: [PATCH] Add TodoItem model and repository. --- ServerManagement/Models/ToDoItem.cs | 10 +++ .../Models/ToDoItemsRepository.cs | 66 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 ServerManagement/Models/ToDoItem.cs create mode 100644 ServerManagement/Models/ToDoItemsRepository.cs diff --git a/ServerManagement/Models/ToDoItem.cs b/ServerManagement/Models/ToDoItem.cs new file mode 100644 index 0000000..060a463 --- /dev/null +++ b/ServerManagement/Models/ToDoItem.cs @@ -0,0 +1,10 @@ +namespace ServerManagement.Models +{ + public class ToDoItem + { + public int Id { get; set; } + public string Name { get; set; } = ""; + public bool IsCompleted { get; set; } + public DateTime DateCompleted { get; set; } + } +} \ No newline at end of file diff --git a/ServerManagement/Models/ToDoItemsRepository.cs b/ServerManagement/Models/ToDoItemsRepository.cs new file mode 100644 index 0000000..6a872bc --- /dev/null +++ b/ServerManagement/Models/ToDoItemsRepository.cs @@ -0,0 +1,66 @@ +namespace ServerManagement.Models +{ + public static class ToDoItemsRepository + { + private static List items = new List() + { + new ToDoItem { Id = 1, Name = "Update firmware of Brocade ICX 6430." }, + new ToDoItem { Id = 2, Name = "Fix bug with missing icons on Windows server." }, + new ToDoItem { Id = 3, Name = "Install Docker hub on Server D." }, + new ToDoItem { Id = 4, Name = "Upgrade VM RAM." }, + new ToDoItem { Id = 5, Name = "Investigate disk size of Debian server." }, + }; + + public static void AddItem(ToDoItem item) + { + var maxId = items.Max(s => s.Id); + item.Id = (items.Count > 0) ? maxId + 1 : 1; + items.Add(item); + } + + public static List GetItems() + { + var sortedItems = items + .OrderBy(item => item.IsCompleted) + .ThenByDescending(item => item.Id) + .ToList(); + return sortedItems; + } + + public static ToDoItem? GetItemById(int id) + { + var item = items.FirstOrDefault(item => item.Id == id); + if (item != null) + { + return new ToDoItem { Id = item.Id, Name = item.Name }; + } + return null; + } + + public static void UpdateItem(int itemId, ToDoItem item) + { + if (itemId != item.Id) return; + + var itemToUpdate = items.FirstOrDefault(item => item.Id == itemId); + if (itemToUpdate != null) + { + itemToUpdate.Name = item.Name; + } + } + + public static void DeleteItem(int itemId) + { + var itemToDelete = items.FirstOrDefault(item => item.Id == itemId); + if (itemToDelete != null) + { + items.Remove(itemToDelete); + } + } + + public static List SearchItems(string itemFilter) + { + return items.Where(item => item.Name.Contains(itemFilter, StringComparison.OrdinalIgnoreCase)) + .ToList(); + } + } +} \ No newline at end of file