public record Todo(Guid Id, int Order, string Title, bool Completed = false); public class TodoRepo { private List todos = new(); public Todo Add(Todo todo) { todos.Add(todo); return todo; } public IEnumerable All() { return todos; } public void Clear() { todos.Clear(); } public Todo Find(Guid id) { return todos.Single(x => x.Id == id); } public Todo Update(Guid id, string? title, int? order, bool? completed) { var todoIndex = todos.FindIndex(x => x.Id == id); var oldTodo = todos[todoIndex]; var newTodo = oldTodo with { Title = title ?? oldTodo.Title, Order = order ?? oldTodo.Order, Completed = completed ?? oldTodo.Completed }; todos[todoIndex] = newTodo; return newTodo; } public void Delete(Guid id) { var todoIndex = todos.FindIndex(x => x.Id == id); todos.RemoveAt(todoIndex); } }