private static Condition GetBaseConditionInfo(BaseConditionItem conditionItem) { if (conditionItem == null) { return(null); } var condition = new Condition { Name = conditionItem.Name, Pattern = conditionItem.Pattern.Value, IgnoreCase = conditionItem.IgnoreCase.Checked }; var checkIfInputStringItem = conditionItem.CheckIfInputString.TargetItem; CheckIfInputString?checkIfInputStringType = null; if (checkIfInputStringItem != null) { switch (checkIfInputStringItem.ID.ToString()) { case Constants.CheckIfInputStringType_IsAFile_ItemId: checkIfInputStringType = CheckIfInputString.IsAFile; break; case Constants.CheckIfInputStringType_IsNotAFile_ItemId: checkIfInputStringType = CheckIfInputString.IsNotAFile; break; case Constants.CheckIfInputStringType_IsADirectory_ItemId: checkIfInputStringType = CheckIfInputString.IsADirectory; break; case Constants.CheckIfInputStringType_IsNotADirectory_ItemId: checkIfInputStringType = CheckIfInputString.IsNotADirctory; break; case Constants.CheckIfInputStringType_MatchesThePattern_ItemId: checkIfInputStringType = CheckIfInputString.MatchesThePattern; break; case Constants.CheckIfInputStringType_DoesNotMatchThePattern_ItemId: checkIfInputStringType = CheckIfInputString.DoesNotMatchThePattern; break; default: break; } } condition.CheckIfInputString = checkIfInputStringType; return(condition); }
public static Condition ToCondition(this BaseConditionItem baseConditionItem) { var condition = GetBaseConditionInfo(baseConditionItem); if (condition == null) { return(null); } var baseConditionItemTemplateId = baseConditionItem.InnerItem.TemplateID; if (baseConditionItemTemplateId.Equals(new ID(ConditionItem.TemplateId))) { var conditionInputItem = new ConditionItem(baseConditionItem).ConditionInputType.TargetItem; Tokens?conditionInputType = null; if (conditionInputItem != null) { switch (conditionInputItem.ID.ToString()) { case Constants.ConditionInputType_QueryString_ItemId: conditionInputType = Tokens.QUERY_STRING; break; case Constants.ConditionInputType_HttpHost_ItemId: conditionInputType = Tokens.HTTP_HOST; break; case Constants.ConditionInputType_Https_ItemId: conditionInputType = Tokens.HTTPS; break; default: break; } } condition.InputString = string.Format("{{{0}}}", conditionInputType); } else if (baseConditionItemTemplateId.Equals(new ID(ConditionAdvancedItem.TemplateId))) { condition.InputString = new ConditionAdvancedItem(baseConditionItem).ConditionInputString.Value; } return(condition); }