public Hashtable getAtrib() { DaoAtributo dao = new DaoAtributo(); Hashtable table = new Hashtable(); List <Atributo> all = dao.getAll(); foreach (Atributo at in all) { table.Add(at.atributo, at.valor2); } return(table); /*atri_casos.Add("area_damaged", c.area_damaged); * atri_casos.Add("canker_lesion", c.canker_lesion); * atri_casos.Add("crop_hist", c.crop_hist); * atri_casos.Add("date", c.date); * atri_casos.Add("externalDecay", c.externalDecay); * atri_casos.Add("fruitingBodies", c.fruitingBodies); * atri_casos.Add("fruitPods", c.fruitPods); * atri_casos.Add("fruitSpots", c.fruitSpots); * atri_casos.Add("germination", c.germination); * atri_casos.Add("hail", c.hail); * atri_casos.Add("intDiscolor", c.intDiscolor); * atri_casos.Add("leafShread", c.leafShread); * atri_casos.Add("leafsports_halo", c.leafsports_halo); * atri_casos.Add("leafspotMarg", c.leafspotMarg); * atri_casos.Add("leafspotSize", c.leafspotSize); * atri_casos.Add("leaf_malf", c.leaf_malf); * atri_casos.Add("leaf_mild", c.leaf_mild); * atri_casos.Add("leaves", c.leaves); * atri_casos.Add("lodging", c.lodging); * atri_casos.Add("moldGrowth", c.moldGrowth); * atri_casos.Add("mycelium", c.mycelium); * atri_casos.Add("plantStand", c.plantStand); * atri_casos.Add("plant_growth", c.plant_growth); * atri_casos.Add("precip", c.precip); * atri_casos.Add("roots", c.roots); * atri_casos.Add("sclerotia", c.sclerotia); * atri_casos.Add("seed", c.seed); * atri_casos.Add("seedDiscolor", c.seedDiscolor); * atri_casos.Add("seedSize", c.seedSize); * atri_casos.Add("seedTmt", c.seedTmt); * atri_casos.Add("severity", c.severity); * atri_casos.Add("shriveling", c.shriveling); * atri_casos.Add("stem", c.stem); * atri_casos.Add("stemCankers", c.stemCankers); * atri_casos.Add("temp", c.temp);*/ }
public Hashtable organizarAtributos(Hashtable atrib) { DaoAtributo atrib_dao = new DaoAtributo(); List <Atributo> lAtrib = atrib_dao.getAll(); atrib["area_damaged"].ToString(); //atrib["canker_laesion"].ToString(); return(null); }
public List <CasoNum> trasnformar(List <Caso> casos) { DaoAtributo atb_dao = new DaoAtributo(); PropertyInfo[] valAtb = casos.GetType().GetProperties(); List <CasoNum> cs = new List <CasoNum>(); List <Atributo> at = atb_dao.getAll(); foreach (Caso c in casos) { } return(null); }
public List <Caso> calculaSimilaridadeLocal(Caso casoBase) { DaoCaso dao_caso = new DaoCaso(); List <Caso> allCasos = dao_caso.getAll(); //Hashtable sl = new Hashtable(); PropertyInfo[] valCaso = casoBase.GetType().GetProperties(); DaoAtributo at = new DaoAtributo(); Atributo atb2 = new Atributo(); Hashtable pesos = getPesos(); List <Atributo> atbs = at.getAll(); List <Caso> casoSimilar = new List <Caso>(); double similaridadeLocal = 0; double similaridadeGlobal = 0; double div = 0; for (int j = 0; j < allCasos.Count; j++) { Hashtable similaridades = new Hashtable(); PropertyInfo[] valTab = allCasos[j].GetType().GetProperties(); similaridadeLocal = 0; div = 0; for (int i = 3; i <= 37; i++) { //atb.atributo = valTab[i].Name; //Atributo atb2 = at.searchOther(atb); atb2 = atbs.Find(a => a.atributo.Equals(valTab[i].Name.Replace('_', '-'))); if (valCaso[i].GetValue(casoBase).Equals("Desconhecido") || valTab[i].GetValue(allCasos[j]).Equals("Desconhecido")) { similaridadeLocal += 0; //similaridades.Add(valCaso[i].Name, similaridadeLocal); } else if (valCaso[i].GetValue(casoBase).Equals("Desconhecido") && valTab[i].GetValue(allCasos[j]).Equals("Desconhecido")) { similaridadeLocal += (1 * Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString())); div += Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString()); //similaridades.Add(valCaso[i].Name, similaridadeLocal); } else if (atb2.similaridade.Equals("Não")) { if (valCaso[i].Name.Equals(valTab[i].Name)) { similaridadeLocal += (1 * Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString())); div += Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString()); } similaridadeLocal += 0; //similaridades.Add(valCaso[i].Name, similaridadeLocal); } else { var atbVal = valCaso[i].GetValue(casoBase); var atbTabela = valTab[i].GetValue(allCasos[j]); double valorCaso = valAtributo(valCaso[i].Name, (String)atbVal); double valorTab = valAtributo(valTab[i].Name, (String)atbTabela); double[] maxMin = maxMinCol(valCaso[i].Name); /*maxMin[0] = 1; * maxMin[1] = 3;*/ if (maxMin[0] != maxMin[1]) { similaridadeLocal += (1 - ((Math.Abs(valorCaso - valorTab))) / (maxMin[1] - maxMin[0]) * Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString())); div += Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString()); } else { similaridadeLocal += (1 - (Math.Abs(valorCaso - valorTab)) * Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString())); div += Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString()); } //similaridades.Add(valCaso[i].Name, similaridadeLocal); } } //sl.Add(allCasos[j].caso, similaridades); similaridadeGlobal = similaridadeLocal / div; Caso c = allCasos[j]; c.SimilaridadeGlobal = similaridadeGlobal; casoSimilar.Add(c); } return(casoSimilar); }