示例#1
0
        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));
        }
示例#2
0
        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));
        }