public async Task <IActionResult> EditListItem([FromBody] TodoItemEditFields fields) { var responsibleParty = await dbContext.Users.FirstOrDefaultAsync(user => user.Id == fields.ResponsiblePartyId); if (responsibleParty == null) { ModelState.AddModelError(nameof(fields.ResponsiblePartyId), "Responsible party does not exist"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var existingTodoItem = await dbContext.TodoItems .Include(item => item.TodoList) .FirstOrDefaultAsync(item => item.TodoItemId == fields.TodoItemId); if (existingTodoItem == null) { return(NotFound()); } TodoItemEditFieldsFactory.Update(fields, existingTodoItem); dbContext.Update(existingTodoItem); await dbContext.SaveChangesAsync(); return(Ok(TodoItemEditFieldsFactory.Create(existingTodoItem))); }
public static void Update(TodoItemEditFields src, TodoItem dest) { dest.Title = src.Title; dest.IsDone = src.IsDone; dest.ResponsiblePartyId = src.ResponsiblePartyId; dest.Importance = src.Importance; }
public WhenTodoItemIsConvertedToEditFields() { var todoList = new TestTodoListBuilder(new IdentityUser("*****@*****.**"), "shopping") .WithItem("bread", Importance.High) .Build(); srcTodoItem = todoList.Items.First(); resultFields = TodoItemEditFieldsFactory.Create(srcTodoItem); }
public async Task <IActionResult> Edit(TodoItemEditFields fields) { if (!ModelState.IsValid) { return(View(fields)); } var todoItem = dbContext.SingleTodoItem(fields.TodoItemId); TodoItemEditFieldsFactory.Update(fields, todoItem); dbContext.Update(todoItem); await dbContext.SaveChangesAsync(); return(RedirectToListDetail(todoItem.TodoListId)); }
public async Task <IActionResult> UpdateRank([FromBody] TodoItemEditFields fields) { if (fields.Rank <= 0 || fields.Rank > 9999) { return(ValidationProblem()); } else { var todoItem = dbContext.SingleTodoItem(fields.TodoItemId); todoItem.Rank = fields.Rank; dbContext.Update(todoItem); try { await dbContext.SaveChangesAsync(); } catch (System.Exception) { return(NotFound()); } } return(NoContent()); //return RedirectToListDetail(1); }