// ReSharper disable once InconsistentNaming
        private void HydrateSettingsFromUI()
        {
            if (ConnectionDetail != null)
            {
                TxtOutput.AppendText("CRM Authentication Type Detected: " + ConnectionDetail.AuthType + Environment.NewLine);
                Settings.Domain          = GetUserDomain();
                Settings.Password        = ConnectionDetail.GetUserPassword();
                Settings.SupportsActions = ConnectionDetail.OrganizationMajorVersion >= Crm2013;
                Settings.UseCrmOnline    = ConnectionDetail.UseOnline;
                Settings.UserName        = ConnectionDetail.UserName;
                Settings.Url             = ConnectionDetail.GetUrlString();

                if (Settings.UseConnectionString &&
                    string.IsNullOrWhiteSpace(Settings.Password) &&
                    ConnectionDetail.NewAuthType != AuthenticationType.Certificate &&
                    ConnectionDetail.NewAuthType != AuthenticationType.ClientSecret &&
                    ConnectionDetail.NewAuthType != AuthenticationType.OAuth)
                {
                    // Fix for https://github.com/daryllabar/DLaB.Xrm.XrmToolBoxTools/issues/43
                    // Difficulties with Early Bound Generator #43

                    var askForPassword = new PasswordDialog(this);
                    Settings.Password = askForPassword.ShowDialog(this) == DialogResult.OK ? askForPassword.Password : "******";
                }
                if (ConnectionDetail.AuthType == AuthenticationProviderType.ActiveDirectory && string.IsNullOrWhiteSpace(Settings.UserName))
                {
                    Settings.UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                }
                if (string.IsNullOrWhiteSpace(Settings.ConnectionString))
                {
                    // Load any non-username/password situations via connection string #268
                    Settings.ConnectionString = ConnectionDetail.GetNonUserConnectionString();
                    if (!string.IsNullOrWhiteSpace(Settings.ConnectionString))
                    {
                        Settings.UseConnectionString = true;
                    }
                }
            }

            SettingsMap.PushChanges();
            Settings.RootPath = Path.GetDirectoryName(Path.GetFullPath(TxtSettingsPath.Text));
            if (SettingsMap.UseDeprecatedOptionSetNaming)
            {
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, @"DLaB.CrmSvcUtilExtensions.OptionSet.CodeWriterFilterService,DLaB.CrmSvcUtilExtensions");
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, string.Empty);
            }
            else
            {
                var defaultConfig = EarlyBoundGeneratorConfig.GetDefault();
                defaultConfig.CrmSvcUtilRelativeRootPath = Paths.PluginsPath;
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter).Value);
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService).Value);
            }
        }
Beispiel #2
0
        // ReSharper disable once InconsistentNaming
        private void HydrateSettingsFromUI()
        {
            if (ConnectionDetail != null)
            {
                TxtOutput.AppendText("CRM Authentication Type Detected: " + ConnectionDetail.AuthType + Environment.NewLine);
                Settings.AuthType            = ConnectionDetail.AuthType;
                Settings.Domain              = GetUserDomain();
                Settings.Password            = ConnectionDetail.GetUserPassword();
                Settings.SupportsActions     = ConnectionDetail.OrganizationMajorVersion >= Crm2013;
                Settings.UseConnectionString = Settings.UseConnectionString; // #151 || Settings.AuthType == AuthenticationProviderType.ActiveDirectory;
                Settings.UseCrmOnline        = ConnectionDetail.UseOnline;
                Settings.UserName            = ConnectionDetail.UserName;
                Settings.Url = GetUrlString();

                if (Settings.UseConnectionString && string.IsNullOrWhiteSpace(Settings.Password))
                {
                    // Fix for https://github.com/daryllabar/DLaB.Xrm.XrmToolBoxTools/issues/43
                    // Difficulties with Early Bound Generator #43

                    var askForPassowrd = new PasswordDialog(this);
                    Settings.Password = askForPassowrd.ShowDialog(this) == DialogResult.OK ? askForPassowrd.Password : "******";
                }
                if (ConnectionDetail.AuthType == AuthenticationProviderType.ActiveDirectory && string.IsNullOrWhiteSpace(Settings.UserName))
                {
                    Settings.UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                }
            }

            Settings.ActionOutPath = TxtActionPath.Text;
            Settings.EntityOutPath = TxtEntityPath.Text;
            Settings.RootPath      = Path.GetDirectoryName(Path.GetFullPath(TxtSettingsPath.Text));
            if (ChkUseDeprecatedOptionSetNaming.Checked)
            {
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, @"DLaB.CrmSvcUtilExtensions.OptionSet.CodeWriterFilterService,DLaB.CrmSvcUtilExtensions");
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, string.Empty);
            }
            else
            {
                var defaultConfig = EarlyBoundGeneratorConfig.GetDefault();
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter).Value);
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService).Value);
            }

            var validLanguageCode = int.TryParse(TxtLanguageCodeOverride.Text, out var languageCode);

            var extensions = Settings.ExtensionConfig;

            extensions.AddDebuggerNonUserCode            = ChkAddDebuggerNonUserCode.Checked;
            extensions.AddNewFilesToProject              = ChkAddFilesToProject.Checked;
            extensions.CreateOneFilePerAction            = ChkCreateOneActionFile.Checked;
            extensions.CreateOneFilePerEntity            = ChkCreateOneEntityFile.Checked;
            extensions.CreateOneFilePerOptionSet         = ChkCreateOneOptionSetFile.Checked;
            extensions.GenerateActionAttributeNameConsts = ChkGenerateActionAttributeNameConsts.Checked;
            extensions.GenerateAttributeNameConsts       = ChkGenerateAttributeNameConsts.Checked;
            extensions.GenerateAnonymousTypeConstructor  = ChkGenerateAnonymousTypeConstructor.Checked;
            extensions.GenerateEntityRelationships       = ChkGenerateEntityRelationships.Checked;
            extensions.GenerateEnumProperties            = ChkGenerateOptionSetEnums.Checked;
            extensions.InvalidCSharpNamePrefix           = TxtInvalidCSharpNamePrefix.Text;
            extensions.MakeReadonlyFieldsEditable        = ChkMakeReadonlyFieldsEditable.Checked;
            extensions.MakeResponseActionsEditable       = ChkEditableResponseActions.Checked;
            extensions.LocalOptionSetFormat              = TxtOptionSetFormat.Text;
            extensions.OptionSetLanguageCodeOverride     = validLanguageCode ? languageCode : (int?)null;
            extensions.RemoveRuntimeVersionComment       = ChkRemoveRuntimeComment.Checked;
            extensions.UseXrmClient = ChkUseXrmClient.Checked;
            extensions.UseDeprecatedOptionSetNaming = ChkUseDeprecatedOptionSetNaming.Checked;
            extensions.UseTfsToCheckoutFiles        = ChkUseTFS.Checked;
            Settings.AudibleCompletionNotification  = ChkAudibleCompletion.Checked;
            Settings.IncludeCommandLine             = ChkIncludeCommandLine.Checked;
            Settings.MaskPassword       = ChkMaskPassword.Checked;
            Settings.Namespace          = TxtNamespace.Text;
            Settings.OptionSetOutPath   = TxtOptionSetPath.Text;
            Settings.ServiceContextName = string.IsNullOrWhiteSpace(TxtServiceContextName.Text) ? null : TxtServiceContextName.Text;
        }
        // ReSharper disable once InconsistentNaming
        private void HydrateSettingsFromUI()
        {
            if (ConnectionDetail != null)
            {   
                TxtOutput.AppendText("CRM Authentication Type Detected: " + ConnectionDetail.AuthType + Environment.NewLine);
                Settings.AuthType = ConnectionDetail.AuthType;
                Settings.Domain = ConnectionDetail.UserDomain;
                Settings.Password = ConnectionDetail.GetUserPassword();
                Settings.SupportsActions = ConnectionDetail.OrganizationMajorVersion >= Crm2013;
                Settings.UseConnectionString = Settings.UseConnectionString || Settings.AuthType == AuthenticationProviderType.ActiveDirectory;
                Settings.UseCrmOnline = ConnectionDetail.UseOnline;
                Settings.UserName = ConnectionDetail.UserName;
                Settings.Url = GetUrlString(ConnectionDetail.AuthType);

                if (Settings.UseConnectionString && string.IsNullOrWhiteSpace(Settings.Password))
                {
                    // Fix for https://github.com/daryllabar/DLaB.Xrm.XrmToolBoxTools/issues/43
                    // Difficulties with Early Bound Generator #43

                    var askForPassowrd = new PasswordDialog(this);
                    Settings.Password = askForPassowrd.ShowDialog(this) == DialogResult.OK ? askForPassowrd.Password : "******";
                }
                if (ConnectionDetail.AuthType == AuthenticationProviderType.ActiveDirectory && string.IsNullOrWhiteSpace(Settings.UserName))
                {
                    Settings.UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                }
            }

            Settings.ActionOutPath = TxtActionPath.Text;
            Settings.EntityOutPath = TxtEntityPath.Text;
            if (ChkUseDeprecatedOptionSetNaming.Checked)
            {
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, @"DLaB.CrmSvcUtilExtensions.OptionSet.CodeWriterFilterService,DLaB.CrmSvcUtilExtensions");
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, string.Empty);
            }
            else
            {
                var defaultConfig = EarlyBoundGeneratorConfig.GetDefault();
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter).Value);
                Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService).Value);
            }

            var extensions = Settings.ExtensionConfig;
            extensions.AddDebuggerNonUserCode = ChkAddDebuggerNonUserCode.Checked;
            extensions.AddNewFilesToProject = ChkAddFilesToProject.Checked;
            extensions.CreateOneFilePerAction = ChkCreateOneActionFile.Checked;
            extensions.CreateOneFilePerEntity = ChkCreateOneEntityFile.Checked;
            extensions.CreateOneFilePerOptionSet = ChkCreateOneOptionSetFile.Checked;
            extensions.GenerateAttributeNameConsts = ChkGenerateAttributeNameConsts.Checked;
            extensions.GenerateAnonymousTypeConstructor = ChkGenerateAnonymousTypeConstructor.Checked;
            extensions.GenerateEntityRelationships = ChkGenerateEntityRelationships.Checked;
            extensions.GenerateEnumProperties = ChkGenerateOptionSetEnums.Checked;
            extensions.InvalidCSharpNamePrefix = TxtInvalidCSharpNamePrefix.Text;
            extensions.MakeReadonlyFieldsEditable = ChkMakeReadonlyFieldsEditable.Checked;
            extensions.LocalOptionSetFormat = TxtOptionSetFormat.Text;
            extensions.RemoveRuntimeVersionComment = ChkRemoveRuntimeComment.Checked;
            extensions.UseXrmClient = ChkUseXrmClient.Checked;
            extensions.UseDeprecatedOptionSetNaming = ChkUseDeprecatedOptionSetNaming.Checked;
            extensions.UseTfsToCheckoutFiles = ChkUseTFS.Checked;
            Settings.AudibleCompletionNotification = ChkAudibleCompletion.Checked;
            Settings.IncludeCommandLine = ChkIncludeCommandLine.Checked;
            Settings.MaskPassword = ChkMaskPassword.Checked;
            Settings.Namespace = TxtNamespace.Text;
            Settings.OptionSetOutPath = TxtOptionSetPath.Text;
            Settings.ServiceContextName = string.IsNullOrWhiteSpace(TxtServiceContextName.Text) ? null : TxtServiceContextName.Text;
        }