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;
            }
        }