Ejemplo n.º 1
0
        /// <summary>
        /// Generate OnConfiguring method.
        /// </summary>
        /// <param name="connectionString">Database connection string.</param>
        /// <param name="suppressConnectionStringWarning">Suppress connection string warning.</param>
        protected virtual void GenerateOnConfiguring(
            string connectionString,
            bool suppressConnectionStringWarning)
        {
            if (connectionString == null)
            {
                throw new ArgumentNullException(nameof(connectionString));
            }

            var sb = new IndentedStringBuilder();

            using (sb.Indent())
            {
                sb.IncrementIndent();
                sb.AppendLine("protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)");
                sb.AppendLine("{");

                using (sb.Indent())
                {
                    sb.AppendLine("if (!optionsBuilder.IsConfigured)");
                    sb.AppendLine("{");

                    if (HandlebarsScaffoldingOptions.IncludeConnectionString)
                    {
                        using (sb.Indent())
                        {
                            if (!suppressConnectionStringWarning)
                            {
                                sb.DecrementIndent()
                                .DecrementIndent()
                                .DecrementIndent()
                                .DecrementIndent()
                                .AppendLine("#warning " + DesignStrings.SensitiveInformationWarning)
                                .IncrementIndent()
                                .IncrementIndent()
                                .IncrementIndent()
                                .IncrementIndent();
                            }

                            sb.Append("optionsBuilder")
                            .Append(
                                ProviderConfigurationCodeGenerator != null
                                        ? CSharpHelper.Fragment(
                                    ProviderConfigurationCodeGenerator.GenerateUseProvider(connectionString, null))
#pragma warning disable CS0618 // Type or member is obsolete
                                    : LegacyProviderCodeGenerator.GenerateUseProvider(connectionString, Language))
#pragma warning restore CS0618 // Type or member is obsolete
                            .AppendLine(";");
                        }
                    }

                    sb.AppendLine("}");
                }
                sb.AppendLine("}");

                var onConfiguring = sb.ToString();
                TemplateData.Add("on-configuring", onConfiguring);
            }
        }
        /// <summary>
        /// Generate OnConfiguring method.
        /// </summary>
        /// <param name="connectionString">Database connection string.</param>
        /// <param name="suppressConnectionStringWarning">Suppress connection string warning.</param>
        protected override void GenerateOnConfiguring(string connectionString, bool suppressConnectionStringWarning)
        {
            Check.NotNull(connectionString, nameof(connectionString));

            var sb = new IndentedStringBuilder();

            using (sb.Indent())
                using (sb.Indent())
                {
                    sb.AppendLine("protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)");
                    sb.AppendLine("{");

                    using (sb.Indent())
                    {
                        sb.AppendLine("if (!optionsBuilder.IsConfigured)");
                        sb.AppendLine("{");

                        using (sb.Indent())
                        {
                            if (!suppressConnectionStringWarning)
                            {
                                sb.DecrementIndent()
                                .DecrementIndent()
                                .DecrementIndent()
                                .DecrementIndent()
                                .AppendLine("#warning " + DesignStrings.SensitiveInformationWarning)
                                .IncrementIndent()
                                .IncrementIndent()
                                .IncrementIndent()
                                .IncrementIndent();
                            }

                            sb.Append("optionsBuilder");

                            var useProviderCall = ProviderConfigurationCodeGenerator.GenerateUseProvider(
                                connectionString,
                                ProviderConfigurationCodeGenerator.GenerateProviderOptions());
                            var contextOptions = ProviderConfigurationCodeGenerator.GenerateContextOptions();
                            if (contextOptions != null)
                            {
                                useProviderCall = useProviderCall.Chain(contextOptions);
                            }

                            sb.Append(CSharpHelper.Fragment(useProviderCall))
                            .AppendLine(";");
                        }
                        sb.AppendLine("}");
                    }

                    sb.AppendLine("}");
                }

            var onConfiguring = sb.ToString();

            TemplateData.Add("on-configuring", onConfiguring);
        }
        private string GetOnConfiguring(string connectionString, bool suppressConnectionStringWarning)
        {
            var sb = new IndentedStringBuilder();

            using (sb.Indent())
                using (sb.Indent())
                {
                    sb.AppendLine("protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)");
                    sb.AppendLine("{");

                    using (sb.Indent())
                    {
                        sb.AppendLine("if (!optionsBuilder.IsConfigured)");
                        sb.AppendLine("{");

                        using (sb.Indent())
                        {
                            if (!suppressConnectionStringWarning)
                            {
                                sb.DecrementIndent()
                                .DecrementIndent()
                                .DecrementIndent()
                                .DecrementIndent()
                                .AppendLine("#warning " + DesignStrings.SensitiveInformationWarning)
                                .IncrementIndent()
                                .IncrementIndent()
                                .IncrementIndent()
                                .IncrementIndent();
                            }

                            sb.Append("optionsBuilder");

                            var useProviderCall = ProviderConfigurationCodeGenerator.GenerateUseProvider(connectionString);

                            sb.Append(CSharpHelper.Fragment(useProviderCall))
                            .AppendLine(";");
                        }
                        sb.AppendLine("}");
                    }

                    sb.AppendLine("}");
                }

            return(sb.ToString());
        }
        /// <summary>
        /// Generate OnConfiguring method.
        /// </summary>
        /// <param name="connectionString">Database connection string.</param>
        /// <param name="suppressConnectionStringWarning">Suppress connection string warning.</param>
        protected override void GenerateOnConfiguring([NotNull] string connectionString, bool suppressConnectionStringWarning)
        {
            Check.NotNull(connectionString, nameof(connectionString));

            var onConfiguring = GetOnConfiguring(connectionString, suppressConnectionStringWarning);

            TemplateData.Add("on-configuring", onConfiguring);

            TemplateData.Add("connection-string", connectionString);
            TemplateData.Add("connectionstring-warning", $"#warning {DesignStrings.SensitiveInformationWarning}");

            var useProviderCall = ProviderConfigurationCodeGenerator.GenerateUseProvider(
                connectionString, ProviderConfigurationCodeGenerator.GenerateProviderOptions());
            var contextOptions = ProviderConfigurationCodeGenerator.GenerateContextOptions();

            if (contextOptions != null)
            {
                useProviderCall = useProviderCall.Chain(contextOptions);
            }

            TemplateData.Add("options-builder-provider", CSharpHelper.Fragment(useProviderCall));
        }