Пример #1
0
 static string TrySubscribe(long chatId, Group page)
 {
     if (page == null)
     {
         return("Ошибка параметра: данная страница не существует.");
     }
     else if (page.Type != VkNet.Enums.SafetyEnums.GroupType.Page)
     {
         return("Ошибка параметра: данная страница не является пабликом.");
     }
     else
     {
         Subscriber subscriberModel = AddOrReturnSubscriber(chatId);
         PublicPage pageModel       = AddOrReturnPublicPage(page);
         if (pageModel == null)
         {
             return("Ошибка системы: данные в данном паблике повреждены. Попробуйте подписаться после обновления последних двух постов.");
         }
         if (db.Subscriptions.Any(subscription => subscription.PublicPageId == pageModel.Id && subscription.SubscriberId == subscriberModel.Id))
         {
             return("Ошибка параметра: вы уже подписаны на данную страницу.");
         }
     }
     return(null);
 }
 private static List <Post> GetNewPosts(PublicPage page)
 {
     return(VkService.GetLastPosts(page.PageVkId, 50)
            .Where(i => i.Id > page.LastPostId)
            .OrderBy(o => o.Id)
            .ToList <Post>());
 }
Пример #3
0
        static PublicPage AddOrReturnPublicPage(Group group)
        {
            PublicPage page;

            if (!db.PublicPages.Any(o => o.PageVkId == group.Id))
            {
                long lastPostId = GetLastPostId(group.Id);
                if (lastPostId != Int64.MaxValue)
                {
                    page = new PublicPage()
                    {
                        PageVkId   = group.Id,
                        LastPostId = GetLastPostId(group.Id),
                        Name       = group.Name,
                        ScreenName = group.ScreenName
                    };
                    db.PublicPages.Add(page);
                    db.SaveChanges();
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                page = db.PublicPages.Where(o => o.PageVkId == group.Id).First();
            }
            return(page);
        }
Пример #4
0
        static string Unsubscribe(long chatId, Group page)
        {
            Subscriber   subscriberModel   = AddOrReturnSubscriber(chatId);
            PublicPage   pageModel         = AddOrReturnPublicPage(page);
            Subscription subscriptionModel = db.Subscriptions.Single(subscription => subscription.PublicPageId == pageModel.Id);

            subscriberModel.Subscriptions.Remove(subscriptionModel);
            db.SaveChanges();
            return("Вы успешно отписались от '" + page.Name + "'.");
        }
Пример #5
0
        static string Subscribe(long chatId, Group page)
        {
            Subscriber subscriberModel = AddOrReturnSubscriber(chatId);
            PublicPage pageModel       = AddOrReturnPublicPage(page);

            subscriberModel.Subscriptions.Add(new Subscription {
                PublicPageId = pageModel.Id, SubscriberId = subscriberModel.Id
            });
            db.SaveChanges();
            return("Вы успешно подписались на '" + page.Name + "'.");
        }
        private static List <Subscriber> GetSubscribers(PublicPage page)
        {
            List <Subscriber> subscribers = new List <Subscriber>();

            List <Subscription> subscriptions = db.Subscriptions
                                                .Include(sub => sub.Subscriber)
                                                .Where(subscription => subscription.PublicPageId == page.Id)
                                                .ToList <Subscription>();

            foreach (var subscription in subscriptions)
            {
                subscribers.Add(subscription.Subscriber);
            }
            return(subscribers);
        }
Пример #7
0
        static string TryUnsubscribe(long chatId, Group page)
        {
            Subscriber subscriberModel = AddOrReturnSubscriber(chatId);
            PublicPage pageModel       = AddOrReturnPublicPage(page);

            if (pageModel == null)
            {
                return("Ошибка системы: данные в данном паблике повреждены. Попробуйте подписаться после обновления последних двух постов.");
            }
            if (!db.Subscriptions.Any(subscription => subscription.PublicPageId == pageModel.Id && subscription.SubscriberId == subscriberModel.Id))
            {
                return("Ошибка параметра: вы не подписаны на данную страницу.");
            }

            return(null);
        }