Exemplo n.º 1
0
        public static TodoState OnAddTodo(TodoState state, AddTodo action)
        {
            var todoList = state.Todos.ToList();

            todoList.Add(action.Todo);
            return(new TodoState(todoList));
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            TodoRepository repository     = new TodoRepository();
            AddTodo        addTodoUsecase = new AddTodo(repository);


            addTodoUsecase.Execute("tests title", "test description");
            Console.WriteLine("Hello World!");
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 9
0
        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
            });
        }
Exemplo n.º 10
0
        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
            });
        }
Exemplo n.º 11
0
 public AddTodoTest()
 {
     _mockRepo = new Mock <ITodoRepository>();
     _useCase  = new AddTodo(_mockRepo.Object);
 }
Exemplo n.º 12
0
 List <TodoItem> AddTodoItem(List <TodoItem> previousState, AddTodo action)
 {
     return(previousState.Concat(new[] {
         new TodoItem(action.Text, false)
     }).ToList());
 }
Exemplo n.º 13
0
        /// <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));
        }
Exemplo n.º 14
0
 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 });
  }