# POST /Account/Count/

Gets the number of accounts that match the filter.

## Request

Method | Request URI
--- | ---
POST | /API/Account/Count/?sessionId=value

### URI Parameters

URI Parameter | Description
--- | ---
sessionId | Current session ID.

### Request Body

Name: options
Type: Dundas.BI.WebApi.Models.GetAccountsOptions

## Response

### Response Body

An System.Int32 containing the number of accounts that match the criteria, or a status code indicating the problem.

## Examples

This example will the query the number of accounts that match the filter for "dundas".

C# Java JavaScript

    using System.Net;
    using System.Net.Http;
    using System.Runtime.Serialization;
    using System.Runtime.Serialization.Json;
    using System.Web.Script.Serialization;

       ...

    using (HttpClient httpClient = new HttpClient())
    {
    	// Get Session Id
    	string logonUri = "http://localhost:8004/Api/LogOn/";
    	var logonOptions = new
    	{
    		accountName = "admin",
    		password = "1234",
    		cultureName = string.Empty,
    		deleteOtherSessions = true,
    		isWindowsLogOn = false
    	};

    	JavaScriptSerializer serializer = new JavaScriptSerializer();
    	var requestBodyAsString = serializer.Serialize(logonOptions);
    	StringContent content =
    		new StringContent(
    			requestBodyAsString,
    			Encoding.UTF8,
    			"application/json"
    		);

    	string jsonString = string.Empty;

    	using (var response = httpClient.PostAsync(logonUri, content).Result)
    	{
    		jsonString =
    			response.Content.ReadAsStringAsync().Result;
    	}

    	var obj = (Dictionary<string,object>) serializer.DeserializeObject(jsonString);
    	string sessionId = obj["sessionId"].ToString();
    	string url = "http://localhost:8004/API/Account/Count/?sessionId=" + sessionId + "";

    	// Define the request body
    	HttpContent requestBody = null;
    	requestBody =
    		new StringContent(@"
    		{
    		    ""queryAccountsOptions"": {
    		        ""pageNumber"": 1,
    		        ""pageSize"": 25,
    		        ""filter"": [
    		            {
    		                ""field"": ""AccountType"",
    		                ""operator"": ""Equals"",
    		                ""value"": ""VirtualWindowsUser"",
    		                ""options"": ""InvertOperator""
    		            },
    		            {
    		                ""field"": ""None"",
    		                ""operator"": ""Or"",
    		                ""value"": [
    		                    {
    		                        ""field"": ""Name"",
    		                        ""operator"": ""Contains"",
    		                        ""value"": ""dundas"",
    		                        ""options"": ""None""
    		                    },
    		                    {
    		                        ""field"": ""DisplayName"",
    		                        ""operator"": ""Contains"",
    		                        ""value"": ""dundas"",
    		                        ""options"": ""None""
    		                    }
    		                ],
    		                ""options"": ""None""
    		            }
    		        ]
    		    }
    		}
    		",Encoding.UTF8,"application/json");
    	using (var response = httpClient.PostAsync(url, requestBody).Result)
    	{
    		if(response.StatusCode == HttpStatusCode.OK)
    		{
    			Console.WriteLine("Success");

    			// An System.Int32 containing the number of
    			// accounts that match the criteria as a
    			// JSON string.
    			string jsonObject = response.Content.ReadAsStringAsync().Result;
    		}
    	}
    }

    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.client.methods.HttpDelete;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPut;
    import org.apache.http.impl.client.HttpClientBuilder;
    import org.apache.http.util.EntityUtils;
    import org.apache.http.entity.StringEntity;
    import org.json.JSONObject;

       ...

    HttpClient httpClient = HttpClientBuilder.create().build();

    String url = "http://localhost:8004";

    // Get Session Id
    String logonUri = url + "Api/LogOn/"
    HttpPost httpPost = new HttpPost(logonUri);
    StringEntity stringEntity =
    	new StringEntity("{
    		+ "\"accountName\":\"admin\","
    		+ "\"password":\"1234\","
    		+ "\"cultureName\":\"\","
    		+ "\"deleteOtherSessions\":false,"
    		+ "\"isWindowsLogOn\":false"
    		+ "}"
    	);
    stringEntity.setContentType("application/json");
    httpPost.setEntity(stringEntity);
    HttpResponse httpResponse = httpClient.execute(httpPost);
    String jsonString = EntityUtils.toString(httpResponse.getEntity());
    JSONObject jsonObj = new JSONObject(jsonString);
    String sessionId = jsonObj.getString("sessionId")

    String requestUrl = "http://localhost:8004/API/Account/Count/?sessionId=" + sessionId + "";

    // Define the Request Method.
    HttpPost requstMethod = new HttpPost(requestUrl);

    // Define the Request Body.
    StringEntity input =
    	new StringEntity(
    		 "{"
    		+ "\"queryAccountsOptions\": {"
    		+ "    \"pageNumber\": 1,"
    		+ "    \"pageSize\": 25,"
    		+ "    \"filter\": ["
    		+ "        {"
    		+ "            \"field\": \"AccountType\","
    		+ "            \"operator\": \"Equals\","
    		+ "            \"value\": \"VirtualWindowsUser\","
    		+ "            \"options\": \"InvertOperator\""
    		+ "        },"
    		+ "        {"
    		+ "            \"field\": \"None\","
    		+ "            \"operator\": \"Or\","
    		+ "            \"value\": ["
    		+ "                {"
    		+ "                    \"field\": \"Name\","
    		+ "                    \"operator\": \"Contains\","
    		+ "                    \"value\": \"dundas\","
    		+ "                    \"options\": \"None\""
    		+ "                },"
    		+ "                {"
    		+ "                    \"field\": \"DisplayName\","
    		+ "                    \"operator\": \"Contains\","
    		+ "                    \"value\": \"dundas\","
    		+ "                    \"options\": \"None\""
    		+ "                }"
    		+ "            ],"
    		+ "            \"options\": \"None\""
    		+ "        }"
    		+ "    ]"
    		+ "}"
    	);
    input.setContentType("application/json");
    requstMethod.setEntity(input);
    HttpResponse response =
    	httpClient.execute(requstMethod);

    if(response.getStatusLine().getStatusCode() == 200)
    {
    	System.out.println("Success");
    }
    // An System.Int32 containing the number of
    // accounts that match the criteria as a
    // JSON string.
    String json = EntityUtils.toString(response.getEntity());

    var baseUrl = 'http://localhost:8005';
    var logonOptions =
    {
    	accountName: 'admin',
    	password: '1234',
    	cultureName: 'en-us',
    	deleteOtherSessions: false,
    	isWindowsLogOn: false
    };
    $.ajax({
    	type: 'POST',
    	url: baseUrl + '/Api/LogOn/',
    	contentType: "application/json",
    	data: JSON.stringify(logonOptions),
    	success: function(logOnResultData) {
    		var sessionId = logOnResultData.sessionId;

    		var dataObject =
    			{
    			    "queryAccountsOptions": {
    			        "pageNumber": 1,
    			        "pageSize": 25,
    			        "filter": [
    			            {
    			                "field": "AccountType",
    			                "operator": "Equals",
    			                "value": "VirtualWindowsUser",
    			                "options": "InvertOperator"
    			            },
    			            {
    			                "field": "None",
    			                "operator": "Or",
    			                "value": [
    			                    {
    			                        "field": "Name",
    			                        "operator": "Contains",
    			                        "value": "dundas",
    			                        "options": "None"
    			                    },
    			                    {
    			                        "field": "DisplayName",
    			                        "operator": "Contains",
    			                        "value": "dundas",
    			                        "options": "None"
    			                    }
    			                ],
    			                "options": "None"
    			            }
    			        ]
    			    }

    			};

    		$.ajax({
    			type: "POST",
    			url: baseUrl + "/API/Account/Count/?sessionId=" + sessionId + "",
    			data: JSON.stringify(dataObject),
    			contentType: "application/json",
    			success: function(data) {
    				 // data = An System.Int32 containing the
    				 // number of accounts that match the
    				 // criteria.

    			},
    			error: function(data) { alert('failed' + data); }
    		});
    	}
    });

© 1999-2021 Dundas Data Visualization, Inc.