/// <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; }
/// <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; }
/// <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; }