protected override void OnApplyButton(object sender, RoutedEventArgs rea)
        {
            try
            {
                RestoreFieldsBordersColor(mainLayout);
                HidePopupMessage(mainLayout);
                if (IsThereEmptyFields(mainLayout, 3))
                {
                    MakeEmptyFieldsRed(mainLayout, 3);
                    ShowPopupMessage("Не все поля заполнены", mainLayout);
                    return;
                }

                var newDevice = new Device()
                {
                    SerialNumber    = int.Parse(serialNumberBox.Text),
                    InventoryNumber = inventoryNumberBox.Text,
                    Type            = deviceTypeBox.SelectedItem as DeviceType,
                    NetworkName     = networkNameBox.Text
                };

                var newConfiguration = new DeviceConfiguration()
                {
                    DeviceSerialNumber = int.Parse(serialNumberBox.Text),
                    IP              = ipAddressBox.SelectedItem as IPAddress,
                    AccountName     = accoutNameBox.Text,
                    AccountPassword = passwordBox.Text
                };

                var newHistoryNote = new History()
                {
                    DeviceSerialNumber = long.Parse(serialNumberBox.Text),
                    Corps   = corpsBox.SelectedItem as Corps,
                    Cabinet = cabinetBox.SelectedItem as Cabinet,
                    Status  = (bool)statusBox.IsChecked ?
                              Status.GetStatusByName("Убрано на склад") :
                              Status.GetStatusByName("Перемещено"),
                    ChangeTimeDateTime = DateTime.Now
                };

                Device.Edit(
                    SelectedDevice,
                    newDevice
                    );

                DeviceConfiguration.Edit(
                    DeviceConfiguration.GetDeviceConfiguration(SelectedDevice),
                    newConfiguration
                    );

                History.Write(
                    newHistoryNote
                    );
            }
            catch (FormatException)
            {
                MakeRedBorders(serialNumberBox);
                ShowPopupMessage("Серийный номер должен быть числом", mainLayout);
            }
            catch (DataAlreadyExistException)
            {
            }
            catch (ConnectionLostException e) { ShowPopupMessage(e.Message, mainLayout); }
            catch (NoSuchDataException) { }
            finally
            {
                CloseThisWindow();
                parentWindow.UpdateDevicesGrid();
            }
        }