/// <summary>
        /// If simple, see in Btnhowuse_Click
        /// (it read, check send to server Contact object)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnEdit_Click(object sender, RoutedEventArgs e)
        {
            if (contactListBox.SelectedIndex == -1)
            {
                return;
            }

            if (contactListBox.SelectedIndex == viewModel.Contacts.Count() - 1)
            {
                MessageBox.Show("Please, click button HOW USE and read how add contact, thanks)))", "Instruction", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else
            {
                if (viewModel.SelectedContact.Telephone != telephone)
                {
                    MessageBox.Show("Sorry! You can't change telephone!");
                }
                else
                {
                    BitmapImage bitmapImage = viewModel.SelectedContact.ImageBitmap;

                    ContactByDB editcontact = new ContactByDB()
                    {
                        Name         = viewModel.SelectedContact.Name,
                        SurName      = viewModel.SelectedContact.Surname,
                        Age          = viewModel.SelectedContact.Age,
                        City         = viewModel.SelectedContact.City,
                        Telephone    = viewModel.SelectedContact.Telephone,
                        ImageContact = ConvertBitmapToByteArray(bitmapImage)
                    };

                    var client = new TcpClient(Dns.GetHostName(), port);
                    using (var stream = client.GetStream())
                    {
                        var serializer_comand = new XmlSerializer(typeof(string));
                        serializer_comand.Serialize(stream, "edit");
                    }

                    client = new TcpClient(Dns.GetHostName(), port);
                    using (var stream = client.GetStream())
                    {
                        var serializer = new XmlSerializer(typeof(ContactByDB));

                        serializer.Serialize(stream, editcontact);
                    }

                    MessageBox.Show("Contact edit!", "Info", MessageBoxButton.OK, MessageBoxImage.Information);
                    foredit = false;
                }
            }

            Refresh();
        }
        /// <summary>
        /// If simple, see in Btnhowuse_Click
        /// (it read and del from list on UI, check send to server Contact object)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnDel_Click(object sender, RoutedEventArgs e)
        {
            if (contactListBox.SelectedIndex == viewModel.Contacts.Count() - 1)
            {
                MessageBox.Show("You can't delete it becouse it doesn't contact" +
                                "(it element use for create new contact(click HOW USE for more))", "Info",
                                MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
            else
            {
                if (contactListBox.SelectedIndex == -1)
                {
                    return;
                }

                ContactByDB removecontact = new ContactByDB()
                {
                    Name         = viewModel.SelectedContact.Name,
                    SurName      = viewModel.SelectedContact.Surname,
                    Age          = viewModel.SelectedContact.Age,
                    City         = viewModel.SelectedContact.City,
                    Telephone    = viewModel.SelectedContact.Telephone,
                    ImageContact = viewModel.SelectedContact.ImageContact
                };

                var client = new TcpClient(Dns.GetHostName(), port);
                using (var stream = client.GetStream())
                {
                    var serializer_comand = new XmlSerializer(typeof(string));
                    serializer_comand.Serialize(stream, "delete");
                }

                client = new TcpClient(Dns.GetHostName(), port);
                using (var stream = client.GetStream())
                {
                    var serializer = new XmlSerializer(typeof(ContactByDB));

                    serializer.Serialize(stream, removecontact);
                }

                viewModel.RemoveContact(viewModel.SelectedContact);
            }

            foredit = false;
            Refresh();
        }
        /// <summary>
        /// If simple, see in Btnhowuse_Click
        /// (it read, check send to server Contact object)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnAdd_Click(object sender, RoutedEventArgs e)
        {
            if (contactListBox.SelectedIndex == -1)
            {
                return;
            }

            if (contactListBox.SelectedIndex != viewModel.Contacts.Count() - 1)
            {
                MessageBox.Show("Please, click button HOW USE and read how add contact, thanks)))", "Instruction", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else
            {
                if (viewModel.SelectedContact.Name == "" || viewModel.SelectedContact.Surname == "" || viewModel.SelectedContact.Telephone == "")
                {
                    MessageBox.Show("FullName and Telephone is important part! Please fill it!");
                }
                else
                {
                    Contact isexist;

                    int         age         = viewModel.SelectedContact.Age;
                    string      city        = viewModel.SelectedContact.City;
                    BitmapImage bitmapImage = viewModel.SelectedContact.ImageBitmap;
                    string      telephone   = viewModel.SelectedContact.Telephone;

                    viewModel.SelectedContact.Telephone = "";

                    try
                    {
                        isexist = viewModel.Contacts.FirstOrDefault(a => a.Telephone == telephone);
                    }
                    catch (Exception)
                    {
                        isexist = null;
                        viewModel.SelectedContact = new Contact()
                        {
                            Name = "Name", Age = 0, Surname = "LastName", City = "City", ImageBitmap = default_image, Telephone = "+1.. (telephone)"
                        };
                    }

                    if (isexist != null)
                    {
                        MessageBox.Show("This phone alredy used!");
                        viewModel.SelectedContact = new Contact()
                        {
                            Name = "Name", Age = 0, Surname = "LastName", City = "City", ImageBitmap = default_image, Telephone = "+1.. (telephone)"
                        };
                    }
                    else
                    {
                        viewModel.SelectedContact.Telephone = telephone;

                        if (age.ToString() == "")
                        {
                            age = 3;
                        }

                        if (city == "")
                        {
                            city = "none";
                        }

                        if (bitmapImage is null)
                        {
                            bitmapImage = default_image;
                        }

                        ContactByDB newcontact = new ContactByDB
                        {
                            Name      = viewModel.SelectedContact.Name,
                            SurName   = viewModel.SelectedContact.Surname,
                            Telephone = viewModel.SelectedContact.Telephone,

                            Age          = age,
                            City         = city,
                            ImageContact = ConvertBitmapToByteArray(bitmapImage),
                        };

                        var client = new TcpClient(Dns.GetHostName(), port);
                        using (var stream = client.GetStream())
                        {
                            var serializer_comand = new XmlSerializer(typeof(string));
                            serializer_comand.Serialize(stream, "add");
                        }

                        client = new TcpClient(Dns.GetHostName(), port);
                        using (var stream = client.GetStream())
                        {
                            var serializer = new XmlSerializer(typeof(ContactByDB));
                            serializer.Serialize(stream, newcontact);
                        }

                        viewModel.AddContact(new Contact()
                        {
                            Name = "Name", Age = 0, Surname = "LastName", City = "City", ImageBitmap = default_image, Telephone = "+1.. (telephone)"
                        });
                        foredit = false;
                        Refresh();
                    }
                }
            }
        }