Ejemplo n.º 1
0
 public bool MergeFiles(ICollection <IFormFile> files, string uploadsPath, string lang1, string lang2)
 {
     try
     {
         var proyectName            = HttpContext.Session.GetTituloProyecto();
         ProcessStartInfo startInfo = new ProcessStartInfo();
         startInfo.FileName               = "memorias.sh";
         startInfo.UseShellExecute        = false;
         startInfo.RedirectStandardOutput = true;
         startInfo.Arguments              = uploadsPath + " " + lang1 + " " + lang2;
         //startInfo.Arguments = "~/corpus/training/prueba_es_en/news-commentary-v8.es-en.es es ~/corpus/training/prueba_es_en/news-commentary-v8.es-en.en en ~/corpus/prueba/dev/news-test2008.es ~/corpus/prueba/dev/news-test2008.en";
         Process proc           = Process.Start(startInfo);
         string  outputTerminal = proc.StandardOutput.ReadToEnd();
         proc.WaitForExit();
         return(true);
     }
     catch (System.Exception e)
     {
         ErrorLog error = new ErrorLog()
         {
             NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
             ERROR           = e.Message
         };
         Log4NetProvider.logError("Memoria", "MergeFiles", JsonConvert.SerializeObject(error));
         return(false);
     }
 }
Ejemplo n.º 2
0
 public bool SeleccionaProyecto(int id)
 {
     try
     {
         SessionManager.PROYECTO.id = id;
         string query    = "SELECT * FROM Proyectos WHERE id = {0}";
         var    proyecto = ctx.Proyectos.FromSql(query, id).FirstOrDefault();
         string titulo   = "";
         if (proyecto != null)
         {
             titulo = proyecto.Descripcion;
             SessionManager.PROYECTO.titulo = titulo;
             ViewBag.proyecto = titulo;
             HttpContext.Session.SetIdProyecto(id);
             HttpContext.Session.SetTituloProyecto(titulo);
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (System.Exception e)
     {
         ErrorLog error = new ErrorLog()
         {
             NOMBRE_PROYECTO = "id: " + id,
             ERROR           = e.Message
         };
         Log4NetProvider.logError("Traductor", "SeleccionaProyecto", JsonConvert.SerializeObject(error));
         throw;
     }
 }
Ejemplo n.º 3
0
        public Proyecto CrearProyecto(string descripcion)
        {
            try
            {
                var proyecto = new Proyecto {
                    Descripcion        = descripcion,
                    Fecha_modificacion = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"),
                    Actualizado        = false
                };
                ctx.Proyectos.Add(proyecto);
                ctx.SaveChanges();
                var url = "wwwroot/uploads/" + proyecto.Descripcion;
                Directory.CreateDirectory(url);

                Log4NetProvider.logInfo("Gestion", "CrearProyecto", JsonConvert.SerializeObject(proyecto));

                return(proyecto);
            }
            catch (Exception e)
            {
                ErrorLog error = new ErrorLog()
                {
                    NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
                    ERROR           = e.Message
                };
                Log4NetProvider.logError("Gestion", "CrearProyecto", JsonConvert.SerializeObject(error));
                return(null);

                throw;
            }
        }
Ejemplo n.º 4
0
        public string OpenTerminal(string file1, string lang1, string file2, string lang2, string folderName1)
        {
            try{
                /*Primero creamos las carpetas para almacenar los ficheros generados por Moses*/
                CrearDirectorios(folderName1);

                ProcessStartInfo startInfo = new ProcessStartInfo();
                startInfo.FileName               = "ejecutarMoses.sh";
                startInfo.UseShellExecute        = false;
                startInfo.RedirectStandardOutput = true;
                startInfo.Arguments              = file1 + " " + lang1 + " " + file2 + " " + lang2 + " " + folderName1;
                //startInfo.Arguments = "~/corpus/training/prueba_es_en/news-commentary-v8.es-en.es es ~/corpus/training/prueba_es_en/news-commentary-v8.es-en.en en ~/corpus/prueba/dev/news-test2008.es ~/corpus/prueba/dev/news-test2008.en";
                Process proc           = Process.Start(startInfo);
                string  outputTerminal = proc.StandardOutput.ReadToEnd();
                proc.WaitForExit();
                return(outputTerminal);
            }
            catch (Exception e) {
                ErrorLog error = new ErrorLog()
                {
                    NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
                    ERROR           = e.Message
                };
                Log4NetProvider.logError("Gestion", "OpenTerminal", JsonConvert.SerializeObject(error));
                return(e.Message);
            }
        }
Ejemplo n.º 5
0
        public void EjecutarMoses(int id, bool merge)
        {
            try
            {
                CultureInfo provider = CultureInfo.InvariantCulture;
                var         proyecto = ctx.Proyectos.Where(s => s.Id == id).First();

                Log4NetProvider.logInfo("Gestion", "EjecutarMoses", JsonConvert.SerializeObject(proyecto));

                var relProyectos = ctx.Proyecto_Memorias.Where(r => r.ProyectoId.Id == id).ToList();

                foreach (var rel in relProyectos)
                {
                    var memoria  = ctx.Memorias.Where(m => m.Id == rel.Id).FirstOrDefault();
                    var lenguaje = ctx.Memorias.Include(i => i.LenguajeId).Where(m => m.Id == rel.Id).FirstOrDefault().LenguajeId;
                    /*Comprobamos que la creacion del sistema de traduccion del lenguaje es necesaria, comparando la fecha con la de las memorias subidas */
                    string url = "wwwroot/moses/working/" + proyecto.Descripcion + "/" + lenguaje.CodLenguaje_origen + "-" + lenguaje.CodLenguaje_destino + "/mert-work/moses.ini";
                    if (System.IO.File.Exists(url))
                    {
                        DateTime lastModified = System.IO.File.GetLastWriteTime(url);
                        if (lastModified > DateTime.ParseExact(memoria.Fecha_modificacion, "dd/MM/yyyy HH:mm:ss", provider))
                        {
                            continue;
                        }
                    }
                    /*TODO: si no hay ficheros mergeados, cambiar el nombre del fichero de la url (merged-file) o por fecha */
                    var    urlMemoria  = "wwwroot/uploads/" + proyecto.Descripcion + "/" + lenguaje.CodLenguaje_origen + "-" + lenguaje.CodLenguaje_destino;
                    string urlMemoria1 = "";
                    string urlMemoria2 = "";
                    if (merge == true)
                    {
                        urlMemoria1 = urlMemoria + "/" + "merged-file." + lenguaje.CodLenguaje_origen;
                        urlMemoria2 = urlMemoria + "/" + "merged-file." + lenguaje.CodLenguaje_destino;
                    }
                    else
                    {
                        var carpeta  = new DirectoryInfo(urlMemoria);
                        var archivo1 = (from f in carpeta.GetFiles() where f.Extension.Contains(lenguaje.CodLenguaje_origen) where f.Name.Contains("20") orderby f.LastWriteTime descending select f).FirstOrDefault();
                        var archivo2 = (from f in carpeta.GetFiles() where f.Extension.Contains(lenguaje.CodLenguaje_destino) where f.Name.Contains("20") orderby f.LastWriteTime descending select f).FirstOrDefault();
                        urlMemoria1 = archivo1.FullName;
                        urlMemoria2 = archivo2.FullName;
                    }
                    var    uploadsPath1 = Path.Combine(_environment.WebRootPath, urlMemoria1);
                    var    uploadsPath2 = Path.Combine(_environment.WebRootPath, urlMemoria2);
                    string folderName1  = proyecto.Descripcion + "/" + lenguaje.CodLenguaje_origen + "-" + lenguaje.CodLenguaje_destino;
                    //string folderName2 = proyecto.Descripcion+"/"+lenguaje.CodLenguaje_destino+"-"+lenguaje.CodLenguaje_origen;
                    OpenTerminal(uploadsPath1, lenguaje.CodLenguaje_origen, uploadsPath2, lenguaje.CodLenguaje_destino, folderName1);
                }
            }
            catch (System.Exception e)
            {
                ErrorLog error = new ErrorLog()
                {
                    NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
                    ERROR           = e.Message
                };
                Log4NetProvider.logError("Gestion", "EjecutarMoses", JsonConvert.SerializeObject(error));
                throw;
            }
        }
Ejemplo n.º 6
0
        /*Devuelve la ruta en para insertar las memorias */
        public bool InsertMemoria(string lang1, string lang2)
        {
            try
            {
                Lenguaje lenguaje = new Lenguaje();
                string   query    = "SELECT * FROM Lenguajes WHERE CodLenguaje_origen = {0} AND CodLenguaje_destino = {1}";
                lenguaje = ctx.Lenguajes.FromSql(query, lang1, lang2).FirstOrDefault();
                var url = "wwwroot/uploads/" + HttpContext.Session.GetTituloProyecto() + "/" + lang1 + "-" + lang2;

                if (lenguaje == null)
                {
                    lenguaje = new Lenguaje {
                        CodLenguaje_origen  = lang1,
                        CodLenguaje_destino = lang2
                    };
                    ctx.Lenguajes.Add(lenguaje);
                }

                if (!Directory.Exists(url))
                {
                    Directory.CreateDirectory(url);
                }

                var memoria = new Memoria {
                    Fecha_modificacion = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"),
                    LenguajeId         = lenguaje
                };

                query = "SELECT * FROM Proyectos WHERE Id = {0}";
                Proyecto pr = ctx.Proyectos.FromSql(query, HttpContext.Session.GetIdProyecto()).First();

                var proyecto_memoria = new Proyecto_Memoria {
                    ProyectoId = pr,
                    MemoriaId  = memoria
                };
                ctx.Memorias.Add(memoria);
                ctx.Proyecto_Memorias.Add(proyecto_memoria);

                var result = ctx.Proyectos.SingleOrDefault(b => b.Id == pr.Id);
                result.Actualizado        = false;
                result.Fecha_modificacion = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

                ctx.SaveChanges();

                return(true);
            }
            catch (System.Exception e)
            {
                ErrorLog error = new ErrorLog()
                {
                    NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
                    ERROR           = e.Message
                };
                Log4NetProvider.logError("Memoria", "InsertMemoria", JsonConvert.SerializeObject(error));
                return(false);
            }
        }
Ejemplo n.º 7
0
        public string Traducir(string text1, string lang1, string lang2, string sProyecto)
        {
            try
            {
                string proyectName = "";
                ViewBag.errorTraduccion = "";
                if (sProyecto == null)
                {
                    proyectName = HttpContext.Session.GetTituloProyecto();
                }
                else
                {
                    proyectName = sProyecto;
                }

                /*Si no está logueado el proyecto por defecto es el primero de la tabla actualizado o el último en añadirse */
                if (proyectName == null || proyectName == "")
                {
                    var proyecto = ctx.Proyectos.Where(p => p.Actualizado == true).FirstOrDefault();
                    if (proyecto == null)
                    {
                        proyecto = ctx.Proyectos.Last();
                    }
                    proyectName = proyecto.Descripcion;
                }
                string ubicacion  = proyectName + "/" + lang1 + "-" + lang2;
                var    urlWorking = "wwwroot/moses/working/" + ubicacion;
                if (!Directory.Exists(urlWorking))
                {
                    ViewBag.errorTraduccion = "Memoría de traduccción inexistente para los lenguajes seleccionados";
                    return("");
                }

                ProcessStartInfo startInfo = new ProcessStartInfo();
                startInfo.FileName               = "traduccion.sh";
                startInfo.UseShellExecute        = false;
                startInfo.RedirectStandardOutput = true;
                startInfo.Arguments              = ubicacion + " " + text1;;
                //startInfo.Arguments= "echo " + "'" +text1+ "'" + "| ~/mosesdecoder/bin/moses -f ~/working/prueba/mert-work/moses.ini";
                Process proc           = Process.Start(startInfo);
                string  outputTerminal = proc.StandardOutput.ReadToEnd();



                proc.WaitForExit();
                return(outputTerminal);
            }
            catch (Exception e)
            {
                Log4NetProvider.logError("Traductor", "Invocar", e.Message);
                return(null);
            }
        }
Ejemplo n.º 8
0
        public string UsarGlosario(string lang1, string lang2, string traduccion)
        {
            try
            {
                var glosarios            = ctx.Proyecto_Glosarios.Include(i => i.GlosarioId).Where(p => p.ProyectoId.Id == HttpContext.Session.GetIdProyecto()).ToList();
                var palabras1            = new List <Glosario>();
                var palabras2            = new List <Glosario>();
                var palabrasReemplazadas = new List <PalabrasGlosario>();

                foreach (var gl in glosarios)
                {
                    var palAux1 = ctx.Glosarios.Where(g => g.Id == gl.GlosarioId.Id && g.CodLenguaje == lang1).FirstOrDefault();
                    if (palAux1 != null)
                    {
                        palabras1.Add(palAux1);
                    }
                    var palAux2 = ctx.Glosarios.Where(g => g.Id == gl.GlosarioId.Id && g.CodLenguaje == lang2).FirstOrDefault();
                    if (palAux2 != null)
                    {
                        palabras2.Add(palAux2);
                    }
                }
                foreach (var palabra1 in palabras1)
                {
                    foreach (var palabra2 in palabras2)
                    {
                        if (palabra1.Grupo == palabra2.Grupo)
                        {
                            if (traduccion.Contains(palabra1.Palabra))
                            {
                                traduccion = traduccion.Replace(palabra1.Palabra, palabra2.Palabra);
                                var pg = new PalabrasGlosario()
                                {
                                    palabraOrigen = palabra1.Palabra,
                                    palabraNueva  = palabra2.Palabra
                                };
                                palabrasReemplazadas.Add(pg);
                            }
                        }
                    }
                }
                ViewBag.palabrasReemplazadas = palabrasReemplazadas;
                return(traduccion);
            }
            catch (System.Exception e)
            {
                Log4NetProvider.logError("Traductor", "UsarGlosario", e.Message);
                throw;
            }
        }
Ejemplo n.º 9
0
        private Usuario GetUsuarioByCodUsuario(string codUsuario)
        {
            try
            {
                string query   = "SELECT * FROM Usuarios WHERE CodUsuario = {0}";
                var    usuario = ctx.Usuarios.FromSql(query, codUsuario).SingleOrDefault();

                return(usuario);
            }
            catch (System.Exception e)
            {
                Log4NetProvider.logError("Acceso", "GetUsuarioByCodUsuario", e.Message);
                return(null);
            }
        }
Ejemplo n.º 10
0
        private bool IsContrasenaCorrecta(string codUsuario, string contrasena)
        {
            try
            {
                var usuario = GetUsuarioByCodUsuario(codUsuario);
                if (contrasena == usuario.Contrasena)
                {
                    HttpContext.Session.SetTipoUsuario(usuario.Tipo);

                    return(true);
                }
                return(false);
            }
            catch (System.Exception e)
            {
                Log4NetProvider.logError("Acceso", "IsContrasenaCorrecta", e.Message);
                return(false);
            }
        }
Ejemplo n.º 11
0
 private List <Proyecto> GetProyectos()
 {
     try
     {
         string query     = "SELECT * FROM Proyectos";
         var    proyectos = ctx.Proyectos.FromSql(query).ToList();
         return(proyectos);
     }
     catch (System.Exception e)
     {
         ErrorLog error = new ErrorLog()
         {
             NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
             ERROR           = e.Message
         };
         Log4NetProvider.logError("Gestion", "GetProyectos", JsonConvert.SerializeObject(error));
         throw;
     }
 }
Ejemplo n.º 12
0
 public void SeleccionaProyecto(int id)
 {
     try
     {
         SessionManager.PROYECTO.id = id;
         string query  = "SELECT * FROM Proyectos WHERE id = {0}";
         var    titulo = ctx.Proyectos.FromSql(query, id).First().Descripcion;
         SessionManager.PROYECTO.titulo = titulo;
     }
     catch (System.Exception e)
     {
         ErrorLog error = new ErrorLog()
         {
             NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
             ERROR           = e.Message
         };
         Log4NetProvider.logError("Gestion", "SeleccionaProyecto", JsonConvert.SerializeObject(error));
         throw;
     }
 }
Ejemplo n.º 13
0
 public Lenguaje CrearLenguaje(string codOrigen, string codDestino)
 {
     try
     {
         var lenguaje = new Lenguaje {
             CodLenguaje_origen  = codOrigen,
             CodLenguaje_destino = codDestino
         };
         ctx.Lenguajes.Add(lenguaje);
         ctx.SaveChanges();
         return(lenguaje);
     }
     catch (System.Exception e)
     {
         ErrorLog error = new ErrorLog()
         {
             NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
             ERROR           = e.Message
         };
         Log4NetProvider.logError("Gestion", "CrearLenguaje", JsonConvert.SerializeObject(error));
         throw;
     }
 }
Ejemplo n.º 14
0
        public string InvocarTraduccion(string text1)
        {
            try{
                /*ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "gnome-terminal"};
                 * startInfo.Arguments = "-x moses.sh";*/
                /*Process proc = new Process() {StartInfo = startInfo, };
                 * proc.Start();*/
                Console.WriteLine("ENTRAAAA");

                ProcessStartInfo startInfo = new ProcessStartInfo();
                startInfo.FileName               = "traduccion.sh";
                startInfo.UseShellExecute        = false;
                startInfo.RedirectStandardInput  = true;
                startInfo.RedirectStandardOutput = true;
                startInfo.Arguments              = text1;
                //startInfo.Arguments = "~/corpus/training/prueba_es_en/news-commentary-v8.es-en.es es ~/corpus/training/prueba_es_en/news-commentary-v8.es-en.en en ~/corpus/prueba/dev/news-test2008.es ~/corpus/prueba/dev/news-test2008.en";
                Process proc           = Process.Start(startInfo);
                string  outputTerminal = proc.StandardOutput.ReadToEnd();
                Thread.Sleep(3000);
                Console.WriteLine("SI");
                using (StreamWriter sw = proc.StandardInput)
                {
                    if (sw.BaseStream.CanWrite)
                    {
                        sw.WriteLine("si");
                    }
                }


                proc.WaitForExit();
                return("outputTerminal");
            }
            catch (Exception e) {
                Log4NetProvider.logError("Traductor", "Invocar", e.Message);
                return(null);
            }
        }
Ejemplo n.º 15
0
        public async Task <IActionResult> Index(IFormFile file)
        {
            try
            {
                ViewBag.proyecto = HttpContext.Session.GetTituloProyecto();
                int grupoUltimo = 0;
                var ultimo      = ctx.Glosarios.LastOrDefault();
                if (ultimo != null)
                {
                    grupoUltimo = ultimo.Grupo;
                }

                string texto = "";

                using (var fs = file.OpenReadStream())
                    using (var ms = new MemoryStream())
                    {
                        fs.CopyTo(ms);
                        var    filebytes = ms.ToArray();
                        string s         = Convert.ToBase64String(filebytes);
                        texto = System.Text.Encoding.UTF8.GetString(filebytes);
                    }
                var proyecto = ctx.Proyectos.Where(p => p.Id == HttpContext.Session.GetIdProyecto()).First();

                var partesTexto = texto.Split('\n');
                var lenguajes   = partesTexto[0].Split(',');
                for (int i = 1; i < partesTexto.Length - 1; i++)
                {
                    var palabras = partesTexto[i].Split(',');
                    for (int j = 0; j < lenguajes.Length; j++)
                    {
                        var glosario = new Glosario {
                            CodLenguaje = lenguajes[j],
                            Palabra     = palabras[j],
                            Grupo       = grupoUltimo + i
                        };
                        var proyecto_glosario = new Proyecto_Glosario {
                            ProyectoId = proyecto,
                            GlosarioId = glosario
                        };
                        ctx.Glosarios.Add(glosario);
                        ctx.Proyecto_Glosarios.Add(proyecto_glosario);
                    }
                }

                ctx.SaveChanges();
                GlosariosLog glLog = new GlosariosLog()
                {
                    NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
                    FICHERO         = file.FileName
                };

                Log4NetProvider.logInfo("Glosario", "Subida", JsonConvert.SerializeObject(glLog));
                ViewBag.TipoUsuario = HttpContext.Session.GetTipoUsuario();
                ViewBag.proyecto    = HttpContext.Session.GetTituloProyecto();
                ViewBag.ok          = true;
                return(View());
            }
            catch (System.Exception e)
            {
                ErrorLog error = new ErrorLog()
                {
                    NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
                    ERROR           = e.Message
                };
                Log4NetProvider.logError("Glosario", "Index", JsonConvert.SerializeObject(error));
                throw;
            }
        }
Ejemplo n.º 16
0
        public void BorrarProyecto(int id)
        {
            try
            {
                /*Eliminamos todas las memorias y glosarios */
                var prymen = ctx.Proyecto_Memorias.Include(i => i.MemoriaId).Where(s => s.ProyectoId.Id == id).ToList();
                foreach (var obj in prymen)
                {
                    var memoria = ctx.Memorias.Where(m => m.Id == obj.MemoriaId.Id).FirstOrDefault();
                    ctx.Proyecto_Memorias.Remove(obj);
                    ctx.Memorias.Remove(memoria);
                }

                var prygl = ctx.Proyecto_Glosarios.Include(i => i.GlosarioId).Where(s => s.ProyectoId.Id == id).ToList();
                foreach (var gl in prygl)
                {
                    var glosario = ctx.Glosarios.Where(g => g.Id == gl.GlosarioId.Id).FirstOrDefault();
                    ctx.Proyecto_Glosarios.Remove(gl);
                    ctx.Glosarios.Remove(glosario);
                }

                string query = "SELECT * FROM Proyectos WHERE id = {0}";
                /*Borrado de las memorias subidas */
                var titulo = ctx.Proyectos.FromSql(query, id).First().Descripcion;
                var url    = "wwwroot/uploads/" + titulo;
                if (Directory.Exists(url))
                {
                    DirectoryInfo di = new DirectoryInfo(url);

                    foreach (DirectoryInfo dir in di.GetDirectories())
                    {
                        foreach (FileInfo file in dir.GetFiles())
                        {
                            file.Delete();
                        }
                        dir.Delete();
                    }
                    Directory.Delete(url);
                }


                var urlCorpus = "wwwroot/moses/corpus/" + titulo;
                if (Directory.Exists(urlCorpus))
                {
                    DirectoryInfo diCorpus = new DirectoryInfo(urlCorpus);
                    foreach (DirectoryInfo dir in diCorpus.GetDirectories())
                    {
                        foreach (FileInfo file in dir.GetFiles())
                        {
                            file.Delete();
                        }
                        dir.Delete();
                    }
                    Directory.Delete(urlCorpus);
                }

                var urlLm = "wwwroot/moses/lm/" + titulo;
                if (Directory.Exists(urlLm))
                {
                    DirectoryInfo diLm = new DirectoryInfo(urlLm);
                    foreach (DirectoryInfo dir in diLm.GetDirectories())
                    {
                        foreach (FileInfo file in dir.GetFiles())
                        {
                            file.Delete();
                        }
                        dir.Delete();
                    }
                    Directory.Delete(urlLm);
                }

                var urlWorking = "wwwroot/moses/working" + titulo;
                if (Directory.Exists(urlWorking))
                {
                    DirectoryInfo diWorking = new DirectoryInfo(urlWorking);
                    foreach (DirectoryInfo dir in diWorking.GetDirectories())
                    {
                        foreach (FileInfo file in dir.GetFiles())
                        {
                            file.Delete();
                        }
                        dir.Delete();
                    }
                    Directory.Delete(urlWorking);
                }

                var proyecto = ctx.Proyectos.Where(se => se.Id == id).First();

                /*query ="DELETE FROM Proyectos WHERE id = {0}";
                 * var proyectos = ctx.Proyectos.FromSql(query, id);*/
                ctx.Proyectos.Remove(proyecto);

                ctx.SaveChanges();

                Log4NetProvider.logInfo("Gestion", "BorrarProyecto", JsonConvert.SerializeObject(proyecto));
            }
            catch (Exception e)
            {
                ErrorLog error = new ErrorLog()
                {
                    NOMBRE_PROYECTO = HttpContext.Session.GetTituloProyecto(),
                    ERROR           = e.InnerException.Message
                };
                Log4NetProvider.logError("Gestion", "BorrarProyecto", JsonConvert.SerializeObject(error));
                throw;
            }
        }