public IpAddressDetails GetIpAddressDetails(string ipAddress, [Optional] LanguageOpition language, [Optional] params FieldOption[] fields) { var request = new RestRequest(); request.AddParameter("IpAddress", ipAddress, ParameterType.UrlSegment); request.Resource = "json/{IpAddress}"; // Add optional parameters if (fields != null && fields.Length > 0) { string fieldsString = ""; foreach (var item in fields) { fieldsString += ((fieldsString != "") ? "," : "") + item.GetDescription(); } if (!fieldsString.Contains(FieldOption.Status.GetDescription())) { fieldsString += "," + FieldOption.Status.GetDescription(); } request.AddParameter("fields", fieldsString); } else if (_fields != null && _fields.Length > 0) { string fieldsString = ""; foreach (var item in _fields) { fieldsString += ((fieldsString != "") ? "," : "") + item.GetDescription(); } if (!fieldsString.Contains(FieldOption.Status.GetDescription())) { fieldsString += "," + FieldOption.Status.GetDescription(); } request.AddParameter("fields", fieldsString); } if (language != LanguageOpition.English) { request.AddParameter("lang", language.GetDescription()); } else if (_languageOpition != LanguageOpition.English) { request.AddParameter("lang", _languageOpition.GetDescription()); } return(Execute <IpAddressDetails>(request)); }
public IpApiClient([Optional] bool https, [Optional] LanguageOpition languageOpition, [Optional] FieldOption[] fields) { _https = https; _languageOpition = languageOpition; _fields = fields; }
public List <IpAddressDetails> GetIpAddressDetails(List <string> ipAddresses, [Optional] LanguageOpition language, [Optional] params FieldOption[] fields) { if (ipAddresses.Count > 100) { const string message = "Error calling api. Total 100 IP Addressess allowed in a single batch."; throw new ApplicationException(message); } var request = new RestRequest(); request.Method = Method.POST; request.RequestFormat = DataFormat.Json; request.AddJsonBody(ipAddresses.ToArray()); request.Resource = "batch"; // Add optional parameters if (fields != null && fields.Length > 0) { string fieldsString = ""; foreach (var item in fields) { fieldsString += ((fieldsString != "") ? "," : "") + item.GetDescription(); } if (!fieldsString.Contains(FieldOption.Status.GetDescription())) { fieldsString += "," + FieldOption.Status.GetDescription(); } request.AddParameter("fields", fieldsString); } else if (_fields != null && _fields.Length > 0) { string fieldsString = ""; foreach (var item in _fields) { fieldsString += ((fieldsString != "") ? "," : "") + item.GetDescription(); } if (!fieldsString.Contains(FieldOption.Status.GetDescription())) { fieldsString += "," + FieldOption.Status.GetDescription(); } request.AddParameter("fields", fieldsString); } if (language != LanguageOpition.English) { request.AddParameter("lang", language.GetDescription()); } else if (_languageOpition != LanguageOpition.English) { request.AddParameter("lang", _languageOpition.GetDescription()); } return(Execute <List <IpAddressDetails> >(request)); }