public async Task <ActionResult> Get([FromQuery] GetItemsFilterRequest filterRequest)
        {
            if (filterRequest == null)
            {
                return(GenericInvalidOperation(StatusCodes.Status422UnprocessableEntity, ExternalErrorReason.UnexpectedError));
            }

            try
            {
                var limit = filterRequest.Limit ?? _apiSettings.DefaultNumberOfResults;
                var skip  = filterRequest.Skip ?? _apiSettings.DefaultNumberOfSkip;

                _tracer.ActiveSpan?.Log(new Dictionary <string, object> {
                    [nameof(limit)] = limit, [nameof(skip)] = skip,
                });

                var @event = await _actorManager.Context.RequestAsync <UserEvent>(
                    _actorManager.GetParentActor(),
                    new GetUsers(limit, skip),
                    TimeSpan.FromMilliseconds(_apiSettings.RequestTimeoutInMilliseconds));

                switch (@event)
                {
                case UsersRetrieved e: return(Ok(new UsersListResponse(e.TotalCount, e.Users.Select(u => new UserDetailsResponse(u.Id, u.Name, u.CreatedOn)))));

                default: return(GenericInvalidOperation(StatusCodes.Status400BadRequest, ExternalErrorReason.UnexpectedError));
                }
            }
            catch (TimeoutException)
            {
                return(GenericInvalidOperation(StatusCodes.Status504GatewayTimeout, ExternalErrorReason.RequestTimedOut));
            }
        }