/// <summary>
        /// Gets the multiple CLR resource identifiers for the given CLR resource type.
        /// </summary>
        /// <remarks>
        /// The CLR based resource identifiers can come from either json:api resource objects or
        /// resource identifiers.
        /// </remarks>
        /// <typeparam name="TResource">Type of CLR resource to find.</typeparam>
        /// <typeparam name="TResourceId">Type of CLR resource identifier.</typeparam>
        /// <returns>Returns the LINQ-to-objects collection of CLR resource identifiers if they exist,
        /// empty collection otherwise.</returns>
        public static IEnumerable <TResourceId> GetResourceIdCollection <TResource, TResourceId>(this IDocumentReader documentReader)
            where TResource : class, IResource
        {
            Contract.Requires(documentReader != null);

            var clrResourceType         = typeof(TResource);
            var clrResourceIdCollection = documentReader.GetResourceIdCollection <TResourceId>(clrResourceType);

            return(clrResourceIdCollection);
        }