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);
            });
        }
Esempio n. 3
0
        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;
                }
            }
        }
Esempio n. 4
0
        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++;
        }
Esempio n. 5
0
        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);
                }
            }
        }