public Widget GetWidget(Guid id)
 {
     using (var db = new AppDbContext())
     {
         return db.Widgets.First(u => u.Id == (Guid)id);
     }
 }
 public IList<Widget> GetWidgets()
 {
     using (var db = new AppDbContext())
     {
         return db.Widgets.AsNoTracking().OrderBy(u => u.Name).ToList();
     }
 }
 public IList<Widget> GetWidgets(string searchString)
 {
     using (var db = new AppDbContext())
     {
         return db.Widgets.AsNoTracking().Where(u => u.Name.ToLower().Contains(searchString.ToLower())).OrderBy(u => u.Name).ToList();
     }
 }
 public IList<User> GetUsers(string searchString)
 {
     using (var db = new AppDbContext())
     {
         return db.Users.AsNoTracking().Where(u => u.Nickname.ToLower().Contains(searchString.ToLower())).OrderBy(u => u.Nickname).ToList();
     }
 }
 public User GetUser(Guid id)
 {
     using (var db = new AppDbContext())
     {
         return db.Users.FirstOrDefault(u => u.Id == id);
     }
 }
 public IList<User> GetUsers()
 {
     using (var db = new AppDbContext())
     {
         return db.Users.AsNoTracking().OrderBy(u=>u.Nickname).ToList();
     }
 }
 public async Task SaveWidget(Widget widget)
 {
     using (var db = new AppDbContext())
     {
         db.Widgets.Add(widget);
         await db.SaveChangesAsync();
     }
 }
 public async Task SaveUser(User user)
 {
     using (var db = new AppDbContext())
     {
         db.Users.Add(user);
         await db.SaveChangesAsync();
     }
 }
 public async Task DeleteWidget(Guid id)
 {
     using (var db = new AppDbContext())
     {
         var widget = GetWidget(id);
         db.Widgets.Attach(widget);
         db.Widgets.Remove(widget);
         await db.SaveChangesAsync();
     }
 }
 public async Task DeleteUser(Guid id)
 {
     using (var db = new AppDbContext())
     {
         var user = GetUser(id);
         db.Users.Attach(user);
         db.Users.Remove(user);
         await db.SaveChangesAsync();
     }
 }