/// <summary> /// Parse all variables in template /// </summary> private void ParseVariables() { int idxCurrent = 0; while ((idxCurrent = this._ParsedBlock.IndexOf(this.VariableTagBegin, idxCurrent)) != -1) { string VarName, VarValue; int idxVarTagEnd; idxVarTagEnd = this._ParsedBlock.IndexOf(this.VariableTagEnd, (idxCurrent + this.VariableTagBegin.Length)); if (idxVarTagEnd == -1) { throw new Exception(String.Format("Index {0}: could not find Variable End Tag", idxCurrent)); } // Getting Variable Name VarName = this._ParsedBlock.Substring((idxCurrent + this.VariableTagBegin.Length), (idxVarTagEnd - idxCurrent - this.VariableTagBegin.Length)); // Checking for Modificators string[] VarParts = VarName.Split(this.ModificatorTag.ToCharArray()); VarName = VarParts[0]; // Getting Variable Value // If Variable doesn't exist in _hstValue then // Variable Value equal empty string // [added 6/6/2006] If variable is null than it will also has empty string VarValue = String.Empty; if (this._hstValues.ContainsKey(VarName) && this._hstValues[VarName] != null) { VarValue = this._hstValues[VarName].ToString(); } //Added by Shrikant if (VarName.Contains(this.BlockTagBeginBegin)) { string lst = VarName.Substring(0, VarName.LastIndexOf('-')); if (this._hstValues.ContainsKey(VarName) && this._hstValues[VarName] != null) { VarValue = this._hstValues[VarName].ToString(); } } //End Add // Apply All Modificators to Variable Value for (int i = 1; i < VarParts.Length; i++) { this.ApplyModificator(ref VarValue, VarParts[i]); } // Replace Variable in Template this._ParsedBlock = this._ParsedBlock.Substring(0, idxCurrent) + VarValue + this._ParsedBlock.Substring(idxVarTagEnd + this.VariableTagEnd.Length); // Add Length of added value to Current index // to prevent looking for variables in the added value // Fixed Date: April 5, 2006 idxCurrent += VarValue.Length; } }