public static JObject ToResponseWithExcludedAttributes(this SCIMRepresentation representation, ICollection <SCIMExpression> excludedAttributes, string location) { var result = (SCIMRepresentation)representation.Clone(); foreach (var excludedAttribute in excludedAttributes) { var attributes = GetRepresentationAttributeFromPath(result.Attributes.AsQueryable(), excludedAttribute).ToList(); foreach (var attr in attributes) { if (attr.Parent != null) { attr.Parent.Values.Remove(attr); } else { result.Attributes.Remove(attr); } } } var jObj = result.ToResponse(location, true); foreach (var excludedAttribute in excludedAttributes) { var fullPath = (excludedAttribute as SCIMAttributeExpression).GetFullPath(); if (COMMNON_PROPERTY_NAMES.Contains(fullPath)) { jObj.SelectToken(fullPath).Parent.Remove(); } } return(jObj); }
public static JObject ToResponseWithExcludedAttributes(this SCIMRepresentation representation, ICollection <SCIMExpression> excludedAttributes, string location) { var result = (SCIMRepresentation)representation.Clone(); foreach (var excludedAttribute in excludedAttributes) { var attributes = GetRepresentationAttributeFromPath(result.Attributes.AsQueryable(), excludedAttribute).ToList(); foreach (var attr in attributes) { if (attr.Parent != null) { attr.Parent.Values.Remove(attr); } else { result.Attributes.Remove(attr); } } } return(result.ToResponse(location, true)); }