/// <summary> /// Creates a new instance of the IfBlock class. /// </summary> /// <param name="raw">Raw string.</param> public IfBlock(string raw) { ConcreteForm = RegExHelper.TrimUntilChar(RegExHelper.ClearStringFormatting(raw), '$') + "}"; var subBlocks = RegExHelper.GetContainedString(raw, ">", "<"); var innerBlock = RegExHelper.GetContainedString(raw, "<#if", ">")[0].Value; var rawAction = subBlocks[0].Value; if (subBlocks.Count > 1) { elseAction = new TemplateModel(subBlocks[1].Value); } action = new TemplateModel(rawAction); innerBlock = innerBlock.Replace(" ", string.Empty); if (innerBlock.Contains("&&")) { optr = "&&"; } else if (innerBlock.Contains("||")) { optr = "||"; } if (string.IsNullOrEmpty(optr)) { conditions = new[] { new IfCondition(innerBlock) }; } else { var rawConditions = innerBlock.Split(new[] { "||" }, StringSplitOptions.RemoveEmptyEntries); var condList = new List <IfCondition>(); foreach (var c in rawConditions) { condList.Add(new IfCondition(c)); } conditions = condList.ToArray(); } }