public async Task <ActionResult <Todo> > UpdateTodo( [SwaggerParameter("Id of todo to be updated.")] Guid id, [FromBody, Required] [SwaggerParameter("Todo values, optional: dueDate")] TodoCreateFormModel model) { var todo = await _todoRepository.Find(new TodoById(id)); if (todo == null) { return(BadRequest()); } var account = await _accountAccessor.GetAccount(); if (todo.OwnerId != account.Id) { return(Unauthorized()); } todo.UpdateName(model.Name); if (model.DueDate != todo.DueDate) { todo.UpdateDueDate(model.DueDate); } await _todoRepository.Update(todo); return(Ok(todo)); }
public async Task <ActionResult <Todo> > CreateTodo( [FromBody, Required] [SwaggerParameter("Todo values, optional: dueDate")] TodoCreateFormModel model) { var account = await _accountAccessor.GetAccount(); var todo = new Todo(model.Name, account, model.DueDate); await _todoRepository.Add(todo); return(Created($"api/todos/{todo.Id}", todo)); }