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()); }