public void ExecuteDuplicateTelephone(object o = null)
        {
            if (o != null)
            {
                SelectedTelephone = (ShopTelephone)o;
            }

            logHandler.LogManagerLogging(Enums.LOGTYPE.INFO, "Dialog for Duplicate Telephone is opened.");
            try
            {
                ShopTelephone clone = (ShopTelephone)SelectedTelephone.Clone(); // Prototype pattern

                if (!Channel.Instance.telephoneProxy.AddTelephone(clone))
                {
                    MessageBox.Show("Error");
                }
                else
                {
                    if (o == null)
                    {
                        CommandHandler.Instance.AddAndExecute(DuplicateTelephoneCommand, SelectedTelephone);
                    }
                }
            }
            catch
            {
                logHandler.LogManagerLogging(Enums.LOGTYPE.FATAL, "Connection failed");
                MessageBox.Show("Connection failed", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            FilterTelephones();
        }
        public void ChangeTelephone()
        {
            CommandHandler.Instance.AddAndExecute(null, SelectedTelephone.Clone());


            logHandler.LogManagerLogging(Enums.LOGTYPE.INFO, "Dialog for Change Telephone is opened.");
            Window w = new ChangeTelephoneInfoView(SelectedTelephone);

            w.DataContext = new ChangeTelephoneInfoViewModel(w, SelectedTelephone);
            w.ShowDialog();
        }