/// <summary>
        /// Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.
        /// </summary>
        /// <param name="predicate">A function to test an element for a condition.</param>
        /// <param name="source">The sequence to type as <see cref="IEnumerable{T}"/>.</param>
        /// <typeparam name="TData">The type of the elements of source.</typeparam>
        /// <returns>The first element of the sequence.</returns>
        /// <exception cref="ArgumentNullException"><paramref name="predicate"/> is null.</exception>
        /// <exception cref="InvalidOperationException">The sequence is empty.</exception>
        public static TData First <TData>(this AzureDocumentDbDataStore <TData> source, Func <TData, bool> predicate)
            where TData : AzureDocumentDbEntity
        {
            IList <TData> result = source.Where(predicate).AsEnumerable().ToList();

            return(result.First());
        }
 /// <summary>
 /// Returns the first element of the sequence.
 /// </summary>
 /// <param name="source">The sequence to type as <see cref="IEnumerable{T}"/>.</param>
 /// <typeparam name="TData">The type of the elements of source.</typeparam>
 /// <returns>The first element of the sequence.</returns>
 /// <exception cref="InvalidOperationException">The sequence contains more than one element, or the sequence is empty.</exception>
 public static TData First <TData>(this AzureDocumentDbDataStore <TData> source)
     where TData : AzureDocumentDbEntity
 {
     return(source.AsEnumerable().ToList().First());
 }