Beispiel #1
0
        public async Task <bool> UnSubsribeAsync(Subscribe sub)
        {
            var topic = await _topicServce.GetTopicAsync(sub.TopicId);

            if (topic.IsNull())
            {
                return(false);
            }

            var searchOptions = new SubscribeSearchOptions {
                ServiceId = sub.ServiceId, SubscriberId = sub.SubscriberId, TopicId = sub.TopicId, TargetId = sub.TargetId
            };
            var existSubscribes = await Search(searchOptions, null);

            if (existSubscribes.IsNull() || existSubscribes.Count() <= 0)
            {
                return(false);
            }

            try
            {
                return(SubscribeDb.DeleteById(existSubscribes.First().Id.ToGuid()));
            }
            catch
            {
                return(false);
            }
        }
Beispiel #2
0
        public async Task <bool> SubscribeAsync(Subscribe sub)
        {
            if (!sub.IsValidate)
            {
                return(false);
            }

            var topic = await _topicServce.GetTopicAsync(sub.TopicId);

            if (topic.IsNull())
            {
                return(false);
            }

            //再判断下是否已经订阅过

            var searchOptions = new SubscribeSearchOptions {
                ServiceId = sub.ServiceId, SubscriberId = sub.SubscriberId, TopicId = sub.TopicId, TargetId = sub.TargetId
            };
            var existSubscribes = await Search(searchOptions, null);

            if (!existSubscribes.IsNull() && existSubscribes.Count > 0)
            {
                return(false);
            }

            sub.Id = Guid.NewGuid().ToString();
            return(SubscribeDb.Insert(sub));
        }