static TodoManager DeleteTodo(TodoManager state, DeleteTodoAction action) { var newTodos = state.Todos.Where(t => t.Id != action.TodoId).ToList(); return(new TodoManager() { Todos = newTodos, }); }
static TodoManager AddTodo(TodoManager state, AddTodoAction action) { var newTodos = new List <Todo>(state.Todos); newTodos.Add(new Todo() { Text = action.Todo }); return(new TodoManager() { Todos = newTodos, }); }
static TodoManager CompleteTodo(TodoManager state, CompleteTodoAction action) { var newTodos = state.Todos.Select(t => new Todo { Id = t.Id, Text = t.Text, Completed = t.Id == action.TodoId ? !t.Completed : t.Completed, }).ToList(); return(new TodoManager() { Todos = newTodos, }); }