public static TodoState OnAddTodo(TodoState state, AddTodo action) { var todoList = state.Todos.ToList(); todoList.Add(action.Todo); return(new TodoState(todoList)); }
static void Main(string[] args) { TodoRepository repository = new TodoRepository(); AddTodo addTodoUsecase = new AddTodo(repository); addTodoUsecase.Execute("tests title", "test description"); Console.WriteLine("Hello World!"); }
public async Task AddAsync(AddTodo command) { if (!Enum.TryParse <Priority>(command.Priority, true, out var priority)) { throw new InvalidTodoPriorityException(command.Priority); } var todo = new Todo(command.Id, command.Title, command.Description, priority, State.NEW, command.CreatedAt); await _todoRepository.AddAsync(todo); }
public async Task add_todo_should_succeed_given_valid_title_and_description_and_priority() { var command = new AddTodo(Guid.Empty, "Some Title", "Some Description", "HIGH"); await _todosService.AddAsync(command); await _todoRepository.Received().AddAsync(Arg.Is <Todo>(x => x.Id == command.Id && x.Title == command.Title && x.Description == command.Description && x.Priority == Priority.HIGH)); }
public IEnumerable<TodoItem> Add(string description) { var command = new AddTodo { Input = new AddTodoInput(description, this.ViewModel.TodoItems), Persistor = this.Persistor }; command.Execute(); ViewModel.TodoItems = command.Value.ToList(); return command.Value; }
public IEnumerable <TodoItem> Add(string description) { var command = new AddTodo { Input = new AddTodoInput(description, this.ViewModel.TodoItems), Persistor = this.Persistor }; command.Execute(); ViewModel.TodoItems = command.Value.ToList(); return(command.Value); }
public MainViewModel(IStore store) { NewTodoTitle = new ReactiveProperty <string>(string.Empty); TodoList = new TodoListViewModel(store); var canExecuteAddTodo = NewTodoTitle.Select(title => !string.IsNullOrWhiteSpace(title)); AddTodo = canExecuteAddTodo.ToReactiveCommand(); AddTodo.Subscribe(() => { store.Dispatch(new TodoActions.AddTodo(NewTodoTitle.Value)); NewTodoTitle.Value = string.Empty; }); store.Dispatch(new TodoActions.Load()); }
public async Task add_todo_should_return_created() { // act var command = new AddTodo(Guid.NewGuid(), "Some Title", "Some Description", "HIGH"); var todo = new Todo(Guid.NewGuid(), "Some Title", "Some Description", Priority.HIGH, State.NEW, DateTimeOffset.UtcNow); await _todoRepository.AddAsync(todo); var content = new StringContent(JsonConvert.SerializeObject(command), System.Text.Encoding.UTF8, "application/json"); // arrange var response = await _client.PostAsync($"/api/todoes", content); // assert response.StatusCode.ShouldBe(System.Net.HttpStatusCode.Created); }
private static TodoAppState AddTodo(TodoAppState state, AddTodo act) { var maxId = state.Todos.Max(_todo => _todo.Id); var nextId = maxId + 1; var todo = new Todo { Id = nextId, Description = state.DescriptionInput, IsCompleted = false }; return(new TodoAppState { Todos = state.Todos.Concat(new Todo[] { todo }), Visibility = state.Visibility }); }
private static TodoAppState AddTodo(TodoAppState state, AddTodo act) { int nextId = 0; if (state.Todos.Any()) { var maxId = state.Todos.Max(_todo => _todo.Id); nextId = maxId + 1; } var todo = new Todo { Id = nextId, Description = state.DescriptionInput, IsCompleted = false }; return(new TodoAppState { Todos = state.Todos.Concat <Todo>(new Todo[] { todo }).ToArray(), Visibility = state.Visibility, DescriptionInput = state.DescriptionInput }); }
public AddTodoTest() { _mockRepo = new Mock <ITodoRepository>(); _useCase = new AddTodo(_mockRepo.Object); }
List <TodoItem> AddTodoItem(List <TodoItem> previousState, AddTodo action) { return(previousState.Concat(new[] { new TodoItem(action.Text, false) }).ToList()); }
/// <summary> /// Reducer function to handle AddTodo action. /// </summary> /// <param name="previousState"></param> /// <param name="action"></param> /// <returns></returns> public IReadOnlyDictionary <int, TodoItem> Apply(IReadOnlyDictionary <int, TodoItem> previousState, AddTodo action) { var newTodo = action.Payload; var newState = previousState.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); newState.Add(newTodo.Id, newTodo); return(new ReadOnlyDictionary <int, TodoItem>(newState)); }
public async Task<ActionResult> Post(AddTodo command) { await _todoService.AddAsync(command); return Created("api/todoes", command.Id); // return CreatedAtAction(nameof(Get), new { todoId = command.Id }); }