示例#1
0
        public async Task <TodoVm> UpdateTodo(string slug, UpdateTodoParams updatedTodo)
        {
            var currentTodo = await _todoRepository.GetTodoBySlug(slug);

            if (updatedTodo.Title != null)
            {
                updatedTodo.Title = currentTodo.Title;
            }

            if (updatedTodo.Content != null)
            {
                updatedTodo.Content = currentTodo.Content;
            }

            var newTodoParams = new NewTodoParams();

            newTodoParams.Content = updatedTodo.Content;
            newTodoParams.Title   = updatedTodo.Title;

            var newTodo = new Todo(newTodoParams);

            newTodo.Slug        = GenerateSlug(newTodo.Title, newTodo.Id);
            newTodo.CreatedOn   = currentTodo.CompletedOn;
            newTodo.UpdatedOn   = DateTime.UtcNow;
            newTodo.CompletedOn = updatedTodo.IsCompleted ? DateTime.UtcNow : (DateTime?)null;

            var todo = await _todoRepository.UpdateTodo(newTodo);

            var result = _mapper.Map <TodoVm>(todo);

            return(result);
        }
示例#2
0

        
示例#3
0
        public async Task <Todo> CreateTodo(NewTodoParams todoParams)
        {
            var newTodo = new Todo(todoParams);

            newTodo.Id   = ObjectId.GenerateNewId().ToString();
            newTodo.Slug = GenerateSlug(newTodo.Title, newTodo.Id);

            var result = await _todoRepository.SaveTodoAsync(newTodo);

            return(result);
        }
示例#4
0
        public async Task <IActionResult> CreateTodo([FromBody] NewTodoParams todoParams)
        {
            var todo = await _todoService.CreateTodo(todoParams);

            return(new OkObjectResult(todo));
        }