public void EditarDeficiencia(EditarDefView editDef)
        {
            tDeficiencia tDeficiencias = entity.tDeficiencias.First(m => m.IdDeficiencia == editDef.IdDeficiencia);

            editDef.DeficienciaActual.IdPrototipo      = editDef.IdPrototipo;
            editDef.DeficienciaActual.IdFase           = editDef.IdFase;
            editDef.DeficienciaActual.Fecha            = editDef.Fecha;
            editDef.DeficienciaActual.IdUsuarioCreador = editDef.IdUsuarioCreador;
            editDef.DeficienciaActual.Descripcion      = editDef.Descripcion;
            editDef.DeficienciaActual.Limitaciones     = editDef.Limitaciones;
            editDef.DeficienciaActual.Bloqueo          = editDef.Bloqueo;
            var user = HttpContext.Current.User.Identity.Name;

            if (tDeficiencias.Bloqueo == false && editDef.Bloqueo == true)
            {
                editDef.DeficienciaActual.IdUsuarioBloqueo = user;
            }
            else
            {
                editDef.DeficienciaActual.IdUsuarioBloqueo = editDef.IdUsuarioBloqueo;
            }

            entity.tDeficiencias.ApplyCurrentValues(editDef.DeficienciaActual);
            entity.SaveChanges();
        }
        public ActionResult EditarDefFase(int id)
        {
            var           user    = System.Web.HttpContext.Current.User.Identity.Name;
            EditarDefView editDef = new EditarDefView(id);
            var           proy    = dre.tPrototipos.FirstOrDefault(f => f.IdPrototipo == editDef.IdPrototipo);

            if (editDef.DeficienciaActual.FechaResolucion == null)
            {
                if (editDef.IdUsuarioCreador == user || proy.Responsable == user)
                {
                    string proyecto = proy.Proyecto;
                    ViewBag.Message  = " del proyecto ";
                    ViewBag.Message2 = proyecto;
                    ViewBag.idProy   = editDef.IdPrototipo;

                    string usCreador = editDef.IdUsuarioCreador;
                    var    usCre     = dre.tUsuarios.FirstOrDefault(u => u.IdUsuario == usCreador);
                    ViewBag.usCreador = usCre.Usuario;

                    if (editDef.Bloqueo == true)
                    {
                        ViewBag.Bloqueo = "Sí";
                    }
                    else
                    {
                        ViewBag.Bloqueo = "No";
                    }

                    string usBloqueo = editDef.IdUsuarioBloqueo;
                    if (usBloqueo != null)
                    {
                        var usBloq = dre.tUsuarios.FirstOrDefault(u => u.IdUsuario == usBloqueo);
                        ViewBag.usBloqueo = usBloq.Usuario;
                    }

                    ViewBag.otros = (from fa in dre.tFaseAfectas
                                     where fa.IdDeficienciaFas == id && fa.IdSistema == 29
                                     select fa.Otros).FirstOrDefault();

                    ViewBag.ErrorMessage = TempData["ErrorMessage"];

                    return(View(editDef));
                }
                else
                {
                    TempData["ErrorMessage"] = "Solo puede editar la deficiencia su creador o el responsable del proyecto";
                    return(RedirectToAction("DefsFase", new { id = editDef.IdFase }));
                }
            }
            else
            {
                TempData["ErrorMessage"] = "No se pueden editar deficiencias resueltas. Cree una nueva.";
                return(RedirectToAction("DefsFase", new { id = editDef.IdFase }));
            }
        }
        public ActionResult EditarDefFase(EditarDefView editDef, int[] selectedSistemas)
        {
            ProyectosManager proy     = new ProyectosManager(editDef.IdPrototipo);
            string           proyecto = proy.ProyectoActual.Proyecto;

            ViewBag.Message  = " del proyecto ";
            ViewBag.Message2 = proyecto;
            ViewBag.idProy   = editDef.IdPrototipo;

            string usCreador = editDef.IdUsuarioCreador;
            var    usCre     = dre.tUsuarios.FirstOrDefault(u => u.IdUsuario == usCreador);

            ViewBag.usCreador = usCre.Usuario;

            if (editDef.Bloqueo == true)
            {
                ViewBag.Bloqueo = "Sí";
            }
            else
            {
                ViewBag.Bloqueo = "No";
            }

            string usBloqueo = editDef.IdUsuarioBloqueo;

            if (usBloqueo != null)
            {
                var usBloq = dre.tUsuarios.FirstOrDefault(u => u.IdUsuario == usBloqueo);
                ViewBag.usBloqueo = usBloq.Usuario;
            }

            ViewBag.otros = (from fa in dre.tFaseAfectas
                             where fa.IdDeficienciaFas == editDef.IdDeficiencia && fa.IdSistema == 29
                             select fa.Otros).FirstOrDefault();
            if (ModelState.IsValid)
            {
                if (selectedSistemas == null)
                {
                    TempData["ErrorMessage"] = "Debe especificar al menos un sistema de seguridad o limitador";
                }
                else if (proy.IsOtrosSelected(selectedSistemas) && editDef.Otros == null)
                {
                    TempData["ErrorMessage"] = "Si como sistema de seguridad elige 'Otros', debe especificarlo";
                }
                else
                {
                    proy.EditarDeficiencia(editDef);
                    proy.AddSistema(editDef.IdDeficiencia, editDef.Otros, selectedSistemas);

                    if (editDef.Bloqueo == true)
                    {
                        TempData["ErrorMessage"] = "¡Debe poner carteles de bloqueo a pie de prototipo y en mando control remoto!";
                    }

                    TempData["SuccessMessage"] = "Deficiencia editada con éxito";
                    return(RedirectToAction("DefsFase", new { id = editDef.IdFase }));
                }
            }

            ViewBag.ErrorMessage = TempData["ErrorMessage"];
            return(View(editDef));
        }