/// <summary> /// Executes action on the specified database. /// </summary> /// <param name="database">The database.</param> /// <param name="parameters">The parameters.</param> public override void Execute(IDbInformationProvider database, Dictionary <string, object> parameters) { var alias = parameters.Get("alias") as string; var name = parameters.Get("name") as string; var projectAlias = parameters.Get("projectAlias") as string; var tasksQuery = parameters.Get("tasksQuery") as string; var taskResultsQuery = parameters.Get("taskResultsQuery") as string; var authorities = parameters.Get("authorities") as string[] ?? new string[0]; database.Insert( database.GetFullTableName(Settings.Default.SecuritySchemaName, "Roles"), new[] { "Alias", "DisplayName", "ProjectId", "TasksQuery", "TaskResultsQuery" }, new[] { alias, name, $"(select Id from {database.GetFullTableName(Settings.Default.DataSchemaName, "Projects")} where Alias='{projectAlias}')", tasksQuery, taskResultsQuery }); database.Insert( database.GetFullTableName(Settings.Default.SecuritySchemaName, "RoleAuthorities"), new[] { "RoleId", "AuthorityId" }, authorities.Select( _ => new[] { $"(select Id from {database.GetFullTableName(Settings.Default.SecuritySchemaName, "Roles")} where [Alias]='{alias}')", $"(select Id from {database.GetFullTableName(Settings.Default.SecuritySchemaName, "Authorities")} where [Key]='{_}')" })); }
private void ExecuteSqlFile(IDbInformationProvider database, string fileName) { var dbName = database.GetDatabaseName(); var allowSnapshotIsolation = FileLoader.FromResource($"{GetType().Namespace}.{fileName}.sql") .Replace("dbName", dbName); database.ExecuteNonQuery(allowSnapshotIsolation); }
/// <summary> /// Executes action on the specified database. /// </summary> /// <param name="database">The database.</param> /// <param name="parameters">The parameters.</param> public abstract void Execute(IDbInformationProvider database, Dictionary <string, object> parameters);
/// <summary> /// Executes action on the specified database. /// </summary> /// <param name="database">The database.</param> /// <param name="parameters">The parameters.</param> public override void Execute(IDbInformationProvider database, Dictionary <string, object> parameters) { }