public ActionResult Actualizar(ProyectoView proyectoView) { try { AmbienteRepository ar = new AmbienteRepository(); string id = Request.Form["txtId"]; string codigoProyecto = Request.Form["txtCodigoProyecto"]; string nombreProyecto = Request.Form["txtNombreProyecto"]; string pm = Request.Form["txtPm"]; string ptl = Request.Form["txtPtl"]; char estado = Request.Form["cboEstadoProyecto"].ToCharArray()[0]; //string fechaProduccion = Request.Form["txtFechaProdProy"]; int responsableId = int.Parse(Request.Form["cboResponsable"]); bool mejora = Request.Form["chkMejora"] == "on"; string impacto = mejora ? Request.Form["txtImpacto"] : String.Empty; int tipoProyectoId = int.Parse(Request.Form["cboTipoProyecto"]); string txtCodigoPresupuestal = Request.Form["txtCodigoPresupuestal"]; string txtCodigoAlterno = Request.Form["txtCodigoAlterno"]; Proyecto p = new Proyecto(); p.Id = int.Parse(id); p.Codigo = codigoProyecto; p.Nombre = nombreProyecto; p.Pm = pm; p.Ptl = ptl; p.Estado = estado; p.Mejora = mejora; p.Impacto = impacto; p.CodigoPresupuestal = txtCodigoPresupuestal; p.CodigoAlterno = txtCodigoAlterno; if (responsableId > 0) { p.Responsable = new Responsable { Id = responsableId }; } if (tipoProyectoId > 0) { p.TipoProyecto = new TipoProyecto { Id = tipoProyectoId }; } List <ProyectoAmbiente> proyectoAmbientes = new List <ProyectoAmbiente>(); #region Ambientes string clave = "chkAmbiente"; foreach (string key in Request.Form.AllKeys) { if (key.IndexOf(clave) >= 0) { int ambienteId = int.Parse(key.Substring(clave.Length)); string fechaBruto = Request.Form["txtFecha" + ambienteId.ToString()]; int anio = int.Parse(fechaBruto.Substring(6)); int mes = int.Parse(fechaBruto.Substring(3, 2)); int dia = int.Parse(fechaBruto.Substring(0, 2)); DateTime fechaPase = new DateTime(anio, mes, dia); ProyectoAmbiente pa = new ProyectoAmbiente(); pa.Ambiente = ar.Obtener(ambienteId); pa.FechaPase = fechaPase; proyectoAmbientes.Add(pa); } } p.Ambientes = proyectoAmbientes; #endregion #region Aplicaciones List <string> nombres = Request.Form.AllKeys.ToList().Where(param => param.Contains("nombreapp")).ToList(); foreach (string nombre in nombres) { string indice = nombre.Substring("nombreapp".Length); string nombreAplicacion = Request.Form["nombreapp" + indice]; string rutaSvn = Request.Form["svnapp" + indice]; string ide = Request.Form["ideapp" + indice]; string version = Request.Form["versionapp" + indice]; char estadoApp = Request.Form["estadoapp" + indice].ToCharArray()[0]; if (!String.IsNullOrEmpty(Request.Form["hdId" + indice]) || Request.Form["eliminadoapp" + indice] == "0") { p.Aplicaciones.Add(new Aplicacion { Id = String.IsNullOrEmpty(Request.Form["hdId" + indice]) ? 0 : Convert.ToInt32(Request.Form["hdId" + indice]), Nombre = nombreAplicacion, RutaSVN = rutaSvn, Herramienta = ide, Version = version, Eliminar = Request.Form["eliminadoapp" + indice] == "1", Estado = estadoApp }); } } #endregion #region Desarrolladores List <string> idDeses = Request.Form.AllKeys.ToList().Where(param => param.Contains("iddes")).ToList(); foreach (string idDes in idDeses) { string indice = idDes.Substring("iddes".Length); if (!String.IsNullOrEmpty(Request.Form["iddes" + indice])) { if (Request.Form["nuevo" + indice] == "0" || Request.Form["eliminadodes" + indice] == "0") { p.Desarrolladores.Add(new Desarrollador { Id = int.Parse(Request.Form["iddes" + indice]), Usuario = Request.Form["usuariodes" + indice], Correo = Request.Form["correodes" + indice], Nombre = Request.Form["nombredes" + indice], Eliminar = Request.Form["eliminadodes" + indice] == "1" }); } } } #endregion #region Correos var prefijo = "proyectocorreonombre"; var correos = Request.Form.AllKeys.ToList().Where(param => param.Contains(prefijo)).ToList(); foreach (var item in correos) { var indice = item.Substring(prefijo.Length); var correo = Request.Form[prefijo + indice]; if (!String.IsNullOrEmpty(Request.Form["hdCorreo" + indice]) || Request.Form["eliminadoCorreo" + indice] == "0") { if (p.Correos == null) { p.Correos = new List <Correo>(); } p.Correos.Add(new Correo { Id = String.IsNullOrEmpty(Request.Form["hdCorreo" + indice]) ? 0 : Convert.ToInt32(Request.Form["hdCorreo" + indice]), Direccion = correo, Eliminar = Request.Form["eliminadoCorreo" + indice] == "1" }); } } #endregion ProyectoRepository pr = new ProyectoRepository(); p = pr.Actualizar(p); if (p.Id == 0) { proyectoView.Mensaje = "Hubo un error al actualizar el proyecto"; return(View("Crear", proyectoView)); } p.Ambientes = proyectoAmbientes; ProyectoView pp = new ProyectoView(); pp.Mensaje = "Proyecto Actualizado"; pp.Proyecto = p; SolicitudRepository sr = new SolicitudRepository(); pp.Proyecto.Solicitudes = sr.ListarPorProyecto(p.Id); pp.UsuarioLogueado = ObtenerUsuario(); ResponsableRepository rr = new ResponsableRepository(); TipoProyectoRepository tpr = new TipoProyectoRepository(); pp.Responsables = rr.Listar(String.Empty); pp.TipoProyectos = tpr.Listar(String.Empty); pp.Ambientes = ar.Listar(String.Empty); p.Correos = pr.ListarCorreo(p); return(View("Obtener", pp)); } catch (Exception ex) { return(View("Mensaje", new ProyectoView { Mensaje = ex.Message })); } }
public ActionResult Crear(ProyectoView proyectoView) { try { ResponsableRepository rr = new ResponsableRepository(); TipoProyectoRepository tpr = new TipoProyectoRepository(); AmbienteRepository ar = new AmbienteRepository(); string codigoProyecto = Request.Form["txtCodigoProyecto"]; string nombreProyecto = Request.Form["txtNombreProyecto"]; string pm = Request.Form["txtPm"]; string ptl = Request.Form["txtPtl"]; //string fechaProduccion = Request.Form["txtFechaProdProy"]; int responsableId = int.Parse(Request.Form["cboResponsable"]); bool mejora = Request.Form["chkMejora"] == "on"; string impacto = mejora ? Request.Form["txtImpacto"] : String.Empty; int tipoProyectoId = int.Parse(Request.Form["cboTipoProyecto"]); string txtCodigoPresupuestal = Request.Form["txtCodigoPresupuestal"]; string txtCodigoAlterno = Request.Form["txtCodigoAlterno"]; List <ProyectoAmbiente> proyectoAmbientes = new List <ProyectoAmbiente>(); string clave = "chkAmbiente"; foreach (string key in Request.Form.AllKeys) { if (key.IndexOf(clave) >= 0) { int ambienteId = int.Parse(key.Substring(clave.Length)); string fechaBruto = Request.Form["txtFecha" + ambienteId.ToString()]; int anio = int.Parse(fechaBruto.Substring(6)); int mes = int.Parse(fechaBruto.Substring(3, 2)); int dia = int.Parse(fechaBruto.Substring(0, 2)); DateTime fechaPase = new DateTime(anio, mes, dia); ProyectoAmbiente pa = new ProyectoAmbiente(); pa.Ambiente = ar.Obtener(ambienteId); pa.FechaPase = fechaPase; proyectoAmbientes.Add(pa); } } #region Verificar is ya existe el código del proyecto ProyectoRepository pr = new ProyectoRepository(); Proyecto p = pr.Obtener(codigoProyecto.Trim()); if (p != null) { proyectoView.Proyecto.Codigo = codigoProyecto; proyectoView.Proyecto.Nombre = nombreProyecto; proyectoView.Proyecto.Pm = pm; proyectoView.Proyecto.Ptl = ptl; proyectoView.Proyecto.Mejora = mejora; proyectoView.Proyecto.Impacto = impacto; proyectoView.Proyecto.CodigoPresupuestal = txtCodigoPresupuestal; proyectoView.Proyecto.CodigoAlterno = txtCodigoAlterno; proyectoView.Responsables = rr.Listar(String.Empty); proyectoView.TipoProyectos = tpr.Listar(String.Empty); if (responsableId > 0) { proyectoView.Proyecto.Responsable = new Responsable { Id = responsableId }; } if (tipoProyectoId > 0) { proyectoView.Proyecto.TipoProyecto = new TipoProyecto { Id = tipoProyectoId }; } proyectoView.Mensaje = "El código del proyecto ya existe"; return(View("Crear", proyectoView)); } else { p = new Proyecto(); p.Codigo = codigoProyecto; p.Nombre = nombreProyecto; p.Pm = pm; p.Ptl = ptl; p.Mejora = mejora; p.Impacto = impacto; if (responsableId > 0) { p.Responsable = new Responsable { Id = responsableId }; } if (tipoProyectoId > 0) { p.TipoProyecto = new TipoProyecto { Id = tipoProyectoId }; } p.CodigoPresupuestal = txtCodigoPresupuestal; p.CodigoAlterno = txtCodigoAlterno; p.Ambientes = proyectoAmbientes; p = pr.Actualizar(p); if (p.Id == 0) { proyectoView.Mensaje = "Hubo un error al crear el proyecto"; return(View("Crear", proyectoView)); } } #endregion ProyectoView pp = new ProyectoView(); pp.Mensaje = "Proyecto Creado"; pp.Responsables = rr.Listar(String.Empty); pp.TipoProyectos = tpr.Listar(String.Empty); pp.Ambientes = ar.Listar(String.Empty); return(View("Crear", pp)); } catch (Exception ex) { return(View("Mensaje", new ProyectoView { Mensaje = ex.Message })); } }