예제 #1
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "CatalogueScanState/List")] ListEntityRequest listEntityRequest,
            [DurableClient] IDurableEntityClient durableEntityClient
            )
        {
            #region null checks
            if (listEntityRequest is null)
            {
                throw new ArgumentNullException(nameof(listEntityRequest));
            }

            if (durableEntityClient is null)
            {
                throw new ArgumentNullException(nameof(durableEntityClient));
            }
            #endregion

            var query = new EntityQuery
            {
                EntityName        = ICatalogueScanState.EntityName,
                LastOperationFrom = listEntityRequest.LastOperationFrom.GetValueOrDefault(),
                LastOperationTo   = listEntityRequest.LastOperationTo.GetValueOrDefault(),
                PageSize          = listEntityRequest.Page.PageSize,
                ContinuationToken = listEntityRequest.Page.ContinuationToken,
                FetchState        = true,
            };

            var result = await durableEntityClient.ListEntitiesAsync(query, default).ConfigureAwait(false);

            var entities = result.Entities.Select(status =>
            {
                var dto = status.State.ToObject <CatalogueScanStateDto>();

                dto.LastOperationTime = status.LastOperationTime;

                return(dto);
            });

            return(new ObjectResult(new ListEntityResult <CatalogueScanStateDto>
            {
                Entities = entities,
                Page = new PageInfo
                {
                    ContinuationToken = result.ContinuationToken,
                    PageSize = query.PageSize
                }
            }));
        }
예제 #2
0
 public async Task <ListEntityResult <CatalogueScanStateDto> > ListCatalogueScanStatesAsync(ListEntityRequest listEntityRequest)
 {
     return(await PostAsync <ListEntityRequest, ListEntityResult <CatalogueScanStateDto> >("List", listEntityRequest).ConfigureAwait(false));
 }