public static async Task <IReadOnlyCollection <T> > FindByListOfKeysAsync <T, TKey>( this IQueryableRepository <T> source, IEnumerable <TKey> keys, CancellationToken cancellationToken = default) where T : IKey <TKey> where TKey : IEquatable <TKey> { cancellationToken.ThrowIfCancellationRequested(); return(await source.ProcessQueryAsync( source.AsQueryable() .Where(item => keys.Contains(item.Id)), cancellationToken)); }
public virtual IActionResult Get(ODataQueryOptions queryOptions) { var files = filesRepository.AsQueryable() .OData().ApplyQueryOptionsWithoutSelectExpand(queryOptions); foreach (var file in files) { file.Uri = this.BuildLink($"files/{file.Id}"); } return(Ok(files)); }
public async virtual Task <IActionResult> GetAsync( [FromQuery(Name = "$top")] string top, [FromQuery(Name = "$skip")] string skip, [FromQuery(Name = "$orderby")] string orderby, [FromQuery(Name = "$filter")] string filter) { try { ODataQueryOptions oDataQueryOptions = new ODataQueryOptions { Top = top, Skip = skip, OrderBy = orderby, Filters = string.IsNullOrEmpty(filter) ? null : new List <string> { filter } }; var events = await Task.FromResult(eventsRepository .AsQueryable() .OData() .ApplyQueryOptionsWithoutSelectExpand(oDataQueryOptions) .ToList()); return(Ok(new Entities.EventListResponse { Data = await Entities.PagedListData <Entities.EventInfo> .CreateAsync( events, top, skip, async() => await eventsRepository.AsQueryable().LongCountAsync()) })); } catch (Exception e) { return(this.InternalServerError(e.FlattenMessages())); } }
public async virtual Task <IActionResult> GetFilesAsync( [FromQuery(Name = "$top")] string top, [FromQuery(Name = "$skip")] string skip, [FromQuery(Name = "$orderby")] string orderby, [FromQuery(Name = "$filter")] string filter) { try { ODataQueryOptions oDataQueryOptions = new ODataQueryOptions { Top = top, Skip = skip, OrderBy = orderby, Filters = string.IsNullOrEmpty(filter) ? null : new List <string> { filter } }; var files = await Task.FromResult(filesRepository .AsQueryable() .OData() .ApplyQueryOptionsWithoutSelectExpand(oDataQueryOptions) .ToList()); foreach (var file in files) { file.DownloadUri = this.BuildLink($"files/{file.Id}"); } return(Ok(new FileListResponse { Data = await PagedListData <FileInfo> .CreateAsync(files) })); } catch (Exception e) { return(this.InternalServerError(e.FlattenMessages())); } }