internal DbScriptManager(JobStepModel step, DbAggregatorManager dataProviderManager, NormalizedDictionary <object> parameters, LogManager logger) { Step = step; DataProviderManager = dataProviderManager; Parameters = parameters; Logger = logger; }
/// <summary> /// Ejecuta un paso /// </summary> protected override async Task <bool> ProcessStepAsync(List <JobContextModel> contexts, JobStepModel step, NormalizedDictionary <object> parameters, CancellationToken cancellationToken) { bool processed = false; DbAggregatorManager dataProviderManager = GetProviderManager(contexts, step); // Procesa el paso using (BlockLogModel block = Logger.Default.CreateBlock(LogModel.LogType.Debug, $"Start execute step {step.Name}")) { if (string.IsNullOrEmpty(step.ScriptFileName) || !System.IO.File.Exists(step.ScriptFileName)) { block.Error($"Cant find the file {step.ScriptFileName}"); } else { DbScriptManager scriptManager = new DbScriptManager(step, dataProviderManager, parameters, Logger); // Ejecuta el paso if (System.IO.Path.GetExtension(step.ScriptFileName).EqualsIgnoreCase(".sql")) { processed = await scriptManager.ProcessBySqlScriptAsync(step.Target, step.ScriptFileName, cancellationToken); } else { processed = await scriptManager.ProcessByFileAsync(step.ScriptFileName, cancellationToken); } } } // Devuelve el valor que indica si se ha procesado correctamente return(processed); }
/// <summary> /// Obtiene e inicializa el controlador de proveedores de datos /// </summary> private DbAggregatorManager GetProviderManager(List <JobContextModel> contexts, JobStepModel job) { DbAggregatorManager providersManager = new DbAggregatorManager(); NormalizedDictionary <DataBaseConnectionModel> connections = GetConnections(contexts, job); // Asign las conexiones al proveedor foreach ((string key, DataBaseConnectionModel connection) in connections.Enumerate()) { DbAggregator.Models.ConnectionModel dbConnection = new DbAggregator.Models.ConnectionModel(key, connection.Type.ToString()); // Añade los parámetros dbConnection.Parameters.AddRange(connection.Parameters); // Añade la conexión providersManager.AddConnection(dbConnection); } // Devuelve el agregado return(providersManager); }