/// <summary> /// Convert to the fetch XML. /// </summary> /// <param name="filter">The filter.</param> /// <returns></returns> public static string ToFetchXml(this FilterExpression filter) { var builder = new StringBuilder(); if (!filter.IsEmpty()) { builder.AppendFormat("<filter type='{0}'>", filter.FilterOperator.ToString().ToLower()); if (filter.Conditions != null) { foreach (var condition in filter.Conditions) { if (condition != null && !condition.IsEmpty()) { builder.AppendFormat("<condition attribute='{0}' operator='{1}' value='{2}'/>", condition.AttributeName, operators.ContainsKey(condition.Operator) ? operators[condition.Operator] : condition.Operator.ToString().ToLower(), condition.Values[0]); } } } if (filter.Filters != null) { builder.Append(filter.Filters.ToFetchXml()); } builder.Append("</filter>"); } return(builder.ToString()); }