private void BuildConnectionString(string connectionStringWithProvider) { var connectionSettings = DbSettingsService.ParseConnectionSettings(connectionStringWithProvider); var inputValuesWrapper = DbSettingsService.MapToValuesWrapper(connectionSettings); var dbSettingsForm = SubmitFormDisplayHelper.LoadSubmitFormByExtensionId(_context.ExtensionManager, ExtensionCatalog.DbSettings, inputValuesWrapper.CollectIncomeValues()); dbSettingsForm.WorkCallback = (step, list) => { var valuesWrapper = new DbSettingsFormValuesWrapper(list); connectionSettings = DbSettingsService.ExtractConnectionSettings(valuesWrapper); var dbSettingsService = new DbSettingsService(_context.UnityContainer); dbSettingsService.CheckConnectionSettings(connectionSettings); connectionStringWithProvider = DbSettingsService.ToConnectionStringWithProvider(connectionSettings); return(new Dictionary <string, object>()); }; if (DialogResult.OK == dbSettingsForm.ShowDialog(_form)) { var step2 = new RegistrationFormValuesWrapper.Step2 { Control5ConnectionString = connectionStringWithProvider }; _form.ApplyValues(step2.CollectIncomeValues()); } }
private void Step2(RegistrationFormValuesWrapper.Step2 valuesWrapper) { SecureString securePassword = null; if (!valuesWrapper.Control1LoginWithoutPassword) { securePassword = new SecureString(); foreach (char ch in valuesWrapper.Control2Password) { securePassword.AppendChar(ch); } securePassword.MakeReadOnly(); } AuthenticationSettings authenticationSettings; if (null != _decryptedKey) { authenticationSettings = new AuthenticationSettings(_identifier, _decryptedKey); } else if (null != _lightCertificate) { authenticationSettings = new AuthenticationSettings(_lightCertificate.Identifier, _lightCertificate.Thumbprint); } else { throw new InvalidOperationException(); } var entranceService = _context.UnityContainer.Resolve <IEntranceService>(); var connectionString = valuesWrapper.Control4ChangeConnectionString ? valuesWrapper.Control5ConnectionString : entranceService.SuggestConnectionString(_identifier); IConnectionSettings connectionSettings = null; if (null != connectionString) { connectionSettings = DbSettingsService.ParseConnectionSettings(connectionString); } authenticationSettings.ConnectionSettings = connectionSettings; entranceService.Register(authenticationSettings, securePassword); }
public Form GetForm(SessionContext context) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var dbSettingsService = new DbSettingsService(context.UnityContainer); var connectionSettings = context.Session.AuthenticationService.GetConnectionSettings(); DbSettingsFormValuesWrapper incomeValuesWrapper = null; if (null != connectionSettings) { incomeValuesWrapper = DbSettingsService.MapToValuesWrapper(connectionSettings); } var form = SubmitFormDisplayHelper.LoadSubmitFormByExtensionId(context.ExtensionManager, ExtensionCatalog.DbSettings, incomeValuesWrapper?.CollectIncomeValues()); form.Closed += (sender, args) => { if (DialogResult.OK == form.DialogResult) { EventBroker.OnDatabaseChanged(); } }; form.WorkCallback = (step, list) => { var valuesWrapper = new DbSettingsFormValuesWrapper(list); connectionSettings = DbSettingsService.ExtractConnectionSettings(valuesWrapper); dbSettingsService.CheckConnectionSettings(connectionSettings); context.Session.AuthenticationService.SetConnectionSettings(connectionSettings); return(new Dictionary <string, object>()); }; return(form); }