예제 #1
0
        public MainWindow()
        {
            InitializeComponent();
            A = new DispatcherTimer {
                Interval = TimeSpan.FromSeconds(2)
            };
            A.Tick += delegate
            {
                try
                {
                    var chatClient = new ChatServiceClient();
                    var LiN        = false;

                    var NAME = (names.SelectedIndex != -1 && names.SelectedIndex < names.Items.Count)
            ? (string)((ListBoxItem)names.Items[names.SelectedIndex]).Content
            : "";

                    logins.Items.Clear();
                    names.Items.Clear();

                    var l = new string[1];
                    var n = new string[1];
                    chatClient.Spiski(ref l, ref n);
                    foreach (var i in l)
                    {
                        logins.Items.Add(new ListBoxItem {
                            Content = i
                        });
                    }
                    foreach (var i in n)
                    {
                        names.Items.Add(new ListBoxItem {
                            Content = i
                        });
                    }

                    var obn = false;
                    if (NAME != "" && n.Contains(NAME))
                    {
                        var num = -1;
                        n.First(i =>
                        {
                            num++;
                            return(i == NAME);
                        });
                        names.SelectedIndex = num;
                    }
                    if (names.SelectedIndex != -1 && names.SelectedIndex < names.Items.Count)
                    {
                        foreach (
                            var i in
                            chatClient.ClickSpisok((string)((ListBoxItem)names.Items[names.SelectedIndex]).Content,
                                                   pole.Text.Split('\n').Count()))
                        {
                            pole.Text += i + "\n";
                        }
                        obn = true;
                    }
                    pole.IsEnabled = vvod.IsEnabled = enter.IsEnabled = obn;
                    os.Visibility  = Visibility.Hidden;
                }
                catch
                {
                    os.Visibility = Visibility.Visible;
                    A.Stop();
                }
            };
            A.Start();
            Closing += delegate { loginExit_Click(null, null); };
        }