private int GetAvailableItemCount()
        {
            var workingFacilityRef = LoginSession.Current.WorkingFacility.FacilityRef;
            var request            = _worklistRef != null
                                ? new QueryWorklistRequest(_worklistRef, false, true, DowntimeRecovery.InDowntimeRecoveryMode, workingFacilityRef)
                                : new QueryWorklistRequest(_worklistClassName, false, true, DowntimeRecovery.InDowntimeRecoveryMode, workingFacilityRef);

            QueryWorklistResponse <TWorklistItem> response = null;

            Platform.GetService <TWorkflowService>(service => response = service.QueryWorklist(request));
            return(response.ItemCount);
        }
        private IEnumerable <TWorklistItem> GetAvailableItemStream()
        {
            var workingFacilityRef = LoginSession.Current.WorkingFacility.FacilityRef;
            var request            = _worklistRef != null
                                ? new QueryWorklistRequest(_worklistRef, true, false, DowntimeRecovery.InDowntimeRecoveryMode, workingFacilityRef)
                                : new QueryWorklistRequest(_worklistClassName, true, false, DowntimeRecovery.InDowntimeRecoveryMode, workingFacilityRef);

            const int pageSize = 25;
            var       more     = true;
            QueryWorklistResponse <TWorklistItem> response = null;

            for (var p = 0; more; p += pageSize)
            {
                request.Page = new SearchResultPage(p, p + pageSize);
                Platform.GetService <TWorkflowService>(service => response = service.QueryWorklist(request));

                more = response.WorklistItems.Count > 0;

                foreach (var item in response.WorklistItems)
                {
                    yield return(item);
                }
            }
        }