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); }
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); }
public async Task <IActionResult> CreateTodo([FromBody] NewTodoParams todoParams) { var todo = await _todoService.CreateTodo(todoParams); return(new OkObjectResult(todo)); }