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)); }