Exemple #1
0
        public TUDUDbContext GetContext()
        {
            var dbName = Guid.NewGuid().ToString();

            var options = new DbContextOptionsBuilder <TUDUDbContext>()
                          .UseInMemoryDatabase(databaseName: dbName)
                          .Options;

            var dbContext = new TUDUDbContext(options);

            Seed(dbContext);
            return(dbContext);
        }
        public static async Task ReplaceTasksInList(this TUDUDbContext dbContext, int ListID, IEnumerable <TaskInListDTO> allTasks)
        {
            var list = dbContext.TaskLists.Include((x) => x.TasksInLists).FirstOrDefault((l) => l.ListID == ListID);

            if (list == null)
            {
                throw new ArgumentOutOfRangeException("listID not in table");
            }
            await Task.Run(() => dbContext.TasksInLists.RemoveRange(list.TasksInLists));

            await dbContext.SaveChangesAsync();

            //add new
            var newTils = allTasks.Where((x) => x.TaskID == null);

            if (newTils.Any())
            {
                var newTasks = newTils.Select((x) => new TaskItem()
                {
                    ID = null,
                    OriginalProjectID = list.ProjectID,
                    TaskName          = x.TaskName,
                    TasksInLists      = new List <TaskInList>()
                    {
                        x.ToEntity(ListID)
                    }
                });
                await dbContext.AddRangeAsync(newTasks);

                await dbContext.SaveChangesAsync();
            }


            //insert all tasks in list
            var newTilList = allTasks.Where((x) => x.TaskID != null).Select(t => t.ToEntity(ListID));
            await dbContext.TasksInLists.AddRangeAsync(newTilList);

            await dbContext.SaveChangesAsync();

            var nameTilList = allTasks.Where((x) => x.TaskID != null);

            foreach (var tl in nameTilList)
            {
                var t = await dbContext.TaskItems.SingleAsync((x) => x.ID == tl.TaskID);

                t.TaskName = tl.TaskName;
            }
            await dbContext.SaveChangesAsync();
        }
Exemple #3
0
        public virtual void Seed(TUDUDbContext dbContext)
        {
            //lists
            dbContext.TaskLists.Add(new TaskList()
            {
                ListID    = 1,
                ListName  = "first",
                ProjectID = 5
            });
            dbContext.TaskLists.Add(new TaskList()
            {
                ListID    = 2,
                ListName  = "second",
                ProjectID = 5
            });
            dbContext.TaskLists.Add(new TaskList()
            {
                ListID    = 3,
                ListName  = "empty list",
                ProjectID = 5
            });

            //tasks
            dbContext.TaskItems.Add(new TaskItem()
            {
                ID                = 1,
                TaskName          = "first task",
                OriginalProjectID = 5
            });
            dbContext.TaskItems.Add(new TaskItem()
            {
                ID                = 2,
                TaskName          = "second task",
                OriginalProjectID = 5
            });
            dbContext.TaskItems.Add(new TaskItem()
            {
                ID                = 3,
                TaskName          = "third and second task",
                OriginalProjectID = 5
            });
            dbContext.TaskItems.Add(new TaskItem()
            {
                ID                = 4,
                TaskName          = "first task in second list",
                OriginalProjectID = 5
            });
            dbContext.TaskItems.Add(new TaskItem()
            {
                ID                = 5,
                TaskName          = "task not in list",
                OriginalProjectID = 5
            });
            //Tasks in lists
            dbContext.TasksInLists.Add(new TaskInList()
            {
                ListID  = 1,
                OrderNo = 1,
                TaskID  = 1
            });
            dbContext.TasksInLists.Add(new TaskInList()
            {
                ListID  = 1,
                OrderNo = 2,
                TaskID  = 2
            });
            dbContext.TasksInLists.Add(new TaskInList()
            {
                ListID  = 1,
                OrderNo = 3,
                TaskID  = 3
            });
            dbContext.TasksInLists.Add(new TaskInList()
            {
                ListID  = 2,
                OrderNo = 1,
                TaskID  = 4
            });
            dbContext.TasksInLists.Add(new TaskInList()
            {
                ListID  = 2,
                OrderNo = 2,
                TaskID  = 3
            });
            dbContext.SaveChanges();
        }
        public static async Task <IEnumerable <TaskInListDTO> > GetTasksInListDTOAsync(this TUDUDbContext dbContext, int ListID)
        {
            var tils = await Task.Run(() => dbContext.TasksInLists.Where((x) => x.ListID == ListID));

            var taskstil = await Task.Run(() => dbContext.TaskItems.Where((task) => tils.Any((til) => til.TaskID == task.ID)).Select((x) => new TaskInListDTO()
            {
                TaskID   = x.ID,
                TaskName = x.TaskName,
                OrderNo  = tils.First((y) => y.TaskID == x.ID).OrderNo
            }));

            return(await Task.Run(() => taskstil.OrderBy((x) => x.OrderNo).AsQueryable()));
        }
Exemple #5
0
 public TaskListsController(TUDUDbContext dbContext)
 {
     this.dbContext = dbContext;
 }
Exemple #6
0
 public override void Seed(TUDUDbContext dbContext)
 {
 }