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