public IActionResult GetTimeZoneDetails(string continent = null, string country = null, string state = null, string isoCountryCode = null, string iso3Code = null, int?isoNumeric = null, string countryName = null, double?latitude = null, double?longitude = null, int?pageNumber = null, int?pageSize = null) { try { if (((pageNumber != null && pageSize != null) && (pageNumber > 0 && pageSize > 0)) || (pageSize == null && pageNumber == null)) { try { string timeZoneId = null; if ((!string.IsNullOrEmpty(continent) && !string.IsNullOrWhiteSpace(continent)) && (!string.IsNullOrEmpty(country) && !string.IsNullOrWhiteSpace(country))) { timeZoneId = continent + "/" + country; if (!string.IsNullOrEmpty(state) && !string.IsNullOrWhiteSpace(state)) { timeZoneId += "/" + state; } } IEnumerable <GeonamesAPI.Domain.TimeZone> result = repository.GetTimeZoneDetails(timeZoneId, isoCountryCode, iso3Code, isoNumeric, countryName, latitude, longitude, pageNumber, pageSize); if (result != null && result.Count() > 0) { return(Ok(result)); } else { return(NotFound()); } } catch (Exception ex) { Debug.WriteLine(ex); throw; } } else { return(BadRequest("Both pageSize and pageNumber properties need to have valid values.")); } } catch (Exception ex) { Debug.WriteLine(ex); throw; } }