コード例 #1
0
        public ActionResult Obtener(string id)
        {
            try
            {
                var sv = new ServidorView();
                sv.Mensaje = "";
                var      sr = new ServidorRepository();
                Servidor p  = sr.Obtener(id);
                sv.Servidor = p;

                AmbienteRepository ar        = new AmbienteRepository();
                List <Ambiente>    ambientes = ar.Listar("");
                ambientes.Insert(0, new Ambiente()
                {
                    Id = 0, Nombre = String.Empty
                });

                sv.Ambientes         = ambientes;
                sv.UsuarioLogueado   = ObtenerUsuario();
                sv.Servidor.Usuarios = sr.ListarUsuario(sv.Servidor);
                return(View("Obtener", sv));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new ServidorView {
                    Mensaje = ex.Message
                }));
            }
        }
コード例 #2
0
        public ActionResult Index(AmbienteView av)
        {
            try
            {
                string nombreAmbiente        = Request.Form["txtNombreAmbiente"];
                bool   fechaObligatoria      = Request.Form["chkFechaObligatoria"] == "on";
                bool   apruebaCalidad        = Request.Form["chkApruebaCalidad"] == "on";
                bool   envioPrimeraSolicitud = Request.Form["chkEnvioPrimeraSolicitud"] == "on";

                AmbienteRepository ar        = new AmbienteRepository();
                List <Ambiente>    ambientes = ar.Listar(nombreAmbiente, fechaObligatoria, apruebaCalidad, envioPrimeraSolicitud);

                av.Ambiente                       = new Ambiente();
                av.Ambiente.Nombre                = nombreAmbiente;
                av.Ambiente.FechaObligatoria      = fechaObligatoria;
                av.Ambiente.ApruebaCalidad        = apruebaCalidad;
                av.Ambiente.EnvioPrimeraSolicitud = envioPrimeraSolicitud;
                av.Ambientes                      = ambientes;

                string mensaje = "";
                if (ambientes.Count == 0)
                {
                    mensaje = "No existen Ambientes para el criterio de búsqueda";
                }
                av.Mensaje = mensaje;

                return(View(av));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new AmbienteView {
                    Mensaje = ex.Message
                }));
            }
        }
コード例 #3
0
        public ActionResult AsignarFormato()
        {
            try
            {
                var ar        = new AmbienteRepository();
                var ambientes = ar.Listar("");

                var ger    = new AreaRepository();
                var grupos = ger.Listar("");

                var fr       = new FormatoRepository();
                var formatos = fr.Listar("");

                var sv = new SistemaView();
                sv.Ambientes = ambientes;
                sv.Grupos    = grupos;
                sv.Formatos  = formatos;

                return(View(sv));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new SistemaView {
                    Mensaje = ex.Message
                }));
            }
        }
コード例 #4
0
        public ActionResult Obtener(string id)
        {
            try
            {
                ProyectoRepository     pr  = new ProyectoRepository();
                SolicitudRepository    sr  = new SolicitudRepository();
                ResponsableRepository  rr  = new ResponsableRepository();
                TipoProyectoRepository tpr = new TipoProyectoRepository();
                AmbienteRepository     ar  = new AmbienteRepository();

                ProyectoView pv = new ProyectoView();
                pv.UsuarioLogueado = ObtenerUsuario();
                pv.Mensaje         = "";
                Proyecto p = pr.Obtener(id);
                pv.Proyecto      = p;
                pv.Responsables  = rr.Listar(String.Empty);
                pv.TipoProyectos = tpr.Listar(String.Empty);
                p.Solicitudes    = sr.ListarPorProyecto(p.Id);
                pv.Ambientes     = ar.Listar(String.Empty);
                p.Correos        = pr.ListarCorreo(p);
                return(View("Obtener", pv));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new ProyectoView {
                    Mensaje = ex.Message
                }));
            }
        }
コード例 #5
0
        public ActionResult Crear(ServidorView ServidorView)
        {
            try
            {
                string ipServidor     = Request.Form["txtIpServidor"];
                string nombreServidor = Request.Form["txtNombreServidor"];
                int    ambienteid     = Request.Form["cboAmbienteServidor"] == null ? 0 : int.Parse(Request.Form["cboAmbienteServidor"]);
                string descripcion    = Request.Form["txtDescripcion"];

                #region Verificar is ya existe el IP del Servidor
                ServidorRepository pr = new ServidorRepository();
                Servidor           p  = pr.Obtener(ipServidor.Trim());
                if (p != null)
                {
                    ServidorView.Servidor.Ip          = ipServidor;
                    ServidorView.Servidor.Nombre      = nombreServidor;
                    ServidorView.Servidor.Ambiente    = new Ambiente();
                    ServidorView.Servidor.Ambiente.Id = ambienteid;
                    ServidorView.Servidor.Descripcion = descripcion;
                    ServidorView.Mensaje = "El IP del Servidor ya existe";
                    return(View("Crear", ServidorView));
                }
                else
                {
                    p             = new Servidor();
                    p.Ip          = ipServidor;
                    p.Nombre      = nombreServidor;
                    p.Ambiente    = new Ambiente();
                    p.Ambiente.Id = ambienteid;
                    p.Descripcion = descripcion;
                    p             = pr.Actualizar(p);
                    if (p.Id == 0)
                    {
                        ServidorView.Mensaje = "Hubo un error al crear el Servidor";
                        return(View("Crear", ServidorView));
                    }
                    //ServidorView.Servidor = p;
                }
                #endregion
                ServidorView       pp        = new ServidorView();
                AmbienteRepository ar        = new AmbienteRepository();
                List <Ambiente>    ambientes = ar.Listar("");
                ambientes.Insert(0, new Ambiente()
                {
                    Id = 0, Nombre = String.Empty
                });

                pp.Ambientes = ambientes;
                pp.Mensaje   = "Servidor Creado";
                return(View("Crear", pp));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new ServidorView {
                    Mensaje = ex.Message
                }));
            }
        }
コード例 #6
0
 public ActionResult Certificar()
 {
     try
     {
         ProyectoView       pv = new ProyectoView();
         AmbienteRepository ar = new AmbienteRepository();
         pv.Ambientes = ar.Listar("");
         return(View(pv));
     }
     catch (Exception ex)
     {
         ProyectoView pv = new ProyectoView();
         pv.Mensaje = ex.Message;
         return(View("Mensaje", pv));
     }
 }
コード例 #7
0
        public ActionResult Index(ServidorView pcv)
        {
            try
            {
                string ipServidor     = Request.Form["txtIpServidor"];
                string nombreServidor = Request.Form["txtNombreServidor"];
                int    ambienteid     = int.Parse(Request.Form["cboAmbienteServidor"]);
                string descripcion    = Request.Form["txtDescripcion"];

                ServidorRepository pr         = new ServidorRepository();
                List <Servidor>    Servidores = pr.Listar(ipServidor, nombreServidor, ambienteid, descripcion);

                pcv.Servidor             = new Servidor();
                pcv.Servidor.Ip          = ipServidor;
                pcv.Servidor.Nombre      = nombreServidor;
                pcv.Servidor.Ambiente    = new Ambiente();
                pcv.Servidor.Ambiente.Id = ambienteid;
                pcv.Servidor.Descripcion = descripcion;

                AmbienteRepository ar        = new AmbienteRepository();
                List <Ambiente>    ambientes = ar.Listar("");
                ambientes.Insert(0, new Ambiente()
                {
                    Id = 0, Nombre = String.Empty
                });

                pcv.Ambientes = ambientes;

                pcv.Servidores = Servidores;

                string mensaje = "";
                if (Servidores.Count == 0)
                {
                    mensaje = "No existen Servidores para el criterio de búsqueda";
                }
                pcv.Mensaje = mensaje;

                return(View(pcv));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new ServidorView {
                    Mensaje = ex.Message
                }));
            }
        }
コード例 #8
0
 public ActionResult ObjetosPendientes()
 {
     try
     {
         AmbienteRepository ar = new AmbienteRepository();
         ProyectoView       pv = new ProyectoView();
         pv.Mensaje         = String.Empty;
         pv.Ambientes       = ar.Listar(String.Empty);
         pv.ProyectoMarcado = true;
         return(View(pv));
     }
     catch (Exception ex)
     {
         return(View("Mensaje", new ProyectoView {
             Mensaje = ex.Message
         }));
     }
 }
コード例 #9
0
 public ActionResult Crear()
 {
     try
     {
         ProyectoView           pv  = new ProyectoView();
         ResponsableRepository  rr  = new ResponsableRepository();
         TipoProyectoRepository tpr = new TipoProyectoRepository();
         AmbienteRepository     ar  = new AmbienteRepository();
         pv.Responsables  = rr.Listar(String.Empty);
         pv.TipoProyectos = tpr.Listar(String.Empty);
         pv.Ambientes     = ar.Listar(String.Empty);
         return(View(pv));
     }
     catch (Exception ex)
     {
         return(View("Mensaje", new ProyectoView {
             Mensaje = ex.Message
         }));
     }
 }
コード例 #10
0
        //
        // GET: /Servidor/
        public ActionResult Index()
        {
            try
            {
                ServidorView       pcv       = new ServidorView();
                AmbienteRepository ar        = new AmbienteRepository();
                List <Ambiente>    ambientes = ar.Listar("");
                ambientes.Insert(0, new Ambiente()
                {
                    Id = 0, Nombre = String.Empty
                });

                pcv.Ambientes = ambientes;
                return(View(pcv));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new ServidorView {
                    Mensaje = ex.Message
                }));
            }
        }
コード例 #11
0
        public ActionResult Actualizar(ServidorView ServidorView)
        {
            try
            {
                string id             = Request.Form["txtId"];
                string ipServidor     = Request.Form["txtIpServidor"];
                string nombreServidor = Request.Form["txtNombreServidor"];
                int    ambienteid     = int.Parse(Request.Form["cboAmbienteServidor"]);
                string descripcion    = Request.Form["txtDescripcion"];

                Servidor p = new Servidor();
                p.Id          = int.Parse(id);
                p.Ip          = ipServidor;
                p.Nombre      = nombreServidor;
                p.Descripcion = descripcion;
                p.Ambiente    = new Ambiente();
                p.Ambiente.Id = ambienteid;

                #region Usuarios
                var prefijo  = "servidorUsuarioNombre";
                var usuarios = Request.Form.AllKeys.ToList().Where(param => param.Contains(prefijo)).ToList();
                foreach (var item in usuarios)
                {
                    var indice = item.Substring(prefijo.Length);
                    var nombre = Request.Form[prefijo + indice];
                    var clave  = Request.Form["servidorUsuarioClave" + indice];
                    if (!String.IsNullOrEmpty(Request.Form["hdServidorUsuario" + indice]) || Request.Form["eliminadoServidorUsuario" + indice] == "0")
                    {
                        if (p.Usuarios == null)
                        {
                            p.Usuarios = new List <Usuario>();
                        }
                        p.Usuarios.Add(new Usuario
                        {
                            Id       = String.IsNullOrEmpty(Request.Form["hdServidorUsuario" + indice]) ? 0 : Convert.ToInt32(Request.Form["hdServidorUsuario" + indice]),
                            Nombre   = nombre,
                            Clave    = clave,
                            Eliminar = Request.Form["eliminadoServidorUsuario" + indice] == "1"
                        });
                    }
                }
                #endregion

                ServidorRepository pr = new ServidorRepository();

                p = pr.Actualizar(p);
                if (p.Id == 0)
                {
                    ServidorView.Mensaje = "Hubo un error al crear el Servidor";
                    return(View("Nuevo", ServidorView));
                }

                ServidorView pp = new ServidorView();
                pp.Mensaje  = "Servidor Actualizado";
                pp.Servidor = p;

                AmbienteRepository ar        = new AmbienteRepository();
                List <Ambiente>    ambientes = ar.Listar("");
                ambientes.Insert(0, new Ambiente()
                {
                    Id = 0, Nombre = String.Empty
                });

                pp.Ambientes         = ambientes;
                pp.UsuarioLogueado   = ObtenerUsuario();
                pp.Servidor.Usuarios = pr.ListarUsuario(pp.Servidor);
                return(View("Obtener", pp));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new ServidorView {
                    Mensaje = ex.Message
                }));
            }
        }
コード例 #12
0
        public ActionResult ObjetosPendientes(string id)
        {
            try
            {
                AmbienteRepository  ar = new AmbienteRepository();
                ProyectoView        pv = new ProyectoView();
                SolicitudRepository sr = new SolicitudRepository();
                pv.Mensaje   = String.Empty;
                pv.Ambientes = ar.Listar(String.Empty);
                string codigoProyecto = Request.Form["txtCodigoProyecto"];
                int    ambienteId     = int.Parse(Request.Form["cboAmbiente"]);
                int    tipoFormulario = int.Parse(Request.Form["cboTipoFormulario"]);

                //pv.Proyecto = new Proyecto { Codigo = codigoProyecto };
                pv.Ambiente = new Ambiente {
                    Id = ambienteId
                };
                pv.TipoFormulario = tipoFormulario;
                ProyectoRepository pr = new ProyectoRepository();
                pv.Proyecto = pr.Obtener(codigoProyecto);
                if (pv.Proyecto != null && pv.Proyecto.Id > 0)
                {
                    int proyectoId = pv.Proyecto.Id;


                    //UtilExcel utilExcel = new UtilExcel();
                    if (tipoFormulario == 1) // Base de datos
                    {
                        pv.Campos = pr.ListarCampos(proyectoId, ambienteId);

                        pv.ObjetosBD = pr.ListarObjetoBD(proyectoId, ambienteId);

                        pv.PermisosDBU = pr.ListarPermisosDBU(proyectoId, ambienteId);

                        pv.Jobs = pr.ListarJosb(proyectoId, ambienteId);

                        if (pv.ObjetosBD.Count == 0 && pv.Campos.Count == 0 && pv.PermisosDBU.Count == 0 && pv.Jobs.Count == 0)
                        {
                            pv.Mensaje = "No se encontraron registros";
                        }

                        //app.Quit();
                        //ReleaseObject(app);
                    }
                    else if (tipoFormulario == 2) // Configuraciones
                    {
                        pv.Configuraciones = pr.ListarConfiguraciones(proyectoId, ambienteId);


                        if (pv.Configuraciones.Count == 0)
                        {
                            pv.Mensaje = "No se encontraron registros";
                        }
                    }

                    return(View(pv));
                }
                else
                {
                    pv.Mensaje = String.Format("El código de proyecto {0} no existe en el CMS", codigoProyecto);
                    return(View("Mensaje", pv));
                }
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new ProyectoView {
                    Mensaje = ex.Message
                }));
            }
        }
コード例 #13
0
        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
                }));
            }
        }
コード例 #14
0
        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
                }));
            }
        }