/// <summary> /// Attempts to retrieve all the composite definitions for a composite category by name. /// </summary> /// <param name="organizationCode">The name of the composite organization code.</param> /// <param name="compositeCategoryName">The name of the composite category.</param> /// <param name="compositeDefinitions">Upon return, contains the list of composite definitions <see cref="XElement"/>, if found.</param> /// <returns><b>true</b> if found; otherwise <b>false</b>.</returns> public bool TryGetCompositeDefinitions( string organizationCode, string compositeCategoryName, out IReadOnlyList <XElement> compositeDefinitions) { compositeDefinitions = null; var compositeCategory = new CompositeCategory(organizationCode, compositeCategoryName); IEnumerable <Composite> composites; if (!_compositesByCompositeCategory.Value.TryGetValue(compositeCategory, out composites)) { return(false); } compositeDefinitions = composites .Select(c => c.Definition) .ToList(); return(true); }
/// <summary> /// Attempts to retrieve a specific composite definition by composite category and name. /// </summary> /// <param name="organizationCode">A code representing the organization that created the composite definition.</param> /// <param name="compositeCategoryName">The name of the composite category.</param> /// <param name="compositeName">The name of the composite.</param> /// <param name="compositeDefinition">Upon return, contains the composite definition <see cref="XElement"/>, if found.</param> /// <returns><b>true</b> if found; otherwise <b>false</b>.</returns> public bool TryGetCompositeDefinition( string organizationCode, string compositeCategoryName, string compositeName, out XElement compositeDefinition) { compositeDefinition = null; var compositeCategory = new CompositeCategory(organizationCode, compositeCategoryName); IEnumerable <Composite> composites; if (!_compositesByCompositeCategory.Value.TryGetValue(compositeCategory, out composites)) { return(false); } compositeDefinition = composites ?.FirstOrDefault(c => c.Name.EqualsIgnoreCase(compositeName)) ?.Definition; return(compositeDefinition != null); }