public TopicViewModel(TopicDescription topicInstance, ServiceBusManager manager) { _manager = manager; Instance = topicInstance; Users = new TopicUsersViewModel(manager, topicInstance); Subscriptions = new ObservableCollection <SubscriptionDescription>(manager.GetSubscriptions(topicInstance)); }
private async Task CopyTopics(ProgressDialogController controller) { var topicsToUpdate = _fromManager.Topics.Where(a => _toManager.Topics.Select(b => b.Path).Contains(a.Path)).ToList(); foreach (var topic in topicsToUpdate) { controller.SetMessage(string.Format("Updating: {0}", topic.Path)); await Task.Run(() => { _toManager.UpdateTopic(topic); // Add missing subscription foreach (var subscription in _fromManager.GetSubscriptions(topic).Where(a => !_toManager.GetSubscriptions(topic).Select(b => b.Name).Contains(a.Name))) { _toManager.AddSubscription(subscription); } }); } var topicsToAdd = _fromManager.Topics.Except(_toManager.Topics, new LambdaComparer <TopicDescription>((a, b) => a.Path == b.Path, a => 1)).ToList(); foreach (var topic in topicsToAdd) { controller.SetMessage(string.Format("Adding: {0}", topic.Path)); await Task.Run(() => { _toManager.CreateTopic(topic); // Add missing subscription foreach (var subscription in _fromManager.GetSubscriptions(topic)) { _toManager.AddSubscription(subscription); } }); } }