public ActionResult Eliminar(int id) { string rutaLog = HttpContext.Server.MapPath("/App_Data/Log.txt"); //Utilerias.EscribirLog(rutaLog, "Usuario: " + Sesion.Current.Usuario.Nombre + " quiere eliminar archivo con id: " + id + "."); var str = new StringBuilder(); var error = ""; str.Append("{"); str.Append("\"Eliminado\":"); try { // Crear carpeta eliminados si no existe. string rutaEliminados = UtilSVN.ObtenerRutaCopiaTrabajo() + @"\Eliminados"; bool creado = Utilerias.CrearRuta(rutaEliminados); // Obtener el usuario logueado var usr = Sesion.Current.Usuario; // Si se acaba de crear hacer un commit indicándolo. if (creado) { UtilSVN.AgregarArchivo(@"\Eliminados", usr.Nombre); } if (id > 0) { var pd = new PerDocumento(); Documento doc = pd.Obtener(id); string rutaCarpetas = @"\" + doc.Departamento.Nombre + @"\" + doc.Area.Nombre; string rutaEliminado = rutaEliminados + rutaCarpetas; // Crear carpetas de departamento y area dentro de eliminados, y agregarlas al SVN. Utilerias.CrearRuta(rutaEliminado); UtilSVN.AgregarArchivo(@"\Eliminados" + rutaCarpetas, usr.Nombre); rutaEliminado = rutaEliminado + @"\" + doc.Nombre; // Commit eliminación. string msjEliminarArchivo = UtilSVN.EliminarArchivo(doc.Ruta, rutaEliminado, rutaCarpetas + @"\" + doc.Nombre, usr.Nombre); if (msjEliminarArchivo == "Exito") { long revEliminado = UtilSVN.ObtenerUltimaRevision(); Debug.WriteLine("revEliminado: " + revEliminado); // Desactivar el registro de la base. pd.Eliminar(id, rutaEliminado, revEliminado); str.Append("1"); } else { str.Append("0"); error += msjEliminarArchivo; } } else { str.Append("0"); error += "Error al eliminar el archivo: Id = 0"; } } catch (Exception ex) { error += "Error al eliminar el archivo: " + ex.Message; Debug.WriteLine(ex.ToString()); //Utilerias.EscribirLog(rutaLog, ex.ToString()); str.Append("0"); } str.Append(","); str.Append("\"Error\":"); str.Append("\"" + error + "\""); str.Append("}"); Debug.WriteLine("str: " + str.ToString()); return(Json(str.ToString(), JsonRequestBehavior.AllowGet)); }
public ActionResult Nuevo(Documento doc, HttpPostedFileBase archivo) { string rutaLog = HttpContext.Server.MapPath("/App_Data/Log.txt"); //Utilerias.EscribirLog(rutaLog, "Usuario: " + Sesion.Current.Usuario.Nombre + " quiere crear un nuevo archivo."); ViewBag.Departamento = new PerDepartamento().ObtenerActivos(); ViewBag.Area = null; ActionResult ar = RedirectToAction("Index"); var job = new JObject(); job["Error"] = true; job["Clase"] = this.GetType().Name; job["Metodo"] = System.Reflection.MethodBase.GetCurrentMethod().Name; job["Mensaje"] = ""; if (archivo == null || archivo.ContentLength == 0) { job["Mensaje"] += "Error al subir el archivo: El archivo esta vacío"; ViewBag.validacion = job; ar = View(doc); return(ar); } string nombreArchivo = Path.GetFileName(archivo.FileName); if (doc != null) { var error = false; // Checar si no existe un documento con el mismo nombre en esta area y departamento. var lst = new PerDocumento().ObtenerTodosArea(doc.IdArea.GetValueOrDefault()); foreach (var documento in lst) { if (documento.Nombre == nombreArchivo) { error = true; break; } } if (error) { job["Mensaje"] += "El nombre de archivo ya existe en esta área."; ViewBag.validacion = job; ar = View(doc); return(ar); } try { // Crear carpetas si no existen. Departamento depa = new PerDepartamento().Obtener(doc.IdDepartamento.GetValueOrDefault()); Area area = new PerArea().Obtener(doc.IdArea.GetValueOrDefault()); string depaArea = @"\" + depa.Nombre + @"\" + area.Nombre; string ruta = UtilSVN.ObtenerRutaCopiaTrabajo() + depaArea; Utilerias.CrearRuta(ruta); // Guardar en el servidor. ruta = Path.Combine(ruta, nombreArchivo); Debug.WriteLine("ruta al guardar archivo: " + ruta); archivo.SaveAs(ruta); // Obtener el usuario logueado var usr = Sesion.Current.Usuario; // Agregar archivo en el SVN. string msjAgregarArchivo = UtilSVN.AgregarArchivo(depaArea + nombreArchivo, usr.Nombre); if (msjAgregarArchivo == "Exito") { doc.Nombre = nombreArchivo; doc.Ruta = ruta; // Crear UID. int conta; string uid = Utilerias.CrearUID(doc.IdDepartamento.GetValueOrDefault(), doc.IdArea.GetValueOrDefault(), out conta); doc.UID = uid; doc.ContadorUID = conta; // Agregar registro a la BD. new PerDocumento().Insertar(doc); job["Error"] = false; } else { job["Mensaje"] += msjAgregarArchivo; } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); //Utilerias.EscribirLog(rutaLog, ex.ToString()); job["Mensaje"] += "Error al subir el archivo: " + ex.Message; if (ex.InnerException != null) { job["Mensaje"] += " " + ex.InnerException.Message; } ViewBag.validacion = job; ar = View(doc); } } return(ar); }