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(); }
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())); }
public TaskListsController(TUDUDbContext dbContext) { this.dbContext = dbContext; }
public override void Seed(TUDUDbContext dbContext) { }