protected override void HandlerHardwareButtonOk_Click(object sender, EventArgs e)
        {
            Log.Debug(TAG, "HandlerHardwareButtonOk_Click");

            string errMsg = ReadView(hardwareId);

            if (!string.IsNullOrWhiteSpace(errMsg))
            {
                HardwareCardSubHeader.Text = errMsg;
                HardwareCardSubHeader.SetTextColor(Color.Red);
                Toast.MakeText(this, errMsg, ToastLength.Short).Show();
                return;
            }

            lock (DatabaseContext.DbLocker)
            {
                using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase))
                {
                    hardware.Name     = HardwareName.Text.Trim();
                    hardware.Address  = HardwareAddress.Text.Trim();
                    hardware.Password = HardwarePassword.Text.Trim();

                    hardware.AlarmSubscriber = HardwareAlarmSubscribing.Checked;
                    hardware.CommandsAllowed = HardwareCommandsAllowed.Checked;

                    db.Hardwares.Update(hardware);
                    db.SaveChanges();
                }
            }
            StartActivity(typeof(HardwaresListActivity));
        }
        private void ButtonDeleteHardware_Click(object sender, EventArgs e)
        {
            Log.Debug(TAG, "ButtonDeleteHardware_Click");

            HardwareCardHeader.Text = GetText(Resource.String.delete_hardware_card_title);

            HardwareCardSubHeader.Text = GetText(Resource.String.delete_hardware_card_sub_title);
            HardwareCardSubHeader.SetTextColor(Color.IndianRed);

            HardwareName.Enabled     = false;
            HardwareAddress.Enabled  = false;
            HardwarePassword.Enabled = false;

            HardwareAlarmSubscribing.Enabled = false;
            HardwareCommandsAllowed.Enabled  = false;

            HardwareCardButtonOk.Enabled = false;
            HardwareCardButtonOk.Text    = GetText(Resource.String.ok_mute_button_with_remove_hardware);

            buttonDeleteHardware.Enabled = false;
            buttonDeleteHardware.SetTextColor(Color.Gray);
            buttonDeleteHardware.Click -= ButtonDeleteHardware_Click;

            SystemSettingsHardware.Enabled = false;
            SystemSettingsHardware.SetTextColor(Color.Gray);
            SystemSettingsHardware.Click -= SystemSettingsHardware_Click;

            AppCompatTextView appCompatTextView = new AppCompatTextView(this)
            {
                Text = GetText(Resource.String.footer_text_with_remove_hardware), TextSize = 15
            };

            appCompatTextView.SetTextColor(Color.Red);
            appCompatTextView.SetWidth(3);
            HardwareFooterLayout.AddView(appCompatTextView);

            AppCompatButton ButtonConfirmDeleteHardware = new AppCompatButton(this)
            {
                Text = GetText(Resource.String.button_confirm_remove)
            };

            ButtonConfirmDeleteHardware.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent);
            ButtonConfirmDeleteHardware.SetTextColor(Color.DarkRed);
            ButtonConfirmDeleteHardware.Click += new EventHandler((sender, eventArg) =>
            {
                lock (DatabaseContext.DbLocker)
                {
                    using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase))
                    {
                        HardwareModel hardware = db.Hardwares.Find(hardwareId);
                        db.Hardwares.Remove(hardware);
                        db.SaveChanges();

                        StartActivity(typeof(HardwaresListActivity));
                    }
                }
            });
            HardwareFooterLayout.AddView(ButtonConfirmDeleteHardware);
        }