public void EditarDeficienciaPrueba(EditarDefPruebaView editDefPru)
        {
            tDeficienciaPrueba tDeficienciaPruebas = entity.tDeficienciaPruebas.First(m => m.IdDeficiencia == editDefPru.IdDeficiencia);

            editDefPru.DefPruebaActual.IdPrototipo      = editDefPru.IdPrototipo;
            editDefPru.DefPruebaActual.IdPrueba         = editDefPru.IdPrueba;
            editDefPru.DefPruebaActual.Fecha            = editDefPru.Fecha;
            editDefPru.DefPruebaActual.IdUsuarioCreador = editDefPru.IdUsuarioCreador;
            editDefPru.DefPruebaActual.Descripcion      = editDefPru.Descripcion;
            editDefPru.DefPruebaActual.Limitaciones     = editDefPru.Limitaciones;
            editDefPru.DefPruebaActual.Bloqueo          = editDefPru.Bloqueo;
            var user = HttpContext.Current.User.Identity.Name;

            if (tDeficienciaPruebas.Bloqueo == false && editDefPru.Bloqueo == true)
            {
                editDefPru.DefPruebaActual.IdUsuarioBloqueo = user;
            }
            else
            {
                editDefPru.DefPruebaActual.IdUsuarioBloqueo = editDefPru.IdUsuarioBloqueo;
            }

            entity.tDeficienciaPruebas.ApplyCurrentValues(editDefPru.DefPruebaActual);
            entity.SaveChanges();
        }
        public ActionResult EditarDefPrueba(int id)
        {
            var user = System.Web.HttpContext.Current.User.Identity.Name;
            EditarDefPruebaView editDefPru = new EditarDefPruebaView(id);
            var proy = dre.tPrototipos.FirstOrDefault(f => f.IdPrototipo == editDefPru.IdPrototipo);

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

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

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

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

                    ViewBag.otros = (from pru in dre.tPruebaAfectas
                                     where pru.IdDeficienciaPru == id && pru.IdSistema == 29
                                     select pru.Otros).FirstOrDefault();

                    ViewBag.ErrorMessage = TempData["ErrorMessage"];

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

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

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

            ViewBag.usCreador = usCre.Usuario;

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

            string usBloqueo = editDefPru.IdUsuarioBloqueo;

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

            ViewBag.otros = (from pru in dre.tPruebaAfectas
                             where pru.IdDeficienciaPru == editDefPru.IdDeficiencia && pru.IdSistema == 29
                             select pru.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) && editDefPru.Otros == null)
                {
                    TempData["ErrorMessage"] = "Si como sistema de seguridad elige 'Otros', debe especificarlo";
                }
                else
                {
                    proy.EditarDeficienciaPrueba(editDefPru);
                    proy.AddSistemaPrueba(editDefPru.IdDeficiencia, editDefPru.Otros, selectedSistemas);

                    if (editDefPru.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("DefsPrueba", new { id = editDefPru.IdPrueba }));
                }
            }

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