private void AddReconfigureAutonumberButtonToAutonumberFieldsGrid()
        {
            this.AddCustomGridFunction(new CustomGridFunction("RECONFIGUREAUTONUMBER", "Reconfigure Selected", (g) =>
            {
                //okay need to get the selected record type
                //and load the new autonumber dialog

                var selectedRows = g.SelectedRows;
                if (selectedRows.Count() != 1)
                {
                    ApplicationController.UserMessage("Please Select 1 Row To Reconfigure An Autonumber");
                }
                else
                {
                    var selectedFieldName   = selectedRows.First().GetStringFieldFieldViewModel(nameof(AutonumberNavigator.AutonumberField.SchemaName)).Value;
                    var selectedFieldFormat = selectedRows.First().GetStringFieldFieldViewModel(nameof(AutonumberNavigator.AutonumberField.Format)).Value;

                    var parentForm = g.ParentForm;
                    if (parentForm == null)
                    {
                        throw new NullReferenceException($"Error {nameof(DynamicGridViewModel.ParentForm)} is Null On The {nameof(DynamicGridViewModel)}");
                    }

                    var recordType = parentForm.GetRecordTypeFieldViewModel(nameof(AutonumberNavigator.RecordType));
                    if (recordType.Value == null)
                    {
                        throw new NullReferenceException($"Error {nameof(AutonumberNavigator.RecordType)} is Null");
                    }

                    var req = new ConfigureAutonumberRequest()
                    {
                        RecordType       = recordType.Value,
                        Field            = new RecordField(selectedFieldName, selectedFieldName),
                        AutonumberFormat = selectedFieldFormat
                    };
                    var dialogcontroller    = (IDialogController)ApplicationController.ResolveType(typeof(IDialogController));
                    Action closeChildDialog = () => { parentForm.ClearChildForms(); RefreshFieldGrid(parentForm); };
                    var dialog = new ConfigureAutonumberDialog(parentForm.RecordService.LookupService as XrmRecordService, dialogcontroller, req, closeChildDialog);
                    dialog.OverideCompletionScreenMethod = closeChildDialog;
                    parentForm.LoadChildForm(dialog);
                }
            }, (g) => { return(g?.GridRecords.Any() ?? false); }), typeof(AutonumberNavigator.AutonumberField));
        }
        private void AddNewAutonumberButtonToAutonumberFieldsGrid()
        {
            this.AddCustomGridFunction(new CustomGridFunction("ADDNEWAUTONUMBER", "Configure New", (g) =>
            {
                var parentForm = g.ParentForm;
                //okay need to get the selected record type
                //and load the new autonumber dialog
                ApplicationController.DoOnAsyncThread(() =>
                {
                    if (parentForm == null)
                    {
                        throw new NullReferenceException($"Error {nameof(DynamicGridViewModel.ParentForm)} is Null On The {nameof(DynamicGridViewModel)}");
                    }

                    try
                    {
                        parentForm.LoadingViewModel.IsLoading = true;

                        var recordType = parentForm.GetRecordTypeFieldViewModel(nameof(AutonumberNavigator.RecordType));
                        if (recordType.Value == null)
                        {
                            throw new NullReferenceException($"Error {nameof(AutonumberNavigator.RecordType)} is Null");
                        }

                        var req = new ConfigureAutonumberRequest()
                        {
                            RecordType = recordType.Value
                        };
                        var dialogcontroller    = (IDialogController)ApplicationController.ResolveType(typeof(IDialogController));
                        Action closeChildDialog = () => { parentForm.ClearChildForms(); RefreshFieldGrid(parentForm); };
                        var dialog = new ConfigureAutonumberDialog(parentForm.RecordService.LookupService as XrmRecordService, dialogcontroller, req, () => { parentForm.ClearChildForms(); RefreshFieldGrid(parentForm); });
                        dialog.OverideCompletionScreenMethod = closeChildDialog;
                        parentForm.LoadChildForm(dialog);
                    }
                    finally
                    {
                        parentForm.LoadingViewModel.IsLoading = false;
                    }
                });
            }, (g) => true), typeof(AutonumberNavigator.AutonumberField));
        }