Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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
                });
            }
        }