public int Copiar_grabarArchivo_II(DataRow row, int usuario_creacion, int id_parent)
        {
            Files_E obj_fileT   = new Files_E();
            int     id_File_New = 0;

            obj_fileT.id_Grupo      = Convert.ToInt32(row["id_Grupo"].ToString());
            obj_fileT.id_Empresa    = Convert.ToInt32(row["id_Empresa"].ToString());
            obj_fileT.id_Delegacion = Convert.ToInt32(row["id_Delegacion"].ToString());

            obj_fileT.id_Usuario  = usuario_creacion;
            obj_fileT.nombre_File = row["nombre_File"].ToString();
            obj_fileT.parentID    = id_parent;

            obj_fileT.urlImagen_File = row["urlImagen_File"].ToString();
            obj_fileT.orden_File     = Convert.ToDecimal(row["orden_File"].ToString());
            obj_fileT.id_Tipo_File   = Convert.ToInt32(row["id_Tipo_File"].ToString());

            obj_fileT.rutaPrincipal    = row["rutaPrincipal"].ToString();
            obj_fileT.rutaArchivo      = row["rutaArchivo"].ToString();
            obj_fileT.usuario_creacion = usuario_creacion;

            id_File_New = crear_archivo_acciones(obj_fileT);

            return(id_File_New);
        }
        public int Copiar_grabarArchivo(Files_E item)
        {
            int id_File_New = 0;

            Files_E obj_file = new Files_E();

            obj_file.id_Grupo      = item.id_Grupo;
            obj_file.id_Empresa    = item.id_Empresa;
            obj_file.id_Delegacion = item.id_Delegacion;

            obj_file.id_Usuario  = item.id_Usuario;
            obj_file.nombre_File = item.nombre_File;
            obj_file.parentID    = item.id_File_Destino;

            obj_file.urlImagen_File = item.urlImagen_File;
            obj_file.orden_File     = item.orden_File;
            obj_file.id_Tipo_File   = item.id_Tipo_File;

            obj_file.rutaPrincipal    = item.rutaPrincipal;
            obj_file.rutaArchivo      = item.rutaArchivo;
            obj_file.usuario_creacion = item.usuario_creacion;

            id_File_New = crear_archivo_acciones(obj_file);
            return(id_File_New);
        }
        public string crear_carpeta(Files_E obj_file)
        {
            string resultado = "";

            try
            {
                using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                {
                    cn.Open();
                    using (SqlCommand cmd = new SqlCommand("PROC_I_FILE_NEW_CARPETA", cn))
                    {
                        cmd.CommandTimeout = 0;
                        cmd.CommandType    = CommandType.StoredProcedure;
                        cmd.Parameters.Add("@id_Grupo", SqlDbType.Int).Value      = obj_file.id_Grupo;
                        cmd.Parameters.Add("@id_Empresa", SqlDbType.Int).Value    = obj_file.id_Empresa;
                        cmd.Parameters.Add("@id_Delegacion", SqlDbType.Int).Value = obj_file.id_Delegacion;

                        cmd.Parameters.Add("@id_Usuario", SqlDbType.Int).Value      = obj_file.id_Usuario;
                        cmd.Parameters.Add("@nombre_File", SqlDbType.VarChar).Value = obj_file.nombre_File;
                        cmd.Parameters.Add("@parentID", SqlDbType.Int).Value        = obj_file.parentID;

                        cmd.Parameters.Add("@urlImagen_File", SqlDbType.VarChar).Value = obj_file.urlImagen_File;
                        cmd.Parameters.Add("@orden_File", SqlDbType.Int).Value         = obj_file.orden_File;
                        cmd.Parameters.Add("@id_Tipo_File", SqlDbType.Int).Value       = obj_file.id_Tipo_File;

                        cmd.Parameters.Add("@rutaPrincipal", SqlDbType.VarChar).Value           = obj_file.rutaPrincipal;
                        cmd.Parameters.Add("@rutaArchivo", SqlDbType.VarChar).Value             = obj_file.rutaArchivo;
                        cmd.Parameters.Add("@usuario_creacion", SqlDbType.Int).Value            = obj_file.usuario_creacion;
                        cmd.Parameters.Add("@ubicacion_file", SqlDbType.VarChar, 250).Direction = ParameterDirection.Output;

                        cmd.ExecuteNonQuery();
                        string nombreCarpeta = cmd.Parameters["@ubicacion_file"].Value.ToString();

                        string ruta_destino = System.Web.Hosting.HostingEnvironment.MapPath("~/Documentos/" + nombreCarpeta);
                        Directory.CreateDirectory(ruta_destino);
                        if (Directory.Exists(ruta_destino))
                        {
                            resultado = "OK";
                        }
                        else
                        {
                            throw new System.InvalidOperationException("No se pudo crear la carpeta");
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(resultado);
        }
        public string crear_archivo(Files_E obj_file)
        {
            string resultado = "";

            try
            {
                using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                {
                    cn.Open();
                    using (SqlCommand cmd = new SqlCommand("PROC_I_FILE_NEW_ARCHIVO", cn))
                    {
                        cmd.CommandTimeout = 0;
                        cmd.CommandType    = CommandType.StoredProcedure;
                        cmd.Parameters.Add("@id_Grupo", SqlDbType.Int).Value      = obj_file.id_Grupo;
                        cmd.Parameters.Add("@id_Empresa", SqlDbType.Int).Value    = obj_file.id_Empresa;
                        cmd.Parameters.Add("@id_Delegacion", SqlDbType.Int).Value = obj_file.id_Delegacion;

                        cmd.Parameters.Add("@id_Usuario", SqlDbType.Int).Value      = obj_file.id_Usuario;
                        cmd.Parameters.Add("@nombre_File", SqlDbType.VarChar).Value = obj_file.nombre_File;
                        cmd.Parameters.Add("@parentID", SqlDbType.Int).Value        = obj_file.parentID;

                        cmd.Parameters.Add("@urlImagen_File", SqlDbType.VarChar).Value = obj_file.urlImagen_File;
                        cmd.Parameters.Add("@orden_File", SqlDbType.Int).Value         = obj_file.orden_File;
                        cmd.Parameters.Add("@id_Tipo_File", SqlDbType.Int).Value       = obj_file.id_Tipo_File;

                        cmd.Parameters.Add("@rutaPrincipal", SqlDbType.VarChar).Value           = obj_file.rutaPrincipal;
                        cmd.Parameters.Add("@rutaArchivo", SqlDbType.VarChar).Value             = obj_file.rutaArchivo;
                        cmd.Parameters.Add("@usuario_creacion", SqlDbType.Int).Value            = obj_file.usuario_creacion;
                        cmd.Parameters.Add("@ubicacion_file", SqlDbType.VarChar, 250).Direction = ParameterDirection.Output;

                        cmd.ExecuteNonQuery();
                        string nombreCarpeta = cmd.Parameters["@ubicacion_file"].Value.ToString();
                        resultado = nombreCarpeta;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(resultado);
        }
        public object UploadFiles(string filtro)
        {
            var    nombreFile = "";
            object resul      = null;
            string sPath      = "";
            resul  res        = new resul();

            try
            {
                Files_E obj_files = JsonConvert.DeserializeObject <Files_E>(filtro);

                Archivos_BL obj_negocio = new Archivos_BL();

                System.Web.HttpFileCollection hfc = System.Web.HttpContext.Current.Request.Files;

                // CHECK THE FILE COUNT.
                for (int iCnt = 0; iCnt <= hfc.Count - 1; iCnt++)
                {
                    System.Web.HttpPostedFile hpf = hfc[iCnt];
                    if (hpf.ContentLength > 0)
                    {
                        nombreFile = obj_negocio.crear_archivo(obj_files);
                        sPath      = System.Web.Hosting.HostingEnvironment.MapPath("~/Documentos/" + nombreFile);
                        hpf.SaveAs(sPath);
                    }
                }

                resul    = "OK";
                res.ok   = true;
                res.data = resul;
            }
            catch (Exception ex)
            {
                res.ok   = false;
                res.data = ex.Message;
            }

            return(res);
        }
        public object Gettbl_Archivos(int opcion, string filtro)
        {
            db.Configuration.ProxyCreationEnabled = false;

            object resul = null;
            resul  res   = new resul();

            try
            {
                if (opcion == 1)
                {
                    string[] parametros = filtro.Split('|');
                    string   nombreFile = parametros[0].ToString();

                    Archivos_BL obj_negocio = new Archivos_BL();
                    resul = obj_negocio.copiar_Archivos_new(nombreFile);
                }
                else if (opcion == 2)
                {
                    Files_E obj_files = JsonConvert.DeserializeObject <Files_E>(filtro);

                    Archivos_BL obj_negocio = new Archivos_BL();
                    resul = obj_negocio.crear_carpeta(obj_files);
                }
                else if (opcion == 3)
                {
                    string[] parametros = filtro.Split('|');
                    string   nombreFile = parametros[0].ToString();

                    Archivos_BL obj_negocio = new Archivos_BL();
                    resul = obj_negocio.copiar_Carpetas(nombreFile);
                }
                else if (opcion == 4)
                {
                    string[] parametros = filtro.Split('|');
                    string   nombreFile = parametros[0].ToString();

                    Archivos_BL obj_negocio = new Archivos_BL();
                    resul = obj_negocio.mover_Archivos(nombreFile);

                    resul = (from c in db.tbl_Local
                             select new
                    {
                        c.id_Local,
                        c.nombre_Local
                    }).ToList();
                }
                else if (opcion == 5)
                {
                    string[] parametros = filtro.Split('|');
                    string   nombreFile = parametros[0].ToString();

                    Archivos_BL obj_negocio = new Archivos_BL();
                    resul = obj_negocio.mover_Carpetas(nombreFile);
                }
                else if (opcion == 6)
                {
                    string[] parametros = filtro.Split('|');
                    string   nombreFile = parametros[0].ToString();

                    Archivos_BL obj_negocio = new Archivos_BL();
                    resul = obj_negocio.comprimir_Carpetas_ant(nombreFile);
                }
                else if (opcion == 7) ///--- listando en tree view
                {
                    string[] parametros = filtro.Split('|');
                    int      id_usuario = Convert.ToInt32(parametros[0].ToString());

                    DataTable dt_Treeview = new DataTable();
                    using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand("PROC_S_FILE_TREEVIEW", cn))
                        {
                            cmd.CommandTimeout = 0;
                            cmd.CommandType    = CommandType.StoredProcedure;
                            cmd.Parameters.Add("@id_usuario", SqlDbType.Int).Value = id_usuario;
                            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                            {
                                da.Fill(dt_Treeview);
                            }
                        }
                    }
                    resul = dt_Treeview;
                }
                else if (opcion == 8) ///--- listando en tree view
                {
                    string[] parametros = filtro.Split('|');
                    int      id_file    = Convert.ToInt32(parametros[0].ToString());
                    int      id_usuario = Convert.ToInt32(parametros[1].ToString());

                    DataTable dt_Treeview = new DataTable();
                    using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand("PROC_S_FILE_TREEVIEW_SUBMENU", cn))
                        {
                            cmd.CommandTimeout = 0;
                            cmd.CommandType    = CommandType.StoredProcedure;
                            cmd.Parameters.Add("@id_file", SqlDbType.Int).Value    = id_file;
                            cmd.Parameters.Add("@id_usuario", SqlDbType.Int).Value = id_usuario;
                            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                            {
                                da.Fill(dt_Treeview);
                            }
                        }
                    }
                    resul = dt_Treeview;
                }
                else if (opcion == 9)
                {
                    string[] parametros   = filtro.Split('|');
                    int      id_file      = Convert.ToInt32(parametros[0].ToString());
                    string   nombreFile   = parametros[1].ToString();
                    int      id_user      = Convert.ToInt32(parametros[2].ToString());
                    int      id_Tipo_File = Convert.ToInt32(parametros[3].ToString());
                    string   rutaArchivo  = parametros[4].ToString();

                    Archivos_BL obj_negocio = new Archivos_BL();
                    resul = obj_negocio.RenombrarFile(id_file, nombreFile, id_user, id_Tipo_File, rutaArchivo);
                }
                else if (opcion == 10) ///--- borrando
                {
                    string[] parametros  = filtro.Split('|');
                    string   id_files    = parametros[0].ToString();
                    int      id_usuarios = Convert.ToInt32(parametros[1].ToString());

                    using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand("PROC_U_FILE_PAPELERA_ARCHIVO", cn))
                        {
                            cmd.CommandTimeout = 0;
                            cmd.CommandType    = CommandType.StoredProcedure;
                            cmd.Parameters.Add("@files", SqlDbType.VarChar).Value  = id_files;
                            cmd.Parameters.Add("@id_usuario", SqlDbType.Int).Value = id_usuarios;
                            cmd.ExecuteNonQuery();
                        }
                    }
                }
                else if (opcion == 11) ///--- listando papelera
                {
                    DataTable dt_Treeview = new DataTable();
                    using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand("PROC_S_FILE_TREEVIEW_PAPELERA", cn))
                        {
                            cmd.CommandTimeout = 0;
                            cmd.CommandType    = CommandType.StoredProcedure;
                            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                            {
                                da.Fill(dt_Treeview);
                            }
                        }
                    }
                    resul = dt_Treeview;
                }
                else if (opcion == 12) ///--- restaurando
                {
                    string[] parametros  = filtro.Split('|');
                    string   id_files    = parametros[0].ToString();
                    int      id_usuarios = Convert.ToInt32(parametros[1].ToString());

                    using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand("PROC_U_FILE_PAPELERA_ARCHIVO_RESTAURAR", cn))
                        {
                            cmd.CommandTimeout = 0;
                            cmd.CommandType    = CommandType.StoredProcedure;
                            cmd.Parameters.Add("@files", SqlDbType.VarChar).Value  = id_files;
                            cmd.Parameters.Add("@id_usuario", SqlDbType.Int).Value = id_usuarios;
                            cmd.ExecuteNonQuery();
                        }
                    }
                    resul = "OK";
                }
                else if (opcion == 13) ///--- descartar
                {
                    string[] parametros  = filtro.Split('|');
                    string   id_files    = parametros[0].ToString();
                    int      id_usuarios = Convert.ToInt32(parametros[1].ToString());

                    using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand("PROC_U_FILE_PAPELERA_ARCHIVO_DESCARTAR", cn))
                        {
                            cmd.CommandTimeout = 0;
                            cmd.CommandType    = CommandType.StoredProcedure;
                            cmd.Parameters.Add("@files", SqlDbType.VarChar).Value  = id_files;
                            cmd.Parameters.Add("@id_usuario", SqlDbType.Int).Value = id_usuarios;
                            cmd.ExecuteNonQuery();
                        }
                    }
                    resul = "OK";
                }
                else if (opcion == 14)
                {
                    string[] parametros  = filtro.Split('|');
                    int      id_opcion   = Convert.ToInt32(parametros[0].ToString());
                    int      id_usuarios = Convert.ToInt32(parametros[1].ToString());


                    DataTable dt_Evento = new DataTable();
                    using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand("SP_S_ACCESO_LISTAR_EVENTOS_USER", cn))
                        {
                            cmd.CommandTimeout = 0;
                            cmd.CommandType    = CommandType.StoredProcedure;
                            cmd.Parameters.Add("@id_opcion", SqlDbType.Int).Value  = id_opcion;
                            cmd.Parameters.Add("@id_usuario", SqlDbType.Int).Value = id_usuarios;
                            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                            {
                                da.Fill(dt_Evento);
                            }
                        }
                    }
                    resul = dt_Evento;
                }
                else if (opcion == 15)
                {
                    DataTable dt_detalle = new DataTable();
                    using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand("PROC_S_FILE_USUARIOS", cn))
                        {
                            cmd.CommandTimeout = 0;
                            cmd.CommandType    = CommandType.StoredProcedure;
                            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                            {
                                da.Fill(dt_detalle);
                            }
                        }
                    }
                    resul = dt_detalle;
                }
                else if (opcion == 16)
                {
                    resul = (from c in db.tbl_Permiso_File
                             select new
                    {
                        c.id_Permiso_File,
                        c.nombre_Permiso_File
                    }).ToList();
                }
                else if (opcion == 17)
                {
                    string[] parametros = filtro.Split('|');
                    string   id_files   = parametros[0].ToString();

                    DataTable dt_detalle = new DataTable();
                    using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand("PROC_S_FILE_ACCESO_FILE", cn))
                        {
                            cmd.CommandTimeout = 0;
                            cmd.CommandType    = CommandType.StoredProcedure;
                            cmd.Parameters.Add("@files", SqlDbType.VarChar).Value = id_files;
                            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                            {
                                da.Fill(dt_detalle);
                            }
                        }
                    }
                    resul = dt_detalle;
                }
                else if (opcion == 18)
                {
                    string[] parametros          = filtro.Split('|');
                    string   obj_files           = parametros[0].ToString();
                    string   obj_usuarios        = parametros[1].ToString();
                    int      id_permiso          = Convert.ToInt32(parametros[2].ToString());
                    int      id_usuario_creacion = Convert.ToInt32(parametros[3].ToString());

                    using (SqlConnection cn = new SqlConnection(bdConexion.cadenaBDcx()))
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand("PROC_I_FILE_ACCESO_FILE_USER", cn))
                        {
                            cmd.CommandTimeout = 0;
                            cmd.CommandType    = CommandType.StoredProcedure;
                            cmd.Parameters.Add("@files", SqlDbType.VarChar).Value        = obj_files;
                            cmd.Parameters.Add("@usuarios", SqlDbType.VarChar).Value     = obj_usuarios;
                            cmd.Parameters.Add("@id_permiso", SqlDbType.Int).Value       = id_permiso;
                            cmd.Parameters.Add("@usuario_creacion", SqlDbType.Int).Value = id_usuario_creacion;
                            cmd.ExecuteNonQuery();
                        }
                    }
                    resul = "OK";
                }
                else
                {
                    resul = "Opcion seleccionada invalida";
                }
                res.ok   = true;
                res.data = resul;
            }
            catch (Exception ex)
            {
                res.ok   = false;
                res.data = ex.Message;
            }
            return(res);
        }