Пример #1
0
        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);
            }
        }