/// <summary>Generates the DDL necessary to create the <see cref="RolesTable"/>.</summary>
        /// <param name="userLoginsNomenclature">The instance of <see cref="UserLoginsTableNomenclature"/> to use.</param>
        /// <param name="usersNomenclature">The instance of <see cref="UsersTableNomenclature"/> to use.</param>
        /// <returns>The SQL script that will create the <see cref="RolesTable"/> in the database.</returns>
        /// <exception cref="ArgumentNullException">
        ///     Thrown if the <paramref name="userLoginsNomenclature"/> or
        ///     <paramref name="usersNomenclature"/> parameter is <c>null</c>
        /// </exception>
        public static string GenerateCreationSql(UserLoginsTableNomenclature userLoginsNomenclature, UsersTableNomenclature usersNomenclature)
        {
            if (userLoginsNomenclature == null)
            {
                throw new ArgumentNullException(nameof(userLoginsNomenclature));
            }

            if (usersNomenclature == null)
            {
                throw new ArgumentNullException(nameof(usersNomenclature));
            }

            var ddlScript = new System.Text.StringBuilder();

            ddlScript.AppendLine($"CREATE TABLE \"{userLoginsNomenclature.TableName}\" (")
            .AppendLine($"  \"{userLoginsNomenclature.UserIdColumnName}\" VARCHAR2(128 BYTE) NOT NULL,")
            .AppendLine($"  \"{userLoginsNomenclature.ProviderNameColumnName}\" VARCHAR2(128 BYTE) NOT NULL,")
            .AppendLine($"  \"{userLoginsNomenclature.ProviderKeyColumnName}\" VARCHAR2(128 BYTE) NOT NULL,")
            .AppendLine($"  PRIMARY KEY (\"{userLoginsNomenclature.UserIdColumnName}\",")
            .AppendLine($"               \"{userLoginsNomenclature.ProviderNameColumnName}\",")
            .AppendLine($"               \"{userLoginsNomenclature.ProviderKeyColumnName}\") USING INDEX (")
            .AppendLine($"    CREATE INDEX \"PK_{userLoginsNomenclature.TableName}\" ON \"{userLoginsNomenclature.TableName}\" (")
            .AppendLine($"      \"{userLoginsNomenclature.UserIdColumnName}\",")
            .AppendLine($"      \"{userLoginsNomenclature.ProviderNameColumnName}\",")
            .AppendLine($"      \"{userLoginsNomenclature.ProviderKeyColumnName}\"")
            .AppendLine($"    )")
            .AppendLine($"  ),")
            .AppendLine($"  CONSTRAINT \"FK_{userLoginsNomenclature.TableName}_{userLoginsNomenclature.UserIdColumnName}\"")
            .AppendLine($"    FOREIGN KEY (\"{userLoginsNomenclature.UserIdColumnName}\")")
            .AppendLine($"    REFERENCES \"{usersNomenclature.TableName}\" (\"{usersNomenclature.UserIdColumnName}\") ON DELETE CASCADE")
            .AppendLine($");");

            return(ddlScript.ToString());
        }
        /// <summary>Creates new instance of the <see cref="UserLoginsTableSqlCommands"/> class.</summary>
        /// <param name="tableNomenclature">
        ///     The <see cref="UserLoginsTableNomenclature"/> to use when interacting with the database.
        /// </param>
        /// <exception cref="ArgumentNullException">
        ///     Thrown if the <paramref name="tableNomenclature"/> parameter is <c>null</c>.
        /// </exception>
        public UserLoginsTableSqlCommands(UserLoginsTableNomenclature tableNomenclature)
        {
            if (tableNomenclature == null)
            {
                throw new ArgumentNullException(nameof(tableNomenclature));
            }

            TableNomenclature = tableNomenclature;
        }
Example #3
0
 /// <summary>
 ///     Creates a new instance of <see cref="OracleContextNomenclature"/>,
 ///     using the default naming settings for each of the database objects.
 /// </summary>
 public OracleContextNomenclature()
 {
     RolesTableNomenclature =
         new RolesTableNomenclature(tableName: "ROLES",
                                    roleIdColumnName: "ID",
                                    roleNameColumnName: "ROLE_NAME");
     UserClaimsTableNomenclature =
         new UserClaimsTableNomenclature(tableName: "USER_CLAIMS",
                                         claimIdColumnName: "ID",
                                         userIdColumnName: "USER_ID",
                                         claimTypeColumnName: "CLAIM_TYPE",
                                         claimValueColumnName: "CLAIM_VALUE");
     UserLoginsTableNomenclature =
         new UserLoginsTableNomenclature(tableName: "USER_LOGINS",
                                         userIdColumnName: "USER_ID",
                                         providerNameColumnName: "PROVIDER_NAME",
                                         providerKeyColumnName: "PROVIDER_KEY");
     UserRolesTableNomenclature =
         new UserRolesTableNomenclature(tableName: "USER_ROLES",
                                        userIdColumnName: "USER_ID",
                                        roleIdColumnName: "ROLE_ID");
     UsersTableNomenclature =
         new UsersTableNomenclature(tableName: "USERS",
                                    userIdColumnName: "ID",
                                    userNameColumnName: "USERNAME",
                                    emailAddressColumnName: "EMAIL",
                                    emailConfirmedColumnName: "EMAIL_CONFIRMED",
                                    passwordHashColumnName: "PASSWORD_HASH",
                                    securityStampColumnName: "SECURITY_STAMP",
                                    phoneNumberColumnName: "PHONE_NUMBER",
                                    phoneNumberConfirmedColumnName: "PHONE_NUMBER_CONFIRMED",
                                    twoFactorAuthorizationEnabledColumnName: "TWO_FACTOR_AUTH_ENABLED",
                                    lockoutEndDateUtcColumnName: "LOCKOUT_END_DATE_UTC",
                                    lockoutEnabledColumnName: "LOCKOUT_ENABLED",
                                    accessFailedCountColumnName: "ACCESS_FAILED_COUNT");
 }