public ActionResult Caracteristicas(FormCollection fc) { var usuario = db.Usuarios.Where(u => u.NombreUsuario == User.Identity.Name).FirstOrDefault().UsuarioId; var id = Session["reglaid"]; var reglasListCurrent = db.Database.SqlQuery <spReglasCaracteristicas>("spReglasCaracteristicas @ReglaId", new SqlParameter("@ReglaId", id)).OrderBy(x => x.ReglaCatalogoId).ToList(); var textMovimiento = string.Empty; var reglaNombre = string.Empty; foreach (var item in reglasListCurrent) { reglaNombre = item.Regla; } movimiento = "Modificando Características Regla : " + reglaNombre; MovementsHelper.MovimientosBitacora(usuario, modulo, movimiento); string[] reglaCaractersiticaId = fc.GetValues("ReglaCaractersiticaId"); //string[] seleccionado = fc.GetValues("Seleccionado"); string[] isTrue = fc.GetValues("IsTrue"); string[] isFalse = fc.GetValues("IsFalse"); var selec = false; for (var i = 0; i < reglaCaractersiticaId.Length; i++) { ReglaCaracteristica reglaCaracteristica = db.ReglasCaracteristicas.Find(Convert.ToInt32(reglaCaractersiticaId[i])); //var reglaId = reglaCaracteristica.ReglaId; if (isTrue == null) { selec = false; reglaCaracteristica.IsTrue = selec; db.Entry(reglaCaracteristica).State = EntityState.Modified; db.SaveChanges(); } else { for (var j = 0; j < isTrue.Length; j++) { if (reglaCaractersiticaId[i] == isTrue[j]) { selec = true; reglaCaracteristica.IsTrue = selec; db.Entry(reglaCaracteristica).State = EntityState.Modified; db.SaveChanges(); break; } else { selec = false; reglaCaracteristica.IsTrue = selec; db.Entry(reglaCaracteristica).State = EntityState.Modified; db.SaveChanges(); } } if (!selec) { selec = false; reglaCaracteristica.IsTrue = selec; db.Entry(reglaCaracteristica).State = EntityState.Modified; db.SaveChanges(); } } if (isFalse == null) { selec = false; reglaCaracteristica.IsFalse = selec; db.Entry(reglaCaracteristica).State = EntityState.Modified; db.SaveChanges(); } else { for (var j = 0; j < isFalse.Length; j++) { if (reglaCaractersiticaId[i] == isFalse[j]) { selec = true; reglaCaracteristica.IsFalse = selec; db.Entry(reglaCaracteristica).State = EntityState.Modified; db.SaveChanges(); break; } else { selec = false; reglaCaracteristica.IsFalse = selec; db.Entry(reglaCaracteristica).State = EntityState.Modified; db.SaveChanges(); } } if (!selec) { selec = false; reglaCaracteristica.IsFalse = selec; db.Entry(reglaCaracteristica).State = EntityState.Modified; db.SaveChanges(); } } } var regla = db.ReglasCaracteristicas.Find(Convert.ToInt32(reglaCaractersiticaId[1])); var reglaId = regla.ReglaId; var articuloId = db.Reglas.Find(reglaId); var articuloKFCId = db.ArticuloKFCs.Where(x => x.ArticuloKFCId == articuloId.ArticuloKFCId).FirstOrDefault().ArticuloKFCId; var restauranteId = 0; var categoria = string.Empty; var campaña = db.Campañas.Where(x => x.Generada == "NO").FirstOrDefault(); EliminarMateriales(articuloKFCId, campaña); MovementsHelper.AgregarMaterialesTiendaCampañaExiste(articuloKFCId, restauranteId, categoria); var material = db.ArticuloKFCs.Where(x => x.ArticuloKFCId == articuloId.ArticuloKFCId).FirstOrDefault(); if (campaña != null) { var campañaId = campaña.CampañaId; MovementsHelper.AgregarArticuloCampañas(material, campañaId); } var reglasListActualizado = db.Database.SqlQuery <spReglasCaracteristicas>("spReglasCaracteristicas @ReglaId", new SqlParameter("@ReglaId", id)).OrderBy(x => x.ReglaCatalogoId).ToList(); textMovimiento = string.Empty; reglaNombre = string.Empty; var valorIsTrue = string.Empty; var valorIsFalse = string.Empty; for (int i = 0; i < reglasListCurrent.Count; i++) { var caracteristica = reglasListActualizado.Where(x => x.ReglaCatalogoId == reglasListCurrent[i].ReglaCatalogoId).FirstOrDefault(); if (caracteristica.IsFalse != reglasListCurrent[i].IsFalse || caracteristica.IsTrue != reglasListCurrent[i].IsTrue) { if (caracteristica.IsTrue == true) { valorIsTrue = "ACTIVADO"; } else { valorIsTrue = "DEACTIVADO"; } if (caracteristica.IsFalse == true) { valorIsFalse = "ACTIVADO"; } else { valorIsFalse = "DESACTIVADO"; } textMovimiento += " " + caracteristica.Caracteristica + " SI : " + valorIsTrue + " - NO : " + valorIsFalse + " / "; } reglaNombre = caracteristica.Regla; } if (textMovimiento == string.Empty) { textMovimiento = "Sin Modificaciones"; } movimiento = "Características Asignadas Regla : " + reglaNombre + " / " + textMovimiento.ToString(); MovementsHelper.MovimientosBitacora(usuario, modulo, movimiento); Session["reglaid"] = string.Empty; return(Json(new { success = true, message = "CARACTERÍSTICAS ASIGNADAS" }, JsonRequestBehavior.AllowGet)); }