コード例 #1
0
        public async Task <UserSettingsModel> FindUserSettingsAsync(int userId)
        {
            using (var db = new GmailBotDbContext())
            {
                var userSettingsModel = db.UserSettings.FirstOrDefault(u => u.UserId == userId);
                if (userSettingsModel == null)
                {
                    return(null);
                }

                await db.Entry(userSettingsModel)
                .Collection(c => c.IgnoreList)
                .LoadAsync();

                await db.Entry(userSettingsModel)
                .Collection(c => c.Blacklist)
                .LoadAsync();

                await db.Entry(userSettingsModel)
                .Collection(c => c.Whitelist)
                .LoadAsync();

                return(userSettingsModel);
            }
        }
コード例 #2
0
        public async Task UpdateNmStoreRecordAsync(NmStoreModel newModel)
        {
            using (var dbContext = new GmailBotDbContext())
            {
                var existModel = await dbContext.NmStore
                                 .Where(nmStore => nmStore.Id == newModel.Id)
                                 .Include(nmStore => nmStore.To)
                                 .Include(nmStore => nmStore.Cc)
                                 .Include(nmStore => nmStore.Bcc)
                                 .Include(nmStore => nmStore.File)
                                 .SingleOrDefaultAsync();

                if (existModel == null)
                {
                    return;
                }
                // Update
                dbContext.Entry(existModel).CurrentValues.SetValues(newModel);
                // Delete
                dbContext.To.RemoveRange(existModel.To.Except(newModel.To, new IdEqualityComparer <ToModel>()));
                dbContext.Cc.RemoveRange(existModel.Cc.Except(newModel.Cc, new IdEqualityComparer <CcModel>()));
                dbContext.Bcc.RemoveRange(existModel.Bcc.Except(newModel.Bcc, new IdEqualityComparer <BccModel>()));
                dbContext.File.RemoveRange(existModel.File.Except(newModel.File, new IdEqualityComparer <FileModel>()));

                UpdateAdress(dbContext, newModel.To, existModel.To);
                UpdateAdress(dbContext, newModel.Cc, existModel.Cc);
                UpdateAdress(dbContext, newModel.Bcc, existModel.Bcc);
                UpdateFile(dbContext, newModel.File, existModel.File);
                await dbContext.SaveChangesAsync();
            }
        }
コード例 #3
0
 public async Task <UserModel> FindUserByEmailAsync(string email)
 {
     using (var db = new GmailBotDbContext())
     {
         return(await db.Users.FirstOrDefaultAsync(u => u.Email == email));
     }
 }
コード例 #4
0
        public async Task <NmStoreModel> FindNmStoreAsync(int userId)
        {
            using (var db = new GmailBotDbContext())
            {
                var nmStoreModel = await db.NmStore.FirstOrDefaultAsync(u => u.UserId == userId);

                if (nmStoreModel == null)
                {
                    return(null);
                }
                await db.Entry(nmStoreModel)
                .Collection(c => c.To)
                .LoadAsync();

                await db.Entry(nmStoreModel)
                .Collection(c => c.Cc)
                .LoadAsync();

                await db.Entry(nmStoreModel)
                .Collection(c => c.Bcc)
                .LoadAsync();

                await db.Entry(nmStoreModel)
                .Collection(c => c.File)
                .LoadAsync();

                return(nmStoreModel);
            }
        }
コード例 #5
0
 public async Task <List <UserModel> > GetAllUsersAsync()
 {
     using (var db = new GmailBotDbContext())
     {
         return(await db.Users.ToListAsync());
     }
 }
コード例 #6
0
 public UserModel FindUserByEmail(string email)
 {
     using (var db = new GmailBotDbContext())
     {
         return(db.Users.FirstOrDefault(u => u.Email == email));
     }
 }
コード例 #7
0
 public async Task <PendingUserModel> FindPendingUserAsync(int userId)
 {
     using (var db = new GmailBotDbContext())
     {
         return(await db.PendingUser.FirstOrDefaultAsync(p => p.UserId == userId));
     }
 }
コード例 #8
0
 public List <UserModel> GetAllUsers()
 {
     using (var db = new GmailBotDbContext())
     {
         return(db.Users.ToList());
     }
 }
コード例 #9
0
 public PendingUserModel FindPendingUser(int userId)
 {
     using (var db = new GmailBotDbContext())
     {
         return(db.PendingUser.FirstOrDefault(p => p.UserId == userId));
     }
 }
コード例 #10
0
 public async Task <UserModel> FindUserAsync(int userId)
 {
     using (var db = new GmailBotDbContext())
     {
         return(await db.Users.FirstOrDefaultAsync(u => u.UserId == userId));
     }
 }
コード例 #11
0
 public TempDataModel FindTempData(int userId)
 {
     using (var db = new GmailBotDbContext())
     {
         return(db.TempData.FirstOrDefault(t => t.UserId == userId));
     }
 }
コード例 #12
0
 public async Task <TempDataModel> FindTempDataAsync(int userId)
 {
     using (var db = new GmailBotDbContext())
     {
         return(await db.TempData.FirstOrDefaultAsync(t => t.UserId == userId));
     }
 }
コード例 #13
0
 public UserModel FindUser(int userId)
 {
     using (var db = new GmailBotDbContext())
     {
         return(db.Users.FirstOrDefault(u => u.UserId == userId));
     }
 }
コード例 #14
0
        public async Task UpdateUserSettingsRecordAsync(UserSettingsModel newModel)
        {
            using (var db = new GmailBotDbContext())
            {
                var existModel = await db.UserSettings
                                 .Where(userSettings => userSettings.Id == newModel.Id)
                                 .Include(userSettings => userSettings.IgnoreList)
                                 .Include(userSettings => userSettings.Blacklist)
                                 .Include(userSettings => userSettings.Whitelist)
                                 .SingleOrDefaultAsync();

                if (existModel == null)
                {
                    return;
                }
                // Update
                db.Entry(existModel).CurrentValues.SetValues(newModel);
                //Delete
                db.Ignore.RemoveRange(existModel.IgnoreList.Except(newModel.IgnoreList, new IdEqualityComparer <IgnoreModel>()));
                db.Blacklist.RemoveRange(existModel.Blacklist.Except(newModel.Blacklist, new IdEqualityComparer <BlacklistModel>()));
                db.Whitelist.RemoveRange(existModel.Whitelist.Except(newModel.Whitelist, new IdEqualityComparer <WhitelistModel>()));

                UpdateIgnoreList(db, newModel.IgnoreList, existModel.IgnoreList);
                UpdateLabelsList(db, newModel.Blacklist, existModel.Blacklist);
                UpdateLabelsList(db, newModel.Whitelist, existModel.Whitelist);
                await db.SaveChangesAsync();
            }
        }
コード例 #15
0
 public void UpdateUserRecord(UserModel userModel)
 {
     using (var db = new GmailBotDbContext())
     {
         db.Users.Attach(userModel);
         db.Entry(userModel).State = EntityState.Modified;
         db.SaveChanges();
     }
 }
コード例 #16
0
 public async Task UpdateUserRecordAsync(UserModel userModel)
 {
     using (var db = new GmailBotDbContext())
     {
         db.Users.Attach(userModel);
         db.Entry(userModel).State = EntityState.Modified;
         await db.SaveChangesAsync();
     }
 }
コード例 #17
0
 public async Task UpdateTempDataRecordAsync(TempDataModel tempDataModel)
 {
     using (var db = new GmailBotDbContext())
     {
         db.TempData.Attach(tempDataModel);
         db.Entry(tempDataModel).State = EntityState.Modified;
         await db.SaveChangesAsync();
     }
 }
コード例 #18
0
 public void UpdateTempDataRecord(TempDataModel tempDataModel)
 {
     using (var db = new GmailBotDbContext())
     {
         db.TempData.Attach(tempDataModel);
         db.Entry(tempDataModel).State = EntityState.Modified;
         db.SaveChanges();
     }
 }
コード例 #19
0
        public TempDataModel AddNewTempData(TempDataModel tempData)
        {
            tempData.NullInspect(nameof(tempData));

            using (var db = new GmailBotDbContext())
            {
                var newModel = db.TempData.Add(tempData);
                db.SaveChanges();
                return(newModel);
            }
        }
コード例 #20
0
 public NmStoreModel AddNewNmStore(int userId)
 {
     using (var db = new GmailBotDbContext())
     {
         var newModel = db.NmStore.Add(new NmStoreModel {
             UserId = userId
         });
         db.SaveChanges();
         return(newModel);
     }
 }
コード例 #21
0
        public UserModel AddNewUser(User user)
        {
            user.NullInspect(nameof(user));

            using (var db = new GmailBotDbContext())
            {
                var newModel = db.Users.Add(new UserModel(user));
                db.SaveChanges();
                return(newModel);
            }
        }
コード例 #22
0
 public UserSettingsModel AddNewUserSettings(int userId)
 {
     using (var db = new GmailBotDbContext())
     {
         var userSettings = db.UserSettings.Add(new UserSettingsModel {
             UserId = userId
         });
         db.SaveChanges();
         return(userSettings);
     }
 }
コード例 #23
0
        public async Task <TempDataModel> AddNewTempDataAsync(TempDataModel tempData)
        {
            tempData.NullInspect(nameof(tempData));

            using (var db = new GmailBotDbContext())
            {
                var newModel = db.TempData.Add(tempData);
                await db.SaveChangesAsync();

                return(newModel);
            }
        }
コード例 #24
0
        public async Task <UserModel> AddNewUserAsync(User user)
        {
            user.NullInspect(nameof(user));

            using (var db = new GmailBotDbContext())
            {
                var newModel = db.Users.Add(new UserModel(user));
                await db.SaveChangesAsync();

                return(newModel);
            }
        }
コード例 #25
0
        public async Task <NmStoreModel> AddNewNmStoreAsync(int userId)
        {
            using (var db = new GmailBotDbContext())
            {
                var newModel = db.NmStore.Add(new NmStoreModel {
                    UserId = userId
                });
                await db.SaveChangesAsync();

                return(newModel);
            }
        }
コード例 #26
0
        public async Task <UserSettingsModel> AddNewUserSettingsAsync(int userId)
        {
            using (var db = new GmailBotDbContext())
            {
                var userSettings = db.UserSettings.Add(new UserSettingsModel {
                    UserId = userId
                });
                await db.SaveChangesAsync();

                return(userSettings);
            }
        }
コード例 #27
0
 public PendingUserModel Queue(int userId)
 {
     using (var db = new GmailBotDbContext())
     {
         var newModel = db.PendingUser.Add(new PendingUserModel
         {
             UserId      = userId,
             JoinTimeUtc = DateTime.Now
         });
         db.SaveChanges();
         return(newModel);
     }
 }
コード例 #28
0
 public PendingUserModel UpdateRecordJoinTime(int id, DateTime time)
 {
     using (var db = new GmailBotDbContext())
     {
         var query = db.PendingUser.Find(id);
         if (query != null)
         {
             query.JoinTimeUtc = time;
             db.SaveChanges();
         }
         return(query);
     }
 }
コード例 #29
0
        public async Task <PendingUserModel> UpdateRecordJoinTimeAsync(int id, DateTime time)
        {
            using (var db = new GmailBotDbContext())
            {
                var query = await db.PendingUser.FindAsync(id);

                if (query != null)
                {
                    query.JoinTimeUtc = time;
                    await db.SaveChangesAsync();
                }
                return(query);
            }
        }
コード例 #30
0
        public async Task <PendingUserModel> QueueAsync(int userId)
        {
            using (var db = new GmailBotDbContext())
            {
                var newModel = db.PendingUser.Add(new PendingUserModel
                {
                    UserId      = userId,
                    JoinTimeUtc = DateTime.Now
                });
                await db.SaveChangesAsync();

                return(newModel);
            }
        }