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); }