private async void RetrieveZookeeperBrokerTopics() { if (string.IsNullOrEmpty(ZookeeperHostServer)) { CurrentStatus = $"Zookeeper hosts is empty!"; MessageBox.Show("Please specify at least one zookeeper server!"); settings_valid = false; return; } if (!ValidateZookeeperSettings()) { CurrentStatus = $"Zookeeper hosts specified is not valid!"; settings_valid = false; MessageBox.Show("Zookeeper hosts specified is invalid! \r\n Please see format indicated in wartermark text!", "Zookeeper host is invalid"); return; } if (TopicItems.Any()) { TopicItems.Clear(); } using (IZookeeperClient client = new ZookeeperClient(new ZookeeperClientOptions(ZookeeperHostServer) { BasePath = "/", //default value ConnectionTimeout = TimeSpan.FromSeconds(10), //default value SessionTimeout = TimeSpan.FromSeconds(20), //default value OperatingTimeout = TimeSpan.FromSeconds(60), //default value ReadOnly = false, //default value SessionId = 0, //default value SessionPasswd = null, //default value EnableEphemeralNodeRestore = true //default value })) { CurrentStatus = $"Retrieving data from Zookeeper server {ZookeeperHostServer}."; try { var childNodes = await client.GetChildrenAsync("/brokers/topics"); if (childNodes.Any()) { Dispatcher.CurrentDispatcher.Invoke(() => { TopicItems.AddRange(childNodes); CanSelectTopic = true; CurrentStatus = $"Zookeeper topics has been fetched successfully."; }); } } catch (Exception ex) { settings_valid = false; TopicItems.Clear(); CurrentStatus = $"Error occurs when communicating with Zookeeper '{ZookeeperHostServer}'. {ex.Message}"; } finally { client.Dispose(); } } }
private void StartConsumeMessages() { var canStart = !string.IsNullOrEmpty(ZookeeperHostServer) && !string.IsNullOrEmpty(KafkaHostServer) && TopicItems.Any() && !string.IsNullOrEmpty(SelectedTopic); if (!canStart) { MessageBox.Show("Can't start consumer, please check zookeeper host, kafka host and selected topic!"); return; } ReceivedMessages.Clear(); Tables.Clear(); _cancelConsume = new CancellationTokenSource(); CurrentStatus = $"Consuming messages from topic:{SelectedTopic} ..."; DEKafkaMessageViewer.Common.KafkaConsumer consumer = new Common.KafkaConsumer(); var groupId = Guid.NewGuid().ToString(); consumer.ConsumeAsync(KafkaHostServer, SelectedTopic, groupId, _cancelConsume, (resultMsg) => { var msgBody = resultMsg.Message; EnableStop = true; OnMessageConsumed(msgBody); }); }
private async void ExecuteSubscriptionCommand(int id) { TopicItem value = TopicItems.First(x => x.Id == id); if (value.IsSubscribed) { UserContentProvider user = new UserContentProvider(); DiscoverSubscribeResult reuslt = await user.Unsubscribe(id, GlobalValue.CurrentUserContext.UserId, GlobalValue.CurrentUserContext.MobileToken); if (reuslt.Error == null || reuslt.Error.Count == 0) { value.IsSubscribed = false; } } else { UserContentProvider user = new UserContentProvider(); DiscoverSubscribeResult reuslt = await user.Subscribe(id, GlobalValue.CurrentUserContext.UserId, GlobalValue.CurrentUserContext.MobileToken); if (reuslt.Error == null || reuslt.Error.Count == 0) { value.IsSubscribed = true; } } }
private async Task QueryTopics() { if (page == 1) { if (TopicItems == null) { TopicItems = new ObservableCollection <TopicItem>(); } else { TopicItems.Clear(); } } UserContentProvider user = new UserContentProvider(); List <DiscoverResult> reuslt = await user.QueryTopic(TypeSelectedItem.Type, page, GlobalValue.CurrentUserContext.UserId, GlobalValue.CurrentUserContext.MobileToken); reuslt.ForEach(x => TopicItems.Add(ConvertToTopicItem(x))); page++; }
private void doData(string JSON, string searchValue) { int n; bool isNumeric = int.TryParse(searchValue, out n); if (searchValue == "0" || searchValue == null) { var popular = JsonConvert.DeserializeObject <ZModelTopicsLandingpage>(JSON).PopularTopics; foreach (var item in popular) { PopularTopics.Add(item); } } else if (searchValue != null && !isNumeric) { var popular = JsonConvert.DeserializeObject <List <ZModelTopic> >(JSON); foreach (var item in popular) { PopularTopics.Add(item); } if (PopularTopics.Count < 1) { PopularTopics.Add(new ZModelTopic() { name = "Keine Themen gefunden." }); } } else { SearchedTopic = JsonConvert.DeserializeObject <ZModelTopicItems>(JSONdata).Topic; var items = JsonConvert.DeserializeObject <ZModelTopicItems>(JSONdata).Items; foreach (var item in items) { TopicItems.Add(item); } } }