public void AddingTaskAndTaskInList() { //Arrange var db = new DbContextMock.DbEmptyContextMocker().GetContext(); db.TaskLists.Add(new Models.TaskList() { ListID = 1, ListName = "test list", ProjectID = 5 }); db.SaveChanges(); //Act var list = db.TaskLists.Find(1); var task = new Models.TaskItem() { ID = null, TaskName = "test task", OriginalProjectID = 5 }; var taskinlist = new Models.TaskInList() { List = list, Task = task, OrderNo = 1 }; db.TaskItems.Add(task); db.TasksInLists.Add(taskinlist); db.SaveChanges(); //Assert //task and taskinlist added Assert.NotEmpty(db.TaskItems); Assert.NotEmpty(db.TasksInLists); var taskinlistindb = db.TasksInLists.First(); var taskindb = db.TaskItems.First(); Assert.Equal(taskindb.ID, taskinlistindb.TaskID); db.Dispose(); }
public async Task <IActionResult> PostTaskItem([FromBody] Models.TaskItem taskItem, int?ListID = null) { try { if (taskItem.ID != null) { return(new BadRequestObjectResult(ModelState)); } if (!ModelState.IsValid) { return(new BadRequestObjectResult(ModelState)); } await dbContext.TaskItems.AddAsync(taskItem); await dbContext.SaveChangesAsync(); var result = dbContext.Entry(taskItem).Entity; //TODO taskinlist update if (ListID.HasValue) { var tilresult = dbContext.TasksInLists.Count((x) => x.ListID == ListID); var til = new Models.TaskInList() { ListID = ListID.Value, TaskID = result.ID.Value, OrderNo = tilresult + 1 }; await dbContext.TasksInLists.AddAsync(til); await dbContext.SaveChangesAsync(); } return(Ok(result)); } catch (Exception e) { return(new ObjectResult(e) { StatusCode = (int)HttpStatusCode.InternalServerError }); } }