public String GuardarArchivoDeclaracionGastos(IFormFile archivo, int idSolicitud, int idDocumento, String IdParticipante)
        {
            //Usuario usuario = HttpContext.Session.GetComplexData<Usuario>("DatosUsuario");
            String tipoUsuario = HttpContext.Session.GetString("TipoUsuario");

            if (tipoUsuario.Equals("Estudiante dirigente"))
            {
                Usuario             usuario        = HttpContext.Session.GetComplexData <Usuario>("DatosUsuario");
                List <Organizacion> organizaciones = ConsultaUsuario.LeerOrganizacion(usuario.Id, tipoUsuario);
                Organizacion        organizacion   = organizaciones[0];
                Proceso             proceso        = HttpContext.Session.GetComplexData <Proceso>("Proceso");
                string webRootPath = _webHostEnvironment.WebRootPath;
                string carpeta     = Path.Combine(webRootPath, "Procesos", organizacion.Nombre, proceso.Solicitud.FechaTerminoEvento.Year.ToString(), idSolicitud.ToString(), "DeclaracionGastos", IdParticipante);
                //string carpeta = "wwwroot/Procesos/" + usuario.NombreOrganizacionEstudiantil + "/" + DateTime.Today.Year + "/" + idSolicitud + "/Resolucion";
                try
                {
                    if (!Directory.Exists(carpeta))
                    {
                        Directory.CreateDirectory(carpeta);
                    }

                    /*string nombreArchivoAux = Path.GetFileName(archivo.FileName);
                     * String [] datosArchivo =  nombreArchivoAux.Split(".");
                     * string nombreArchivo = idDocumento.ToString()+"."+ datosArchivo[datosArchivo.Length - 1];*/

                    String extension     = Path.GetExtension(archivo.FileName);
                    string nombreArchivo = idDocumento.ToString() + extension;
                    string rutaArchivo   = Path.Combine(carpeta, nombreArchivo);
                    using (FileStream stream = new FileStream(rutaArchivo, FileMode.Create))
                    {
                        archivo.CopyTo(stream);
                    }
                    return(rutaArchivo);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }

            return(null);
        }
        public JsonResult EliminarDocumentosDG()
        {
            String tipoUsuario = HttpContext.Session.GetString("TipoUsuario");

            if (tipoUsuario.Equals("Estudiante dirigente"))
            {
                Usuario             usuario        = HttpContext.Session.GetComplexData <Usuario>("DatosUsuario");
                List <Organizacion> organizaciones = ConsultaUsuario.LeerOrganizacion(usuario.Id, tipoUsuario);
                Organizacion        organizacion   = organizaciones[0];
                Proceso             proceso        = HttpContext.Session.GetComplexData <Proceso>("Proceso");
                string webRootPath = _webHostEnvironment.WebRootPath;

                try
                {
                    int validar = ConsultaDeclaracionGastos.EliminarDocumentosDG(proceso.DeclaracionGastos.Id);

                    if (validar == 1)
                    {
                        string rutaCarpetaDG = Path.Combine(webRootPath, "Procesos", organizacion.Nombre, proceso.Solicitud.FechaTerminoEvento.Year.ToString(), proceso.Solicitud.Id.ToString(), "DeclaracionGastos");

                        if (Directory.Exists(rutaCarpetaDG))
                        {
                            Directory.Delete(rutaCarpetaDG, true);
                            return(Json("1"));
                        }
                        else
                        {
                            return(Json("0"));
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
            return(Json("-1"));
        }
        public JsonResult EliminarDocumentosPaticipante(String IdParticipante)
        {
            //Usuario usuario = HttpContext.Session.GetComplexData<UsuarioRepresentante>("DatosUsuario");
            String tipoUsuario = HttpContext.Session.GetString("TipoUsuario");

            if (tipoUsuario.Equals("Estudiante dirigente"))
            {
                Usuario             usuario        = HttpContext.Session.GetComplexData <Usuario>("DatosUsuario");
                List <Organizacion> organizaciones = ConsultaUsuario.LeerOrganizacion(usuario.Id, tipoUsuario);
                Organizacion        organizacion   = organizaciones[0];

                Proceso proceso = HttpContext.Session.GetComplexData <Proceso>("Proceso");
                proceso.Solicitud.Participantes = ConsultaDeclaracionGastos.LeerDocumentos(proceso.DeclaracionGastos.Id, proceso.Solicitud.Participantes, proceso.Solicitud.Categorias);
                if (IdParticipante == null)
                {
                    IdParticipante = HttpContext.Session.GetComplexData <String>("IdParticipante");
                }

                string webRootPath = _webHostEnvironment.WebRootPath;

                try
                {
                    int  cantParticipantes = proceso.Solicitud.Participantes.Count();
                    bool existenDocumentosParticipantes = false;
                    for (int i = 0; i < cantParticipantes; i++)
                    {
                        if (!proceso.Solicitud.Participantes[i].RUN.Equals(IdParticipante) && proceso.Solicitud.Participantes[i].Documentos != null && proceso.Solicitud.Participantes[i].Documentos.Count() > 0)
                        {
                            existenDocumentosParticipantes = true;
                        }
                    }

                    int validar = ConsultaDeclaracionGastos.EliminarDocumentosParticipante(proceso.DeclaracionGastos.Id, IdParticipante);

                    if (validar == 1)
                    {
                        string rutaCarpetaParticiapnte = Path.Combine(webRootPath, "Procesos", organizacion.Nombre, proceso.Solicitud.FechaTerminoEvento.Year.ToString(), proceso.Solicitud.Id.ToString(), "DeclaracionGastos", IdParticipante);
                        string rutaCarpetaDG           = Path.Combine(webRootPath, "Procesos", organizacion.Nombre, proceso.Solicitud.FechaTerminoEvento.Year.ToString(), proceso.Solicitud.Id.ToString(), "DeclaracionGastos");

                        if (existenDocumentosParticipantes && Directory.Exists(rutaCarpetaParticiapnte))
                        {
                            Directory.Delete(rutaCarpetaParticiapnte, true);
                            return(Json("1"));
                        }
                        else if (!existenDocumentosParticipantes && Directory.Exists(rutaCarpetaDG))
                        {
                            Directory.Delete(rutaCarpetaDG, true);
                            return(Json("1"));
                        }
                        else
                        {
                            return(Json("0"));
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
            return(Json("-1"));
        }
        public static List <Proceso> LeerProcesosOrganizacion(int refOrganizacionEstudiantil, int anio, String tipoProceso)
        {
            try
            {
                var command = new MySqlCommand()
                {
                    CommandText = "Leer_Procesos_Organizacion", CommandType = System.Data.CommandType.StoredProcedure
                };
                command.Parameters.Add(new MySqlParameter()
                {
                    ParameterName = "in_idOrganizacion", Direction = System.Data.ParameterDirection.Input, Value = refOrganizacionEstudiantil
                });
                command.Parameters.Add(new MySqlParameter()
                {
                    ParameterName = "in_anio", Direction = System.Data.ParameterDirection.Input, Value = anio
                });
                command.Parameters.Add(new MySqlParameter()
                {
                    ParameterName = "in_tipoProceso", Direction = System.Data.ParameterDirection.Input, Value = tipoProceso
                });
                //ejemplo command.Parameters.Add(new MySqlParameter() { ParameterName = "in_id", Direction = System.Data.ParameterDirection.Input, Value = id });
                var datos = ContexDb.GetDataSet(command);

                List <Proceso> procesos = new List <Proceso>();
                if (datos.Tables[0].Rows.Count > 0)
                {
                    foreach (System.Data.DataRow row in datos.Tables[0].Rows)
                    {
                        var prodData            = row;
                        int idSolicitud         = Convert.ToInt32(prodData["refSolicitud"]);
                        int idResolucion        = Convert.ToInt32(prodData["refResolucion"]);
                        int idDeclaracionGastos = Convert.ToInt32(prodData["refDeclaracionGastos"]);
                        int idResponsable       = Convert.ToInt32(prodData["refResponsable"]);


                        Solicitud solicitud = new Solicitud()
                        {
                            Id                 = Convert.ToInt32(prodData["id"]),
                            NombreEvento       = prodData["nomEvent"].ToString(),
                            LugarEvento        = prodData["lugarEvent"].ToString(),
                            Monto              = Convert.ToInt32(prodData["monto"]),
                            FechaInicioEvento  = Convert.ToDateTime(prodData["fecIniEvent"]),
                            FechaTerminoEvento = Convert.ToDateTime(prodData["fecTerEvent"]),
                            TipoEvento         = prodData["tipoActividad"].ToString(),
                            RefProceso         = Convert.ToInt32(prodData["idFondo"]),
                            FechaFinPdf        = Convert.ToDateTime(prodData["fechaCreacionPDF"])
                        };

                        //Solicitud solicitud = ConsultaSolicitud.LeerSolicitud(idSolicitud);

                        if (solicitud.NombreResponsable == null)
                        {
                            //solicitud.NombreResponsable = ConsultaSolicitud.LeerResponsable(solicitud.IdResponsable).Nombre;
                            solicitud.NombreResponsable = ConsultaUsuario.LeerRepresentante(idResponsable).Nombre;
                        }

                        Proceso proceso = new Proceso()
                        {
                            Id          = Convert.ToInt32(prodData["idFondo"]),
                            Estado      = Convert.ToInt32(prodData["estado"]),
                            EstadoFinal = prodData["estadoFinal"].ToString(),
                            Responsable = new UsuarioRepresentante()
                            {
                                Id = idResponsable
                            },
                            Solicitud  = solicitud,
                            Resolucion = new Resolucion()
                            {
                                Id = idResolucion
                            },
                            DeclaracionGastos = new DeclaracionGastos()
                            {
                                Id = idDeclaracionGastos
                            }
                        };

                        procesos.Add(proceso);
                    }

                    return(procesos);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            return(null);
        }