Example #1
0
 /// <summary>
 /// Selects a single item.
 /// </summary>
 /// <returns>The single item.</returns>
 public T SelectSingle()
 {
     return(_odata.GetValue(QueryArgs, ExecuteQuery(q =>
     {
         var coll = q.Skip(0).Top(2).FindEntriesAsync().GetAwaiter().GetResult();
         return coll.Single();
     })));
 }
Example #2
0
        /// <summary>
        /// Executes a query adding to the passed collection.
        /// </summary>
        /// <typeparam name="TColl">The collection <see cref="Type"/>.</typeparam>
        /// <param name="coll">The collection to add items to.</param>
        /// <remarks>The <see cref="QueryArgs"/> <see cref="ODataArgs{T, TModel}.Paging"/> is also applied, including <see cref="PagingArgs.IsGetCount"/> where requested.</remarks>
        public void SelectQuery <TColl>(TColl coll) where TColl : ICollection <T>
        {
            ExecuteQuery(q =>
            {
                ODataFeedAnnotations ann = null !;

                if (QueryArgs.Paging != null)
                {
                    q = q.Skip(QueryArgs.Paging.Skip).Top(QueryArgs.Paging.Take);
                    if (QueryArgs.Paging.IsGetCount && _odata.IsPagingGetCountSupported)
                    {
                        ann = new ODataFeedAnnotations();
                    }
                }

                foreach (var item in q.FindEntriesAsync(ann).GetAwaiter().GetResult())
                {
                    coll.Add(ODataBase.GetValue(QueryArgs, item));
                }

                if (ann != null)
                {
                    QueryArgs.Paging !.TotalCount = ann.Count;
                }
            });
        }
Example #3
0
 /// <summary>
 /// Selects first item.
 /// </summary>
 /// <returns>The first item.</returns>
 public T SelectFirst()
 {
     return(ODataBase.GetValue(QueryArgs, ExecuteQuery(q =>
     {
         var coll = q.Skip(0).Top(1).FindEntriesAsync().GetAwaiter().GetResult();
         return coll.First();
     })));
 }
Example #4
0
 /// <summary>
 /// Selects a single item or default.
 /// </summary>
 /// <returns>The single item or default.</returns>
 public T?SelectSingleOrDefault()
 {
     return(ODataBase.GetValue <T, TModel>(QueryArgs, ExecuteQuery(q =>
     {
         var coll = q.Skip(0).Top(2).FindEntriesAsync().GetAwaiter().GetResult();
         return coll.SingleOrDefault();
     })));
 }