Example #1
0
 public AnalyzerLEDEER AnalyzeLEDEER(String xsentences)
 {
     anaLEDEER = new AnalyzerLEDEER(xsentences);
     return(anaLEDEER);
 }
Example #2
0
    /// <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í
    }