コード例 #1
0
        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)));
        }
コード例 #2
0
 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);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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);
        }