public bool compile() { base.compile(); bool ret = false; Node valueNode = FindFirstNode(); Node nodeEntry = Compiler.mapLink[valueNode]; IActivity farActivity = FindActivityByEntry(nodeEntry); mapNodeValue["[%DONE%]"] = farActivity; Page thisPage = ThisPage(); strCurrentExt = FindExtension(this); if (strCurrentExt.Trim().Length <= 0) { Compiler.PrintError("Disconnected link", ""); return(false); } if (Compiler.mapPage.ContainsKey(farActivity.DocID)) { Page page = Compiler.mapPage[farActivity.DocID]; string strVal = ""; string strGotoLabel = ""; if (attribute.ContainsKey("extension")) { strVal = attribute["extension"]; if (strVal.Trim().Length <= 0) { Compiler.PrintError("Activity '" + strDesc + "' in '" + this.FindFlow(strDocID) + "' - variable " + strVal + " not be defined.", ""); return(ret); } else if (VariableExist(strVal, true)) { strVal = "${" + strVal + "}"; } } if (attribute.ContainsKey("gotolabel")) { strGotoLabel = attribute["gotolabel"]; if (strGotoLabel.Trim().Length <= 0) { Compiler.PrintError("Label '" + strDesc + "' in '" + this.FindFlow(strDocID) + "' - variable " + strVal + " not be defined.", ""); return(ret); } } //Goto label lpInstruction = new ArrayList(); InstructionSet set = new InstructionSet(); set.ExtNumber = strCurrentExt; set.Label = strDesc.Replace(' ', '_'); if (thisPage.DocID == page.DocID) { if (strGotoLabel.ToLower() == "start") { set.Instruction = string.Format("Goto({0},{1})", new object[] { strVal, 1 }); } else { set.Instruction = string.Format("Goto({0},{1})", new object[] { strVal, strGotoLabel }); } } else { if (strGotoLabel.ToLower() == "start") { set.Instruction = string.Format("Goto({0},{1},{2})", new object[] { page.FlowName.Replace(' ', '_'), strVal, 1 }); } else { set.Instruction = string.Format("Goto({0},{1},{2})", new object[] { page.FlowName.Replace(' ', '_'), strVal, strGotoLabel }); } } lpInstruction.Add(set); priorityOffset = lpInstruction.Count - 1; ret = true; } else { Compiler.PrintError("Subflow for " + strDesc + " not be defined.", ""); } return(ret); }
public bool compile() { base.compile(); bool ret = false; string strVal = ""; string strType = ""; strCurrentExt = FindExtension(this); if (strCurrentExt.Trim().Length <= 0) { Compiler.PrintError("Disconnected link", ""); return(false); } if (attribute.ContainsKey("variable")) { strVal = attribute["variable"]; if (strVal.Trim().Length <= 0) { Compiler.PrintError("Activity '" + strDesc + "' in '" + this.FindFlow(strDocID) + "' - variable " + strVal + " not be defined.", ""); return(ret); } else if (VariableExist(strVal, true)) { strVal = "${" + strVal + "}"; } } if (attribute.ContainsKey("type")) { strType = attribute["type"]; } Node valueNode = FindNodeByResult("Done"); Node nodeEntry = Compiler.mapLink[valueNode]; IActivity farActivity = FindActivityByEntry(nodeEntry); mapNodeValue["[%DONE%]"] = farActivity; lpInstruction = new ArrayList(); if (strType.ToUpper() == "Digits".ToUpper()) { InstructionSet set = new InstructionSet(); set.ExtNumber = strCurrentExt; set.Label = strDesc.Replace(' ', '_'); set.Instruction = string.Format("SayDigits({0}) ", new object[] { strVal }); lpInstruction.Add(set); } else if (strType.ToUpper() == "Alpha".ToUpper()) { InstructionSet set = new InstructionSet(); set.ExtNumber = strCurrentExt; set.Label = strDesc.Replace(' ', '_'); set.Instruction = string.Format("SayAlpha({0}) ", new object[] { strVal }); lpInstruction.Add(set); } else if (strType.ToUpper() == "Number".ToUpper()) { InstructionSet set = new InstructionSet(); set.ExtNumber = strCurrentExt; set.Label = strDesc.Replace(' ', '_'); set.Instruction = string.Format("SayNumber({0}) ", new object[] { strVal }); lpInstruction.Add(set); } else if (strType.ToUpper() == "Phonetic".ToUpper()) { InstructionSet set = new InstructionSet(); set.ExtNumber = strCurrentExt; set.Label = strDesc.Replace(' ', '_'); set.Instruction = string.Format("SayPhonetic({0}) ", new object[] { strVal }); lpInstruction.Add(set); } else { InstructionSet set = new InstructionSet(); set.ExtNumber = strCurrentExt; set.Label = strDesc.Replace(' ', '_'); set.Instruction = string.Format("SayDigits({0}) ", new object[] { strVal }); lpInstruction.Add(set); } priorityOffset = lpInstruction.Count - 1; ret = true; return(ret); }
public bool compile() { base.compile(); bool ret = false; lpInstruction = new ArrayList(); string strMaxDigit = ""; string strRetry = ""; string strSilent = ""; string strEntryMsg = ""; string strOptions = ""; string strVariable = ""; if (attribute.ContainsKey("maxdigit")) { strMaxDigit = attribute["maxdigit"]; } if (attribute.ContainsKey("retry")) { strRetry = attribute["retry"]; } if (attribute.ContainsKey("silent")) { strSilent = Convert.ToString(Convert.ToInt32(attribute["silent"]) * 1); } if (attribute.ContainsKey("variable")) { strVariable = attribute["variable"]; if (!VariableExist(strVariable, true)) { Compiler.PrintError("Activity '" + strDesc + "' in '" + this.FindFlow(strDocID) + "' - variable " + strVariable + " not be defined.", ""); return(ret); } else { strVariable = "${" + strVariable + "}"; } } if (attribute.ContainsKey("options")) { strOptions = attribute["options"]; } if (attribute.ContainsKey("entrymsg")) { strEntryMsg = attribute["entrymsg"]; if (strEntryMsg.Trim().Length <= 0) { Compiler.PrintError("Activity '" + strDesc + "' in '" + this.FindFlow(strDocID) + "' - variable " + strEntryMsg + " not be defined.", ""); return(ret); } else if (!VariableExist(strEntryMsg, true)) { //none } else { strEntryMsg = "${" + strEntryMsg + "}"; } } strCurrentExt = FindExtension(this); if (strCurrentExt.Trim().Length <= 0) { Compiler.PrintError("Disconnected link", ""); return(false); } InstructionSet set = new InstructionSet(); set.ExtNumber = strCurrentExt; set.Label = strDesc.Replace(' ', '_'); set.Instruction = string.Format("read({0},{1},{2},{3},{4},{5})", new object[] { strVariable, strEntryMsg, strMaxDigit, strOptions, strRetry, strSilent }); lpInstruction.Add(set); Node valueNode = FindNodeByResult("Done"); Node nodeEntry = Compiler.mapLink[valueNode]; IActivity farActivity = FindActivityByEntry(nodeEntry); mapNodeValue["[%DONE%]"] = farActivity; priorityOffset = lpInstruction.Count - 1; ret = true; return(ret); }