public ActionResult Cabeca(int ID, VMRegra Modelo) { if (ModelState.IsValid) { Modelo.Regra = dbSE.Regras.Where(a => a.ID == ID).SingleOrDefault(); Cabecario Cabecario = new Cabecario(); Cabecario.NOT = Modelo.Not; Cabecario.Operador = Modelo.Operador; Cabecario.Valor = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(Modelo.Valor); Cabecario.Variavel = dbSE.Variaveis.Where(o => o.Nome == Modelo.VarID).SingleOrDefault(); dbSE.Cabecarios.Add(Cabecario); if (Modelo.Conjuncao) { ListaE E = new ListaE(); E.Cabeca = Cabecario; E.Pos = Modelo.Regra.Conj.Count(); E.Regra = Modelo.Regra; dbSE.ListE.Add(E); Modelo.Regra.E.Add(E); dbSE.Regras.AddOrUpdate(Modelo.Regra); dbSE.SaveChanges(); return(RedirectToAction("Cabeca/" + ID)); } else { ListaOU OU = new ListaOU(); OU.Cabeca = Cabecario; OU.Pos = Modelo.Regra.Conj.Count(); OU.Regra = Modelo.Regra; dbSE.ListOU.Add(OU); Modelo.Regra.Ou.Add(OU); dbSE.Regras.AddOrUpdate(Modelo.Regra); dbSE.SaveChanges(); return(RedirectToAction("Cabeca/" + ID)); } } Modelo.Regra = dbSE.Regras.Where(a => a.ID == ID).SingleOrDefault(); Modelo.Variaveis = dbSE.Variaveis.Where(o => o.Base.Select(a => a.Base.ID).Contains(Modelo.BaseID)).Select(a => a.Nome).ToList(); Modelo.Operadores = new List <string> { "=", "!=", "<", "<=", ">", ">=" }; return(View(Modelo)); // return RedirectToAction("Cabeca/" + ID); }
static void Main() { ListaE LST = new ListaE(); LST.Insertar(90); LST.Insertar(12); LST.Insertar(24); LST.Mostrar(); LST.Borrar(90); LST.Mostrar(); }
private void Montar(Regra Regra) { BancoDeDados db = new BancoDeDados(); Regra = db.Regras.Where(a => a.ID == Regra.ID).SingleOrDefault(); double confianca = 1; bool resultado = Cabecas.Select(a => a.Item1.ID).Contains(Regra.Se.ID); if (resultado) { confianca = Cabecas.Where(a => a.Item1.ID == Regra.Se.ID).SingleOrDefault().Item2; } int cont = Regra.E.Count + Regra.Ou.Count; if (cont == 0) { if (resultado) { Aplicar(Regra, confianca); return; } else { return; } } ; for (int i = 1; i <= cont; i++) { try { ListaE temp = Regra.E.Where(a => a.Pos == i).SingleOrDefault(); resultado = resultado && Cabecas.Select(a => a.Item1.ID).Contains(temp.Cabeca.ID); if (resultado) { confianca *= Cabecas.Where(a => a.Item1.ID == temp.Cabeca.ID).SingleOrDefault().Item2; } } catch (Exception) { } try { ListaOU temp = Regra.Ou.Where(a => a.Pos == i).SingleOrDefault(); resultado = resultado || Cabecas.Select(a => a.Item1.ID).Contains(temp.Cabeca.ID); double aux = Cabecas.Where(a => a.Item1.ID == temp.Cabeca.ID).SingleOrDefault().Item2; if (resultado) { confianca = (confianca + aux) - (confianca * aux); } } catch (Exception) { } } if (resultado) { Aplicar(Regra, confianca); } }
public List <ListaE> GetListas(String SQL, Object[] parametros) { int ntablas; Mensaje mensaje; List <ListaE> result = new List <ListaE>(); AccesoDatos acceso = new AccesoDatos(); ListaE list; SqlDataReader sqldatareader = acceso.GetDataReader(out mensaje, parametros, "prListas"); if (mensaje.Titulo != null) { result.Add(new ListaE() { Mensaje = mensaje }); } else { String[] tablas = ((SqlParameter)parametros[0]).Value.ToString().Split(','); ntablas = 0; // DataTable sqlda = acceso.Get(parametros, SQL); while (sqldatareader.HasRows) { list = new ListaE() { Id = ntablas, Nombre = tablas[ntablas] }; list.Listas = new List <ListaE>(); while (sqldatareader.Read()) { if (sqldatareader.GetDataTypeName(0) == "bigint") { list.Listas.Add(new ListaE() { Id = sqldatareader.GetInt64(0), Nombre = sqldatareader.GetString(1) }); } else { list.Listas.Add(new ListaE() { IdString = sqldatareader.GetString(0), Nombre = sqldatareader.GetString(1) }); } } result.Add(list); ntablas = ntablas + 1; sqldatareader.NextResult(); } if (sqldatareader.IsClosed == false) { sqldatareader.Close(); } sqldatareader = null; acceso.Desconectar(); } return(result); }