public static List <string> procuraSintomas(List <string> lista, String xmlPath) { List <String> listaFinal = new List <string>(); String xpath = ""; List <Diagnostico> listaDiagnosticos = new List <Diagnostico>(); List <Sintoma> listaSintomas; List <Int32> bedjoras = new List <Int32>(); Diagnostico diagAux; foreach (String s in lista) { xpath = "//ListaSintomas/sintoma[text()=\"" + s + "\"]/../.."; XmlDocument doc = new XmlDocument(); doc.Load(xmlPath); XmlNodeList nodeList = doc.SelectNodes(xpath); foreach (XmlNode node in nodeList) { listaSintomas = new List <Sintoma>(); foreach (XmlNode x in node.ChildNodes[3].ChildNodes) { listaSintomas.Add(new Sintoma(x.InnerText)); } diagAux = new Diagnostico(node.ChildNodes[1].InnerText, node.ChildNodes[0].InnerText, node.ChildNodes[2].InnerText, listaSintomas); //TESTE if (exists(listaDiagnosticos, diagAux)) { int indice = getIndice(listaDiagnosticos, diagAux); bedjoras[indice] += 1; } else { listaDiagnosticos.Add(diagAux); bedjoras.Add(1); } } } foreach (Diagnostico d in listaDiagnosticos) { int aux = listaDiagnosticos.IndexOf(d); int count = bedjoras[aux]; int auxcontagem = d.ListSintomas.Count(); decimal bla = count / Convert.ToDecimal(auxcontagem); decimal resultado = Math.Round(bla * 100, 1); listaFinal.Add(resultado + "|" + d.ToString()); } listaFinal.Sort(new ComparacaoResultados()); return(listaFinal); }
public static Boolean exists(List <Diagnostico> lista, Diagnostico d) { if (lista.Count > 0) { foreach (Diagnostico diagnostico in lista) { if (diagnostico.Nome.Equals(d.Nome) && diagnostico.Orgao.Equals(d.Orgao)) { return(true); } } } return(false); }
public static int getIndice(List <Diagnostico> lista, Diagnostico d) { if (lista.Count > 0) { foreach (Diagnostico diagnostico in lista) { if (diagnostico.Nome.Equals(d.Nome) && diagnostico.Orgao.Equals(d.Orgao)) { return(lista.IndexOf(diagnostico)); } } } return(-1); }