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