public async Task <List <ToDoItem> > GetGroupItemsAsync(string name) { using (var db = new ListomatorContext()) { return(await db.ToDoItems.Where(t => t.ToDoGroup.ToDoGroupName == name).ToListAsync()); } }
public async Task <List <ToDoGroup> > GetGroupsAsync() { using (var db = new ListomatorContext()) { return(await db.ToDoGroups.OrderBy(t => t.ToDoGroupName).ToListAsync()); } }
public ListomatorRepository() { using (var db = new ListomatorContext()) { //db.Database.Migrate(); //db.Database.EnsureCreated(); } }
public async Task UpdateGroupNameAsync(string oldName, string newName) { using (var db = new ListomatorContext()) { var group = await db.ToDoGroups.FirstOrDefaultAsync(t => t.ToDoGroupName == oldName); if (group != null) { group.ToDoGroupName = newName; await db.SaveChangesAsync(); } } }
public async Task AddItemToGroupAsync(string groupName, string itemName, bool isComplete, bool useDueDate, DateTime dueDate = default) { using (var db = new ListomatorContext()) { var g = await db.ToDoGroups.FirstOrDefaultAsync(t => t.ToDoGroupName == groupName); if (g == null) { throw new ArgumentOutOfRangeException($"Attempting to add {itemName} to a non-existant group name {groupName}"); } if (!(await db.ToDoItems.AnyAsync(t => t.ToDoGroup.ToDoGroupName == groupName && t.ToDoItemName == itemName))) { DateTime completionDate = isComplete ? DateTime.Now : default; await db.ToDoItems.AddAsync(new ToDoItem { ToDoItemName = itemName, DueDate = dueDate, IsComplete = isComplete, CompletionDate = completionDate, UseDueDate = dueDate != default, ToDoGroup = g });
public async Task AddGroupAsync(string name) { using (var db = new ListomatorContext()) { if (!(await db.ToDoGroups.AnyAsync(t => t.ToDoGroupName == name))) { await db.ToDoGroups.AddAsync(new ToDoGroup { ToDoGroupName = name }); await db.SaveChangesAsync(); } else { throw new ConstraintException($"Group {name} already exists"); } } }
public async Task RemoveGroupAsync(string name) { using (var db = new ListomatorContext()) { try { var group = await db.ToDoGroups.FirstOrDefaultAsync(t => t.ToDoGroupName == name); if (group != null) { db.ToDoGroups.Remove(group); } await db.SaveChangesAsync(); } catch (Exception e) { Console.WriteLine(e); throw; } } }