Exemplo n.º 1
0
        /// <summary>
        /// Valida que existan 2 archivos.
        /// </summary>
        /// <param name="directorio">Nombre del directorio donde se encuentran los scripts</param>
        /// <param name="secuencia">numero de secuencia</param>
        /// <param name="files">nombre de los archivos</param>
        private void ProcesarScripts(string directorio, string secuencia, FileInfo[] files)
        {
            if (files.Length != 2)
            {
                string mensaje = string.Format("Se requieren 2 scripts con numero de secuencia {0} en el direcotrio {1}.", secuencia, directorio);
                throw new ApplicationException(mensaje);
            }

            ScriptFactory scriptFactory = new ScriptFactory();
            FileInfo      implementacion = null, desimplementacion = null;

            if (files[0].Name.Contains("_up.sql"))
            {
                implementacion = files[0];
            }

            if (files[1].Name.Contains("_up.sql"))
            {
                implementacion = files[1];
            }

            if (files[0].Name.Contains("_down.sql"))
            {
                desimplementacion = files[0];
            }

            if (files[1].Name.Contains("_down.sql"))
            {
                desimplementacion = files[0];
            }

            if (implementacion == null || desimplementacion == null)
            {
                string mensaje = string.Format("Dentro del directorio {0} la secuencia {1} " +
                                               "tiene mal formado el postfijo '_down.sql' o '_up.sql', " +
                                               "revíse el nombre de los archivos de dicha secuancia.",
                                               directorio, secuencia, files[0].Name, files[1].Name);
                throw new ApplicationException(mensaje);
            }

            ScriptEntity script = scriptFactory.Crear(implementacion, desimplementacion);

            _ScriptList.Add(script);
        }