public ActionResult Create(int id) { Session[STR_DOCUMENTOS_EXPEDIENTE_OP] = null; ProyectoInversion_DAL objProyectoInversion_DAL = new ProyectoInversion_DAL(); ProyectoInversion objProyectoInversion = objProyectoInversion_DAL.ObtieneXId(id); CreateExpedienteTecnicoOPModel objCreateExpedienteTecnicoOPModel = new CreateExpedienteTecnicoOPModel(); objCreateExpedienteTecnicoOPModel.IdProyecto = objProyectoInversion.IdProyecto; objCreateExpedienteTecnicoOPModel.NomProyecto = objProyectoInversion.Nombre; return(View(objCreateExpedienteTecnicoOPModel)); }
public ActionResult Create(CreateExpedienteTecnicoOPModel pObjModel, HttpPostedFileBase documentoUpload) { if (pObjModel.TipoBotonClick == "ADJUNTAR") { if (ModelState.IsValid) { if (documentoUpload == null) { ModelState.AddModelError("Err_documentoUpload", "Seleccione un archivo."); } else { DocumentoExpTecOPModel objDocumentoExpTecOP = new DocumentoExpTecOPModel(); List <DocumentoExpedienteTecnicoOP> lstDocumentos = (List <DocumentoExpedienteTecnicoOP>)Session[STR_DOCUMENTOS_EXPEDIENTE_OP]; if (lstDocumentos == null || lstDocumentos.Count == 0) { ModelState.AddModelError("", "Debe adjuntar, al menos, un documento."); } else { byte[] fileBytes = null; String strNomArchivo = ""; if (lstDocumentos == null) { lstDocumentos = new List <DocumentoExpedienteTecnicoOP>(); } DocumentoExpedienteTecnicoOP objDocumento = new DocumentoExpedienteTecnicoOP(); if (documentoUpload != null) { if ((documentoUpload != null) && (documentoUpload.ContentLength > 0) && !string.IsNullOrEmpty(documentoUpload.FileName)) { strNomArchivo = documentoUpload.FileName; string fileContentType = documentoUpload.ContentType; fileBytes = new byte[documentoUpload.ContentLength]; documentoUpload.InputStream.Read(fileBytes, 0, Convert.ToInt32(documentoUpload.ContentLength)); } } ExpedienteTecnicoOP_DAL objExpedienteTecnicoOP_DAL = new ExpedienteTecnicoOP_DAL(); var lstTipos = objExpedienteTecnicoOP_DAL.ObtieneTiposDocumento(null); objDocumento.Descripcion = pObjModel.DescripcionDocAdj; objDocumento.FechaEmision = Convert.ToDateTime(pObjModel.FechaEmisionDocAdj); objDocumento.NroDocumento = pObjModel.NroDocumentoAdj; objDocumento.TipoDocumento = pObjModel.TipoDocmentoDocAdj; objDocumento.NomTipoDocumento = lstTipos.Where(doc => doc.Id == pObjModel.TipoDocmentoDocAdj).First().Nombre; objDocumento.Archivo = fileBytes; objDocumento.NomArchivo = strNomArchivo; objDocumento.RutaArchivo = Request.Url.GetLeftPart(UriPartial.Authority) + "/files/obras_publicas/docs_tecnicos/" + strNomArchivo; lstDocumentos.Add(objDocumento); Session[STR_DOCUMENTOS_EXPEDIENTE_OP] = lstDocumentos; } } } } else if (pObjModel.TipoBotonClick == "REMOVER") { List <DocumentoExpedienteTecnicoOP> lstDocumentos = (List <DocumentoExpedienteTecnicoOP>)Session[STR_DOCUMENTOS_EXPEDIENTE_OP]; if (lstDocumentos != null) { lstDocumentos.RemoveAt(Convert.ToInt32(pObjModel.IdDocumentoEliminar)); } Session[STR_DOCUMENTOS_EXPEDIENTE_OP] = lstDocumentos; } else { if (ModelState.IsValid) { try { List <DocumentoExpedienteTecnicoOP> lstDocumentos = (List <DocumentoExpedienteTecnicoOP>)Session[STR_DOCUMENTOS_EXPEDIENTE_OP]; String strRutaFiles = Server.MapPath(@"\files"); String strRutaObrasPublicas = Server.MapPath(@"\files") + @"\obras_publicas"; String strRutaDocsTecnicos = Server.MapPath(@"\files") + @"\obras_publicas\docs_tecnicos"; if (!System.IO.Directory.Exists(strRutaFiles)) { System.IO.Directory.CreateDirectory(strRutaFiles); } if (!System.IO.Directory.Exists(strRutaObrasPublicas)) { System.IO.Directory.CreateDirectory(strRutaObrasPublicas); } if (!System.IO.Directory.Exists(strRutaDocsTecnicos)) { System.IO.Directory.CreateDirectory(strRutaDocsTecnicos); } foreach (var objDoc in lstDocumentos) { System.IO.File.WriteAllBytes(strRutaDocsTecnicos + @"\" + objDoc.NomArchivo, objDoc.Archivo); } ExpedienteTecnicoOP_DAL objExpedienteTecnicoOP_DAL = new ExpedienteTecnicoOP_DAL(); int intResultado = objExpedienteTecnicoOP_DAL.Inserta(pObjModel.IdProyecto, pObjModel.Descripcion, pObjModel.Especificaciones, pObjModel.ValorReferencial, pObjModel.TipoEjecutor, pObjModel.EjecutorNom, pObjModel.EjecutorApe, pObjModel.EjecutorRazonSocial, pObjModel.ContactoNom, pObjModel.ContactoApe, pObjModel.ContactoEmail, pObjModel.ContactoTelefono, pObjModel.ContactoDireccion, pObjModel.SupervisorNom, pObjModel.SupervisorApe, pObjModel.SupervisorTelefono, pObjModel.SupervisorEmail, lstDocumentos); if (intResultado == 1) { //Session[STR_DOCUMENTOS_EXPEDIENTE_OP] = null; ViewBag.MsgSuccess = "Se realizó la operación satisfactoriamente"; //return RedirectToAction("Create",); } else if (intResultado == -998) { ModelState.AddModelError("", "No puede registrar el expediente porque el proyecto ya tiene asociado uno."); } else if (intResultado == -997) { ModelState.AddModelError("", "No puede registrar el expediente debido a que el proyecto está en estado ADJUDICADO."); } else { ModelState.AddModelError("", "No se pudo insertar el expediente"); } } catch (Exception ex) { ModelState.AddModelError("", ex.ToString()); } } } //return Json("", JsonRequestBehavior.AllowGet); return(View(pObjModel)); }