public string RedirectOnIP(string ip) { try { //Request.Host.ToString() value _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - Request.Host.ToString() is " + _context.HttpContext.Request.Host.ToString()); string _host = _context.HttpContext.Request.Host.Host; string _scheme = _context.HttpContext.Request.Scheme; string _path = _context.HttpContext.Request.Path.ToString(); string _queryString = _context.HttpContext.Request.QueryString.ToString(); //url used for if condition is _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - url used for if condition is " + _context.HttpContext.Request.Host.ToString()); //redirect only in dev and prod mode and not local. if (_host.ToLower().Contains("feelitlive.com") && _host.ToLower().EndsWith(".com")) { _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - IP is " + ip); //This is then passed on to getGeoLocation var locationDetails = getGeoLocation(ip); //check if its prod or dev redirect. bool _isDev = true; if (!_host.ToLower().Contains("dev.")) { _isDev = false; } string _baseurl = string.Empty; //replacement keyword to change dev to prod url --hardcoding string _devurlSuffix = "dev."; if (locationDetails.country_tld.ToLower().Contains("uk")) { _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - uk site "); _baseurl = _isDev ? EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevUkSite) : EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevUkSite).Replace(_devurlSuffix, ""); } else if (locationDetails.country_tld.ToLower().Contains("in")) { _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - in site "); _baseurl = _isDev ? EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevIndiaSite) : EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevIndiaSite).Replace(_devurlSuffix, ""); } else if (locationDetails.country_tld.ToLower().Contains("au")) { _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - au site "); _baseurl = _isDev ? EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevAustraliaSite) : EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevAustraliaSite).Replace(_devurlSuffix, ""); } else if (locationDetails.country_tld.ToLower().Contains("de")) { _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - de site "); _baseurl = _isDev ? EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevGermanSite) : EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevGermanSite).Replace(_devurlSuffix, ""); } else if (locationDetails.country_tld.ToLower().Contains("es")) { _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - es site "); _baseurl = _isDev ? EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevSpainSite) : EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevSpainSite).Replace(_devurlSuffix, ""); } else if (locationDetails.country_tld.ToLower().Contains("fr")) { _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - fr site "); _baseurl = _isDev ? EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevFranceSite) : EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevFranceSite).Replace(_devurlSuffix, ""); } else if (locationDetails.country_tld.ToLower().Contains("nz")) { _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - nz site "); _baseurl = _isDev ? EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevNewZealandSite) : EnumExtension.DescriptionAttr(Contracts.Enums.SiteUrlDev.DevNewZealandSite).Replace(_devurlSuffix, ""); } else { _logger.Log(Logging.Enums.LogCategory.Debug, ip + " Web.Feel -IPRedirection - .com site "); return(string.Empty); } _baseurl = _baseurl + _path + (!string.IsNullOrEmpty(_queryString) ? _queryString : string.Empty); return(_baseurl); } else { return(string.Empty); } } catch (System.Exception ex) { //need to log exception here. _logger.Log(Logging.Enums.LogCategory.Error, ex); return(string.Empty); } }