private async Task CrudButtonBarOnCrudButtonBarClicked(object sender, CrudButtonBarEventArgs args)
        {
            switch (args.Action)
            {
            case CrudButtonBarEventArgs.ButtonAction.Save:

                if (!ValidateConfigurationValues())
                {
                    return;
                }

                var saved = await _configurationViewModel.SaveConfiguration(new ConfigurationDto
                {
                    Host = hostTextBox.Text,
                    Port = (int)portUpDown.Value
                });

                if (saved)
                {
                    _configurationViewModel.LoadConfiguration();
                }

                break;

            case CrudButtonBarEventArgs.ButtonAction.Cancel:
                SendToBack();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        private async Task CrudButtonBarOnCrudButtonBarClicked(object sender, CrudButtonBarEventArgs args)
        {
            switch (args.Action)
            {
            case CrudButtonBarEventArgs.ButtonAction.Save:

                if (!ValidateProductFields())
                {
                    return;
                }

                CrudContainerSaveRequested?.Invoke(sender, new CrudContainerEventArgs
                {
                    Product = new ProductDto
                    {
                        Name        = productCrud.NameText,
                        Description = productCrud.DescriptionText,
                        Price       = productCrud.PriceValue,
                        Quantity    = productCrud.QuantityValue
                    }
                });

                break;

            case CrudButtonBarEventArgs.ButtonAction.Cancel:
                ResetCrud();
                SendToBack();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }