Beispiel #1
0
 public static void CleanReadPosts()
 {
     using (BotContext db = new BotContext())
     {
         db.UsersSeenContent.RemoveRange(db.UsersSeenContent);
         db.SaveChanges();
     }
 }
 //убирает подписку
 public static void RemoveSub(string userId, string sub, string subKey)
 {
     using (BotContext db = new BotContext())
     {
         db.Users.Remove(new User(userId, sub, subKey));
         db.SaveChanges();
     }
 }
Beispiel #3
0
 public static bool DoesSubExist(string userId, string sub, string subKey)
 {
     using (BotContext db = new BotContext())
     {
         return(db.UsersSubscriptions.Any(
                    user => user.UserId == userId &&
                    user.Subscription == sub &&
                    user.SubscriptionKey == subKey));
     }
 }
 //Убирает пользователя
 public static void RemoveUser(string userId)
 {
     using (BotContext db = new BotContext())
     {
         db.UsersSubs.Remove(new UserSubCount(userId));
         var removedSubs = db.Users.Where(user => user.UserId == userId);
         db.Users.RemoveRange(removedSubs.ToArray());
         db.SaveChanges();
     }
 }
 //Получает количество подписок пользователя
 public static int GetUserSubs(string userId)
 {
     using (BotContext db = new BotContext())
     {
         UserSubCount user = db
                             .UsersSubs
                             .ToList()
                             .FirstOrDefault(user => user.UserID == userId);
         db.SaveChanges();
         return(user.Count);
     }
 }
 //добавляет нового пользователя
 public static void AddUser(string userId)
 {
     using (BotContext db = new BotContext())
     {
         var newUser = new UserSubCount(userId);
         if (db.UsersSubs.ToList().Exists(user => user == newUser))
         {
             return;
         }
         db.UsersSubs.Add(newUser);
         db.SaveChanges();
     }
 }
Beispiel #7
0
 //Получает количество подписок пользователя
 public static int GetUserSubCount(string userId)
 {
     using (BotContext db = new BotContext())
     {
         db.SaveChanges();
         User user = db.Users.FirstOrDefault(user => user.UserId == userId);
         if (user == null)
         {
             throw new ArgumentException($"User {userId} doesn't exist");
         }
         return(user.SubCount);
     }
 }
Beispiel #8
0
 //добавляет нового пользователя
 public static void AddUser(string userId)
 {
     using (BotContext db = new BotContext())
     {
         if (db.Users.Any(user => user.UserId == userId))
         {
             throw new ArgumentException($"User {userId} already exists");
         }
         var newUser = new User(userId);
         db.Users.Add(newUser);
         db.SaveChanges();
     }
 }
 //получает список подписок пользователя
 public static List <string> GetUserSubList(string userId)
 {
     using (BotContext db = new BotContext())
     {
         db.SaveChanges();
         return(db
                .Users
                .ToList()
                .Where(user => user.UserId == userId)
                .Select(user => user.Subscription + " " + user.SubscriptionKey)
                .ToList());
     }
 }
 //добавляет пост в список прочитанных для данного пользователя
 public static bool AddReadPost(string userId, string postToken)
 {
     using (BotContext db = new BotContext())
     {
         var post = new UserReadPosts(userId, postToken);
         if (db.UsersPosts.ToList().Exists(a => a.UserId == userId && a.PostToken == postToken))
         {
             return(false);
         }
         db.UsersPosts.Add(post);
         db.SaveChanges();
     }
     return(true);
 }
Beispiel #11
0
 //Убирает пользователя
 public static void RemoveUser(string userId)
 {
     using (BotContext db = new BotContext())
     {
         var user = db.Users.Where(x => x.UserId == userId).First();
         if (user == null)
         {
             throw new ArgumentException($"User {userId} doesn't exist");
         }
         db.Users.Remove(user);
         db.UsersSubscriptions.RemoveRange(db.UsersSubscriptions.Where(x => x.UserId == userId));
         db.UsersSeenContent.RemoveRange(db.UsersSeenContent.Where(x => x.UserId == userId));
         db.SaveChanges();
     }
 }
Beispiel #12
0
 //получает список подписок пользователя
 internal static IEnumerable <SingleSub> GetUserSubs(string userId)
 {
     using (BotContext db = new BotContext())
     {
         db.SaveChanges();
         User user = db.Users.FirstOrDefault(user => user.UserId == userId);
         if (user == null)
         {
             throw new ArgumentException($"User {userId} doesn't exist");
         }
         return(db
                .UsersSubscriptions
                .Where(sub => sub.UserId == userId)
                .Select(sub => new SingleSub(sub.Subscription, sub.SubscriptionKey)));
     }
 }
Beispiel #13
0
 //циклично сдвигает приоритет подписок пользователя
 public static void ShiftPriority(string userId)
 {
     using (BotContext db = new BotContext())
     {
         if (!db.Users.Any(x => x.UserId == userId))
         {
             throw new ArgumentException($"User {userId} doesn't exist");
         }
         var subs = db.UsersSubscriptions.Where(x => x.UserId == userId).ToList();
         foreach (var sub in subs)
         {
             sub.Priority = (sub.Priority + 1) % subs.Count();
         }
         db.SaveChanges();
     }
 }
Beispiel #14
0
 //добавляет новую подписку
 public static void AddSub(string userId, string sub, string subKey)
 {
     using (BotContext db = new BotContext())
     {
         if (db.UsersSubscriptions.Any(
                 user => user.UserId == userId &&
                 user.Subscription == sub &&
                 user.SubscriptionKey == subKey))
         {
             throw new ArgumentException("Subscription already exists");
         }
         db.UsersSubscriptions.Add(new UserSubscription(userId, sub, subKey,
                                                        GetUserSubCount(userId)));
         db.SaveChanges();
     }
 }
Beispiel #15
0
 //добавляет контент в список прочитанных для данного пользователя
 public static void AddSeenContent(string userId, string contentId)
 {
     using (BotContext db = new BotContext())
     {
         if (!db.Users.Any(x => x.UserId == userId))
         {
             throw new ArgumentException($"User {userId} doesn't exist");
         }
         if (HaveUserSeenContent(userId, contentId))
         {
             return;
         }
         db.UsersSeenContent.Add(new UserSeenContent(userId, contentId));
         db.SaveChanges();
     }
 }
 //добавляет новую подписку
 public static void AddSub(string userId, string sub, string subKey)
 {
     using (BotContext db = new BotContext())
     {
         if (db.Users
             .ToList()
             .Exists
             (
                 user => user.UserId == userId &&
                 user.Subscription == sub &&
                 user.SubscriptionKey == subKey
             ))
         {
             return;
         }
         db.Users.Add(new User(userId, sub, subKey));
         db.SaveChanges();
     }
 }
Beispiel #17
0
 //убирает подписку
 public static void RemoveSub(string userId, string sub, string subKey)
 {
     using (BotContext db = new BotContext())
     {
         var deletedSub = db.UsersSubscriptions.Where(x =>
                                                      x.UserId == userId && x.Subscription == sub && x.SubscriptionKey == subKey).FirstOrDefault();
         if (deletedSub == null)
         {
             throw new ArgumentException("Subscription doesn't exists");
         }
         db.UsersSubscriptions.Remove(deletedSub);
         foreach (var c in db.UsersSubscriptions
                  .Where(x => x.UserId == userId &&
                         x.Priority > deletedSub.Priority))
         {
             c.Priority--;
         }
         db.SaveChanges();
     }
 }
Beispiel #18
0
 //получает нужную подписку
 public static SingleSub GetSubWithZeroPriority(string userId)
 {
     using (BotContext db = new BotContext())
     {
         db.SaveChanges();
         User user = db.Users.FirstOrDefault(user => user.UserId == userId);
         if (user == null)
         {
             throw new ArgumentException($"User {userId} doesn't exist");
         }
         var sub = db
                   .UsersSubscriptions
                   .FirstOrDefault(sub => sub.UserId == userId && sub.Priority == 0);
         if (sub == null)
         {
             return(null);
         }
         return(new SingleSub(sub));
     }
 }