private void Edit_Client(object sender, RoutedEventArgs e)
        {
            if ((sender as Button)?.DataContext is Account account)
            {
                var viewWindow = new ViewWindow(JsonConvert.DeserializeObject <Account>(JsonConvert.SerializeObject(account)));
                viewWindow.Owner = Application.Current.MainWindow;
                if (viewWindow.ShowDialog() == true)
                {
                    var accounts = (lvAccounts.ItemsSource as ObservableCollection <Account>);
                    var index    = accounts.IndexOf(account);
                    if (index >= 0)
                    {
                        if (string.IsNullOrEmpty(viewWindow.SurnameTextBox.Text) || string.IsNullOrEmpty(viewWindow.NameTextBox.Text) || string.IsNullOrEmpty(viewWindow.MiddleNameTextBox.Text))
                        {
                            MessageBox.Show("Заполните ФИО", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }
                        else if (string.IsNullOrEmpty(viewWindow.BirthdayTextBox.Text) || !Regex.IsMatch(viewWindow.BirthdayTextBox.Text, @"^\d{2,4}-\d{1,2}-\d{1,2}"))
                        {
                            MessageBox.Show("Заполните правильно дату рождения", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }
                        else if (string.IsNullOrEmpty(viewWindow.CountryTextBox.Text) || string.IsNullOrEmpty(viewWindow.RegionTextBox.Text) || string.IsNullOrEmpty(viewWindow.CityTextBox.Text) || string.IsNullOrEmpty(viewWindow.AddressTextBox.Text))
                        {
                            MessageBox.Show("Заполните страну, область, город, адрес проживания", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }
                        else if (string.IsNullOrEmpty(viewWindow.EmailTextBox.Text) || !Regex.IsMatch(viewWindow.EmailTextBox.Text, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"))
                        {
                            MessageBox.Show("Заполните правильно эл.почту", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }
                        else if (string.IsNullOrEmpty(viewWindow.PhoneTextBox.Text))
                        {
                            MessageBox.Show("Заполните основной номер телефона", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }
                        else if (string.IsNullOrEmpty(viewWindow.AsFoundTextBox.Text))
                        {
                            MessageBox.Show("Заполните откуда клиент узнал о нас", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }

                        Data.UpdateAccount(viewWindow.Account);
                        accounts.Remove(account);
                        accounts.Add(viewWindow.Account);
                        MessageBox.Show("Аккаунт был успешно изменен!", "Successfully", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                }
            }
        }
 public void ViewExecuted(object param)
 {
     try
     {
         ViewWindow viewWindow = new ViewWindow();
         viewWindow.DataContext = this.RvtSheetData;
         if ((bool)viewWindow.ShowDialog())
         {
             RefreshSelectedSheet();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Failed to open view items.\n" + ex.Message, "Open View Info", MessageBoxButton.OK, MessageBoxImage.Warning);
     }
 }