예제 #1
0
        /// <summary>
        /// 移除订阅者
        /// </summary>
        /// <param name="subscriber">订阅者对象</param>
        /// <returns>结果</returns>
        public async Task<bool> RemoveSubscriber(Subscriber subscriber)
        {
            //判断订阅者是否位于订阅者列表中
            if (!instance.SubscriberList.Contains(subscriber))
            {
                return false;
            }

            Topic removedTopic = GetTopicByName(subscriber.TopicName);

            //订阅者列表更新
            instance.SubscriberList.Remove(subscriber);

            //数据库更新
            SubscriberController subscriberController = new SubscriberController(db.Subscribers);
            subscriberController.SetSubscriber(subscriber);
            subscriberController.DeleteSubscriber();

            //话题列表更新
            instance.TopicList.Remove(removedTopic);

            //数据库更新
            TopicController topicController = await GetTopicController(removedTopic);
            topicController.DeleteTopic();

            //向服务器请求删除订阅者
            client.RemoveSubscriber(subscriber);

            return true;
        }
예제 #2
0
        /// <summary>
        /// 通过订阅者位置移除订阅者
        /// </summary>
        /// <param name="position">订阅者位置</param>
        /// <returns>结果</returns>
        public async Task<bool> RemoveSubsriberAt(int position)
        {
            if (position < 0 || position > instance.SubscriberList.Count)
            {
                return false;
            }

            Subscriber subscriber = instance.SubscriberList[position];
            Topic removedTopic = GetTopicByName(subscriber.TopicName);

            //订阅者列表更新
            instance.SubscriberList.Remove(subscriber);

            //数据库更新
            SubscriberController subscriberController = new SubscriberController(db.Subscribers);
            subscriberController.SetSubscriber(subscriber);
            subscriberController.DeleteSubscriber();

            //话题列表更新
            instance.TopicList.Remove(removedTopic);

            //数据库更新
            TopicController topicController = await GetTopicController(removedTopic);
            topicController.DeleteTopic();

            //向服务器请求删除订阅者
            client.RemoveSubscriber(subscriber);

            //移除成功返回真
            return true;
        }
예제 #3
0
        /// <summary>
        /// 通过话题位置移除话题
        /// </summary>
        /// <param name="position">话题位置</param>
        /// <returns>结果</returns>
        public async Task<bool> RemoveTopicAt(int position)
        {
            if (position < 0 || position > instance.TopicList.Count)
            {
                return false;
            }

            Topic topic = instance.TopicList[position];
            topic.IsArchived = true;

            //数据库更新
            TopicController topicController = await GetTopicController(topic);
            topicController.DeleteTopic();

            //话题列表更新
            instance.TopicList.Remove(topic);


            //服务器更新
            client.RemoveTopic(topic);

            return true;
        }