Beispiel #1
0
        public Thread longThread;                      //Поток, постоянно обновляющий данные о картах и триггерах
        #endregion

        /// <summary>
        /// Событие для уведомления основного потока приложения об изменениях в потоке получения информации от сервера
        /// </summary>
        /// <param name="message">Структура указывающее тип события и коментарий к нему</param>
        public void Update(UpdateInfoMessage msg)
        {
            if (onUpdate != null)
            {
                onUpdate(msg);
            }
        }
Beispiel #2
0
 /// <summary>
 /// Событие для уведомления основного потока приложения об изменениях в потоке получения информации от сервера
 /// </summary>
 /// <param name="message">Структура указывающее тип события и коментарий к нему</param>
 public void Update(UpdateInfoMessage msg)
 {
     if (onUpdate!=null)
     {
         onUpdate(msg);
     }
 }
Beispiel #3
0
        private void update_info(UpdateInfoMessage info)
        {
            switch (info.status)
            {
                case "OK":
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        Status.Content = "Подготовка к отображению карты";
                        LoadMaps();
                        this.Cursor = Cursors.Arrow;
                        Status.Content = "online";
                    }));
                    break;
                case "START":
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        Status.Content = "Подключение к серверу";
                    }));
                    break;
                case "LOGIN":
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        Status.Content = "Авторизация на сервере";
                    }));
                    break;
                case "HOSTS":
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        Status.Content = "Получение списка узлов сети...";
                    }));
                    break;
                case "TRIGGERS":
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        Status.Content = "Получение списка триггеров";
                        trHosts.ItemsSource = zApi.hostgroups;
                    }));
                    break;
                case "MAPS":
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        Status.Content = "Инициализация карты сети";
                        //listBox1.ItemsSource = zApi.triggers.collection;
                        //foreach (Zabbix.Trigger tr in zApi.triggers)
                        //{
                        //    vTriggers.Items.Add(tr);
                        //}
                        vTriggers.ItemsSource = zApi.triggers;
                    }));
                    break;
                case "DEBUG":
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        Status.Content = "Сохранение отладочной информации";
                    }));
                    break;
                case "REFRESH":
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        Status.Content = "refresh#" + info.message;
                        //this.Title = zApi.triggers.result[0].value;
                        string actMap = ActiveMap.name;
                        LoadMaps();
                        foreach (TreeViewItem item in trMaps.Items)
                        {
                            if (item.Header.ToString() == actMap)
                            {
                                ActiveMap = (Map)item.Tag;
                                item.IsSelected = true;
                            }
                        }
                        ShowMap(ActiveMap);
                    }));
                    break;
                case "REFRESH_ERROR":
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        errors.Content = info.message + " errors";
                        Status.Content = "При получении информации произошла ошибка";
                    }));
                    break;
                case "INFO":
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        Index.Content = info.message; ;
                    }));
                    break;

                default:
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
                    {
                        Index.Content = info.status;
                        errors.Content = info.message;
                    }));
                    break;

            }
            this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
            {
                //txtLog.Text += "[" + DateTime.Now.ToString() + "] "+info.sender.ToString()+"\n\t" + info.status + ": " + info.message + "\n\n";
                vLog.Items.Insert(0,new
                        {
                            time = DateTime.Now.ToString(),
                            sender = info.sender.ToString(),
                            status = info.status,
                            message = info.message
                        });
            }));

            //if (message == "OK")
            //{
            //    this.Dispatcher.Invoke(DispatcherPriority.Normal, new simplefunc(() =>
            //    {
            //        LoadMaps();
            //        this.Cursor = Cursors.Arrow;
            //        trHosts.ItemsSource = zApi.hostgroups.collection;
            //        listBox1.ItemsSource = zApi.triggers.collection;
            //    }));
            //}
            //else
            //{

            //}
        }
Beispiel #4
0
 private void updateInfo(UpdateInfoMessage info)
 {
     if (!this.IsDisposed)
     {
         switch (info.status)
         {
             case "OK":
                 this.Invoke(new simplefunc(() =>
                 {
                     tssMessage.Text = info.message;
                     this.Cursor = Cursors.Arrow;
                 }));
                 break;
             case "DEBUG":
                 this.Invoke(new simplefunc(() =>
                 {
                     Debug(info.message);
                 }));
                 break;
             case "TRIGGERS":
                 this.Invoke(new simplefunc(() =>
                 {
                     long ticks = long.Parse(info.message);
                     double ms = ticks / 10000;
                     Debug("Triggers fetched in: " + ms.ToString() + "ms");
                     updateAlerts();
                 }));
                 break;
             case "HOSTS":
                 this.Invoke(new simplefunc(() =>
                 {
                     long ticks = long.Parse(info.message);
                     double ms = ticks / 10000;
                     Debug("Hosts fetched in: " + ms.ToString() + "ms");
                 }));
                 break;
             case "REFRESH":
                 break;
             default:
                 this.Invoke(new simplefunc(() =>
                 {
                     tssMessage.Text = info.message;
                     Debug(info.message);
                 }));
                 break;
         }
     }
 }