Syncano.Net.Api.UserSyncanoClient.Count C# (CSharp) Method

Count() public method

Count users of specified criteria. The collection_id/collection_key parameter means that one can use either one of them - collection_id or collection_key.
public Count ( UserQueryRequest request ) : Task
request Syncano.Net.DataRequests.UserQueryRequest User query request object.
return Task
        public Task<int> Count(UserQueryRequest request)
        {
            if (request.ProjectId == null)
                throw new ArgumentNullException();

            if (request.CollectionId != null && request.CollectionKey != null)
                throw new ArgumentException();

            var folders = request.Folders == null ? new List<string>() : new List<string>(request.Folders);
            if (folders.Count + (request.Folder != null ? 1 : 0) >
                MaxLimit)
                throw new ArgumentException();
            if (request.Folder != null)
                folders.Add(request.Folder);

            return _syncanoClient.PostAsync<int>("user.count",
                new
                {
                    project_id = request.ProjectId,
                    collection_id = request.CollectionId,
                    collection_key = request.CollectionKey,
                    state = request.State.ToString(),
                    folders = folders.ToArray(),
                    filter = request.Filter == null ? null : request.Filter.ToString()
                }, "count");
        }

Usage Example

        public async Task Count_WithImageContentFilter_GetsCountOfUsers(UserSyncanoClient client)
        {
            //given
            var dataRequest = new DataObjectDefinitionRequest();
            dataRequest.ProjectId = TestData.ProjectId;
            dataRequest.CollectionId = TestData.CollectionId;
            dataRequest.ImageBase64 = TestData.ImageToBase64("smallSampleImage.png");
            await _dataClient.New(dataRequest);

            var request = new UserQueryRequest();
            request.ProjectId = TestData.ProjectId;
            request.CollectionId = TestData.CollectionId;
            request.Filter = DataObjectContentFilter.Image;

            //when
            var result = await client.Count(request);

            //then
            result.ShouldEqual(1);

            //cleanup
            var deleteRequest = new DataObjectSimpleQueryRequest();
            deleteRequest.ProjectId = TestData.ProjectId;
            deleteRequest.CollectionId = TestData.CollectionId;

            await _dataClient.Delete(deleteRequest);
        }
All Usage Examples Of Syncano.Net.Api.UserSyncanoClient::Count