public AnalyzerLEDEER AnalyzeLEDEER(String xsentences) { anaLEDEER = new AnalyzerLEDEER(xsentences); return(anaLEDEER); }
/// <summary> /// Ejecutar una funcionalidad /// </summary> /// <param name="namearena"></param> /// <param name="nameaction"></param> /// <param name="nameuser"></param> /// <returns></returns> public bool executeScenario(string namearena, string nameaction, string nameuser) { bool exec = false; if (namearena.CompareTo(String.Empty) != 0 && nameaction.CompareTo(String.Empty) != 0 && nameuser.CompareTo(String.Empty) != 0) { def = new DefinerLEDEER(); string namescenario = def.getScenarioOfAction(namearena, nameaction); DataSet sentences = def.getSentencesOfScenario(namearena, namescenario); string sentencesIPre = ""; string sentencesIPos = ""; string sentencesFPre = ""; string sentencesFPos = ""; try { foreach (DataRow dr in sentences.Tables[0].Rows) { if (dr["AtrProcess"].ToString().CompareTo("Initialize") == 0 && dr["AtrType"].ToString().CompareTo("Precondition") == 0) { sentencesIPre = dr["AtrSentence"].ToString(); } else if (dr["AtrProcess"].ToString().CompareTo("Initialize") == 0 && dr["AtrType"].ToString().CompareTo("Poscondition") == 0) { sentencesIPos = dr["AtrSentence"].ToString(); } else if (dr["AtrProcess"].ToString().CompareTo("Finalize") == 0 && dr["AtrType"].ToString().CompareTo("Precondition") == 0) { sentencesFPre = dr["AtrSentence"].ToString(); } else if (dr["AtrProcess"].ToString().CompareTo("Finalize") == 0 && dr["AtrType"].ToString().CompareTo("Poscondition") == 0) { sentencesFPos = dr["AtrSentence"].ToString(); } } //Revisar sintaxis al = new AnalyzerLEDEER(sentencesIPre); //Tablas de símbolos List <Symbol> tableIPre; List <string> stringsIPre; List <Symbol> tableIPos; List <string> stringsIPos; List <Symbol> tableFPre; List <string> stringsFPre; List <Symbol> tableFPos; List <string> stringsFPos; if (al.CheckSyntaxB()) { tableIPre = al.getSymbolsTable(); stringsIPre = al.getStrings(); if (al.CheckSyntaxB(sentencesIPos)) { tableIPos = al.getSymbolsTable(); stringsIPos = al.getStrings(); if (al.CheckSyntaxB(sentencesFPre)) { //Tabla y cadenas 1 tableFPre = al.getSymbolsTable(); stringsFPre = al.getStrings(); if (al.CheckSyntaxB(sentencesFPos)) { string PATH = "C:\\inetpub\\wwwroot\\LEDEER\\" + LEDEER.path_XML; string path = PATH + new LogicaNegocio().Ledeer().ExportXML(namearena, PATH); List <string> table_def = new List <string>(); /// table_def.Insert(); XmlReader xml = new XmlTextReader(path); Util.Util.XMLReadFile(xml, table_def); tableFPos = al.getSymbolsTable(); stringsFPos = al.getStrings(); if (Util.Util.ValueOnCode(table_def, Symbol.CODEACTORS, nameuser) != -1 && Util.Util.ValueOnCode(table_def, Symbol.CODEACTION, nameaction) != -1 ) { //Ejecutar //Init, Pre exec = executeSentences(stringsIPre, tableIPre, table_def, namearena, nameaction, nameuser); //Init, Pos if (exec && tableIPos.Count > 0) { exec = executeSentences(stringsIPos, tableIPos, table_def, namearena, nameaction, nameuser); } //Fin, Pre if (exec) { exec = executeSentences(stringsFPre, tableFPre, table_def, namearena, nameaction, nameuser); } if (exec) { //Fin, Pos exec = executeSentences(stringsFPos, tableFPos, table_def, namearena, nameaction, nameuser); } } else { exec = false; } return(exec); } } } } } catch { ; } } return(false); //No se puede ejecutar si se llega hasta aquí }