public ActionResult Descargar()
        {
            Comprimir2 comprimir = new Comprimir2();

            if (Nom1 == null && Nom2 == null)
            {
                Response.Write("<script>alert('" + "Tienes que generar los archivos primero" + "');</script>");
                return(View("Index"));
            }


            using (ZipFile zip = new ZipFile())
            {
                //C:\Users\Desarrollo3\Desktop\ArchivosPlanosWebModel\ArchivosPlanosWeb\Descargas\Tlalpan\2017\junio\22
                //000106222017.Z4A

                //C:\Users\Desarrollo3\Desktop\ArchivosPlanosWebModel\ArchivosPlanosWeb\Descargas\Tlalpan\2017\junio\22\SinEncriptar
                //00010622.Z4A

                //var archivo1 = Server.MapPath("~/Descargas/" + "\\" + "SinEncriptar\\" + nombre1);
                //var archivo2 = Server.MapPath("~/Descargas/" + nombre2);

                var archivo1 = "C:\\inetpub\\wwwroot\\ArchivosPlanos\\Descargas" + "\\" + "SinEncriptar\\" + Nom1;
                var archivo2 = "C:\\inetpub\\wwwroot\\ArchivosPlanos\\Descargas" + "\\" + Nom2;

                var archivo1_nombre  = Path.GetFileName(archivo1);
                var archivo1_arreglo = System.IO.File.ReadAllBytes(archivo1);

                var archivo2_nombre  = Path.GetFileName(archivo2);
                var archivo2_arreglo = System.IO.File.ReadAllBytes(archivo2);

                zip.AddEntry(archivo1_nombre, archivo1_arreglo);
                zip.AddEntry(archivo2_nombre, archivo2_arreglo);

                var nombredelZIp = "MIZIP.zip";


                using (MemoryStream output = new MemoryStream())
                {
                    zip.Save(output);
                    comprimir.EliminarZip(Nom1, Nom2);
                    Nom1 = null;
                    Nom2 = null;
                    return(File(output.ToArray(), "application/ZIP", nombredelZIp));
                }
            }
        }
        public ActionResult Index(ControlesExportar model)
        {
            //entra = false;
            comen = model.Comentario;
            if (comen == null)
            {
                entra = false;
            }


            ValidacionesRepository validaciones = new ValidacionesRepository();
            Archivo2ARepository    archivo2A    = new Archivo2ARepository();
            Archivo1ARepository    archivo1A    = new Archivo1ARepository();
            Archivo9ARepository    archivo9A    = new Archivo9ARepository();
            ArchivoIIRepository    archivoII    = new ArchivoIIRepository();
            ArchivoPARepository    archivoPA    = new ArchivoPARepository();
            EncriptarRepository    encriptar    = new EncriptarRepository();
            ComprimirRepository    comprimir    = new ComprimirRepository();
            Encriptar2             encriptar2   = new Encriptar2();
            Comprimir2             comprimir2   = new Comprimir2();
            DateTime fecha_Actual = DateTime.Today;
            DateTime Hora_Actual  = DateTime.Now;
            DateTime Hora_        = DateTime.Now;
            DateTime _Hora        = DateTime.Now;
            int      Int_turno;
            string   Message = string.Empty;

            //if (Nom1 != null && Nom2 != null)
            //{
            //    comprimir2.EliminarZip(Nom1, Nom2);
            //}



            var DataStrDele = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(GetDelegaciones().Data); // convert json object to string.

            model.ListDelegaciones = JsonConvert.DeserializeObject <List <SelectListItem> >(DataStrDele);

            var DataStrPlaza = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(GetPlazaCobro().Data); // convert json object to string.

            model.ListPlazaCobro = JsonConvert.DeserializeObject <List <SelectListItem> >(DataStrPlaza);

            var DataStrTurno = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(GetTurnos().Data); // convert json object to string.

            model.ListTurno = JsonConvert.DeserializeObject <List <SelectListItem> >(DataStrTurno);

            var Delegacion = model.ListDelegaciones.Find(x => x.Value == model.DelegacionesId);
            var Plaza      = model.ListPlazaCobro.Find(p => p.Value == model.PlazaCobroId);
            var Turno      = model.ListTurno.Find(p => p.Value == model.TurnoId);

            if (Plaza == null)
            {
                ViewBag.Error = "Falta Delegaciones";
            }
            else if (Plaza.Value.Length == 2)
            {
                Plaza.Value = "0" + Plaza.Value;
                if (Plaza.Value == "004") //Tepotzotlan
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.20.221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }

                else if (Plaza.Value == "070") //Polotitlan
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.22.221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }

                else if (Plaza.Value == "005") //Palmillas
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.23.221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }

                else if (Plaza.Value == "027") //Chichimequillas
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.24.221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }

                else if (Plaza.Value == "006") //Querétaro
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.25.221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }

                else if (Plaza.Value == "061") //Libramiento
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.27.221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }

                else if (Plaza.Value == "083") //Villagrán
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.28.221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }

                else if (Plaza.Value == "086") //Cerro Gordo
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.29.221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }

                else if (Plaza.Value == "041") //Salamanca
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.30.221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }

                else if (Plaza.Value == "069") //Jorobas
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.21                                           .221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }

                else if (Plaza.Value == "041") //Salamanca
                {
                    ConexionDB = "User Id=GEADBA;Password=fgeuorjvne;  Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.3.30.221)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=GEAPROD)))";
                }
                else
                {
                    Response.Write("<script>alert('" + "Plaza en progreso" + "');</script>");
                }
            }

            DateTime FechaInicio = model.FechaInicio;


            try
            {
                //if (entra == true && comen.ToString() != null)
                //{

                //    entra = false;
                //     if (validaciones.Isertar_Comentarios(listaaa, comen) == "OK")
                //     {
                //        Response.Write("<script>alert('" + "error" + "');</script>");
                //        return View();
                //     }
                //}

                if (Delegacion == null)
                {
                    ViewBag.Titulo  = "Formulario incompleto";
                    ViewBag.Mensaje = "Falta Delegación<br />";
                }
                else if (Plaza == null)
                {
                    ViewBag.Titulo  = "Formulario incompleto";
                    ViewBag.Mensaje = "Falta Plaza <br />";
                }
                else if (Turno == null)
                {
                    ViewBag.Titulo  = "Formulario incompleto";
                    ViewBag.Mensaje = "Falta Turno<br />";
                }
                else if (FechaInicio.ToString() == "01/01/0001 12:00:00 a. m.")
                {
                    ViewBag.Titulo  = "Formulario incompleto";
                    ViewBag.Mensaje = "Falta Fecha<br />";
                }
                else if (FechaInicio > fecha_Actual)
                {
                    ViewBag.Titulo  = "Formulario llenado incorrectamente";
                    ViewBag.Mensaje = "La fecha debe ser menor a la actual<br />";
                }
                else if (validaciones.Valida_Turno(Convert.ToInt32(Turno.Value), FechaInicio) == "STOP")

                {
                    ViewBag.Titulo  = "Formulario llenado incorrectamente";
                    ViewBag.Mensaje = "Aún puedes generar este archivo<br />";
                }

                //else
                //listaaa = validaciones.ValidarComentarios(FechaInicio.AddDays(-1), FechaInicio, Turno.Text);

                //if(listaaa.Count == 1)
                //{

                //    ViewBag.List = new List<filas>();
                //    ViewBag.List = listaaa;
                //    entra = true;
                //    Response.Write("<script>alert('" + validaciones.Message + "');</script>");
                //    return View(ViewBag.List, model);

                //}
                else if (validaciones.ValidarCarrilesCerrados(FechaInicio, Turno.Text, ConexionDB) == "STOP")
                {
                    ViewBag.Titulo  = "Existen carriles sin cerrar:";
                    ViewBag.Mensaje = validaciones.Message;
                }
                else if (validaciones.ValidarBolsas(FechaInicio, Turno.Text, ConexionDB) == "STOP")
                {
                    ViewBag.Titulo  = "Existen bolsas sin declarar:";
                    ViewBag.Mensaje = validaciones.Message;
                }
                else if (validaciones.ValidarComentarios(FechaInicio, Turno.Text, ConexionDB) == "STOP")
                {
                    ViewBag.Titulo  = "Falta ingresar comentarios:";
                    ViewBag.Mensaje = validaciones.Message;
                }

                else

                {
                    //"01" SE DEBE ALMACENAR DE ACUERDO AL INICION DE SESIÓN
                    archivo1A.Generar_Bitacora_Operacion(Turno.Text, FechaInicio, Convert.ToString(Plaza.Value), Convert.ToString(Delegacion.Value), "03", ConexionDB);
                    archivo2A.Preliquidaciones_de_cajero_receptor_para_transito_vehicular(Turno.Text, FechaInicio, Convert.ToString(Plaza.Value), Convert.ToString(Delegacion.Value), "03", ConexionDB);
                    archivo9A.eventos_detectados_y_marcados_en_el_ECT(Turno.Text, FechaInicio, Convert.ToString(Plaza.Value), Convert.ToString(Delegacion.Value), "03", ConexionDB);
                    archivoII.Registro_usuarios_telepeaje(Turno.Text, FechaInicio, Convert.ToString(Plaza.Value), Convert.ToString(Delegacion.Value), "03", ConexionDB);
                    archivoPA.eventos_detectados_y_marcados_en_el_ECT_EAP(Turno.Text, FechaInicio, Convert.ToString(Plaza.Value), Convert.ToString(Delegacion.Value), "03", ConexionDB);
                    encriptar2.EncriptarArchivos(FechaInicio, Turno.Text, Convert.ToString(Plaza.Value), archivo1A.Archivo_1, archivo2A.Archivo_2, archivo9A.Archivo_3, archivoPA.Archivo_4, archivoII.Archivo_5, Plaza.Text);
                    encriptar.EncriptarArchivos(FechaInicio, Turno.Text, Convert.ToString(Plaza.Value), archivo1A.Archivo_1, archivo2A.Archivo_2, archivo9A.Archivo_3, archivoPA.Archivo_4, archivoII.Archivo_5, Plaza.Text);
                    comprimir.ComprimirArchivos(FechaInicio, Turno.Text, Convert.ToString(Plaza.Value), archivo1A.Archivo_1, archivo2A.Archivo_2, archivo9A.Archivo_3, archivoPA.Archivo_4, archivoII.Archivo_5, Plaza.Text);
                    comprimir2.ComprimirArchivos(FechaInicio, Turno.Text, Convert.ToString(Plaza.Value), archivo1A.Archivo_1, archivo2A.Archivo_2, archivo9A.Archivo_3, archivoPA.Archivo_4, archivoII.Archivo_5, Plaza.Text);
                    Nom1 = comprimir2.Nombre1;
                    Nom2 = comprimir2.Nombre2;
                    //Response.Write("<script>alert('Archivo 1A: " + archivo1A.Message + "\\nArchivo 2A: " + archivo2A.Message + "\\nArchivo 9A: " + archivo9A.Message + "\\nArchivo LL: " + archivoII.Message + "\\nArchivo PA:" + archivoPA.Message + "\\nEncriptación: " + encriptar.Message + "\\nCompresión: " + comprimir.Message + "');</script>");

                    ViewBag.Titulo  = "Resumen de creación de archivos";
                    ViewBag.Mensaje = "Archivo 1A: " + archivo1A.Message + "<br />Archivo 2A: " + archivo2A.Message + "<br />Archivo 9A: " + archivo9A.Message + "<br />Archivo LL: " + archivoII.Message + "<br />Archivo PA: " + archivoPA.Message + "<br />Encriptación: " + encriptar.Message + "<br />Compresión: " + comprimir.Message;
                }
            }
            catch (Exception ex)
            {
                Message         = ex.Message + " " + ex.StackTrace;
                ViewBag.Titulo  = "Error";
                ViewBag.Mensaje = Message;
            }
            return(View());
        }