1
0

Add TodoItem model and repository.

This commit is contained in:
Kevin Matsubara 2025-03-26 17:35:28 +01:00
parent 341e2da53e
commit 88fb5425b4
2 changed files with 76 additions and 0 deletions

View File

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

View File

@ -0,0 +1,66 @@
namespace ServerManagement.Models
{
public static class ToDoItemsRepository
{
private static List<ToDoItem> items = new List<ToDoItem>()
{
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<ToDoItem> 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<ToDoItem> SearchItems(string itemFilter)
{
return items.Where(item => item.Name.Contains(itemFilter, StringComparison.OrdinalIgnoreCase))
.ToList();
}
}
}