Exemple #1
0
        public async Task <IActionResult> PatchTodoItem(long id, UpdateTodoItemDTO changes)
        {
            var todoItem = await _todoRepository.GetAsync(id);

            if (todoItem == null)
            {
                return(NotFound(new ErrorMessage("Invalid id")));
            }
            switch (changes.Field)
            {
            case "Name":
                todoItem.Name = changes.Value;
                break;

            case "IsCompleted":
                todoItem.IsComplete = bool.Parse(changes.Value);
                break;

            case "Responsible":
                var user = await _userManager.Users.Where(u => u.Id == changes.Value).FirstOrDefaultAsync();

                if (user != null)
                {
                    todoItem.Responsible = user;
                }
                else
                {
                    return(BadRequest(new ErrorMessage("User not found")));
                    //throw new System.Exception("Se pudrio todo");
                }

                break;

            case "Id":
                return(Forbid());

            default:
                return(BadRequest(new ErrorMessage("Invalid field")));
            }
            await _todoRepository.UpdateAsync(todoItem);

            return(NoContent());
        }
        public async Task <IActionResult> PatchTodoItem(long id, UpdateTodoItemDTO changes)
        {
            switch (changes.Field)
            {
            case "Id":
                return(Forbid());

            case "IsCompleted":
                await _todoService.PatchTodo(id, changes.Field, changes.Value);

                break;

            case "Responsible":
                await _todoService.PatchTodo(id, changes.Field, changes.Value);

                break;

            default:
                return(BadRequest(new ErrorMessage("Invalid field")));
            }
            return(NoContent());
        }