private static Entities.Script CreateScript(Entities.ScriptConfiguration scriptConfiguration,
            Entities.ScriptManifest scriptManifest, Values.Configuration configuration,
            Strategies.ConfigInjector configInjector, string connectionString)
        {
            var scriptFileName = Path.Combine(Path.GetDirectoryName(configuration.Manifest.FilePath), scriptManifest.Path);
            if (!File.Exists(scriptFileName))
            {
                throw new DatabaseScripterException(ErrorCode.ScriptFileDoesNotExist, scriptFileName);
            }

            var command = File.ReadAllText(scriptFileName);

            return new Entities.Script(scriptManifest.Name,
                scriptManifest.Description,
                scriptConfiguration.Properties.Find("databaseName").Value,
                connectionString,
                scriptManifest.WrapInTransaction,
                (scriptManifest.CurrentVersion == null) ? null : new Values.Version(scriptManifest.CurrentVersion),
                (scriptManifest.NewVersion == null) ? null : new Values.Version(scriptManifest.NewVersion),
                configInjector.InjectConfig(command, scriptConfiguration.Properties));
        }