Пример #1
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
                }));
            }
        }
Пример #2
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
                }));
            }
        }