public static void Main(string[] args)
 {
     var client  = new CallfireClient("api_login", "api_password");
     var request = new FindTollfreeNumbersRequest
     {
         Pattern = "87*",
         Limit   = 10,
         Fields  = "number"
     };
     IList <Number> numbers = client.NumbersApi.FindNumbersTollfree(request);
 }
        public void FindTollfreeNumbers()
        {
            var request = new FindTollfreeNumbersRequest
            {
                Limit   = 2,
                Pattern = "84*",
                Fields  = "items(number)"
            };
            var numbers = Client.NumbersApi.FindNumbersTollfree(request);

            Assert.AreEqual(2, numbers.Count);
            Assert.True(numbers[0].PhoneNumber.Contains("84"));
            Assert.True(numbers[1].PhoneNumber.Contains("84"));
            Assert.Null(numbers[0].NationalFormat);
            Assert.Null(numbers[0].Region);
            Console.WriteLine(numbers);
        }
        public void FindNumbersTollfreeWithPattern()
        {
            var expectedJson = GetJsonPayload("/numbers/numbersApi/response/findNumbersTollfree.json");
            var restRequest  = MockRestResponse(expectedJson);

            var request = new FindTollfreeNumbersRequest
            {
                Pattern = "86*",
                Limit   = 1
            };
            var numbers = Client.NumbersApi.FindNumbersTollfree(request);

            Assert.That(Serializer.Serialize(new ListHolder <Number>(numbers)), Is.EqualTo(expectedJson));

            Assert.AreEqual(Method.GET, restRequest.Value.Method);
            var requestBodyParam = restRequest.Value.Parameters.FirstOrDefault(p => p.Type == ParameterType.RequestBody);

            Assert.IsNull(requestBodyParam);
            Assert.That(restRequest.Value.Parameters, Has.Some.Matches <Parameter>(p => p.Name.Equals("pattern") && p.Value.Equals("86*")));
            Assert.That(restRequest.Value.Parameters, Has.Some.Matches <Parameter>(p => p.Name.Equals("limit") && p.Value.Equals("1")));
        }
 /// <summary>
 /// Find numbers in the CallFire tollfree numbers catalog that are available for purchase.
 /// </summary>
 /// <param name="request">request object</param>
 /// <returns>list of numbers</returns>
 /// <exception cref="BadRequestException">          in case HTTP response code is 400 - Bad request, the request was formatted improperly.</exception>
 /// <exception cref="UnauthorizedException">        in case HTTP response code is 401 - Unauthorized, API Key missing or invalid.</exception>
 /// <exception cref="AccessForbiddenException">     in case HTTP response code is 403 - Forbidden, insufficient permissions.</exception>
 /// <exception cref="ResourceNotFoundException">    in case HTTP response code is 404 - NOT FOUND, the resource requested does not exist.</exception>
 /// <exception cref="InternalServerErrorException"> in case HTTP response code is 500 - Internal Server Error.</exception>
 /// <exception cref="CallfireApiException">         in case HTTP response code is something different from codes listed above.</exception>
 /// <exception cref="CallfireClientException">      in case error has occurred in client.</exception>
 public IList <Number> FindNumbersTollfree(FindTollfreeNumbersRequest request)
 {
     return(Client.Get <ListHolder <Number> >(NUMBERS_TOLLFREE_PATH, request).Items);
 }