Exemple #1
0
 public ProviderBase()
 {
     _localizationDataProvider = new LocalizationDataProvider();
     _appsDataProvider = new AppsDataProvider();
     _facebookDataProvider = new FacebookDataProvider();
     _userDataProvider = new UserDataProvider();
     _userFavoritesDataProvider = new UserFavoritesDataProvider();
     _userMessagesDataProvider = new UserMessagesDataProvider();
     _userVisitsDataProvider = new UserVisitsDataProvider();
     _userLikesDataProvider = new UserLikesDataProvider();
     _geoIpDataProvider = new GeoIpDataProvider();
 }
Exemple #2
0
        private bool IsAllowedToSeeContent()
        {
            if (!bool.Parse(ConfigurationManager.AppSettings["EnableGeoBlocking"]))
                return true;

            long facebookUserId = 0;

            if (Request.Form.signed_request != null)
            {
                var signedRequest = Request.Form.signed_request;
                var parsedRequest = new FacebookClient().ParseSignedRequest("549eeee523fbf171723433b118a14d8b", signedRequest);
                if (((JsonObject)parsedRequest).ContainsKey("user_id"))
                    facebookUserId = long.Parse((string)((JsonObject)parsedRequest)["user_id"]);
            }

            if (facebookUserId == 0)
                return true;

            var geoIpDataProvider = new GeoIpDataProvider();
            var usersDataProvider = new UserDataProvider();
            var ipsWhiteList = geoIpDataProvider.GetWhiteListedIps();
            var usersWhiteList = usersDataProvider.GetUsersWhitelist("gokapara-newyork");

            var userIp = Request.UserHostAddress;

            if (ipsWhiteList.Exists(z => z["ip"].AsString == userIp))
                return true;

            if (usersWhiteList.Exists(z => z == facebookUserId))
                return true;

            BsonDocument geoLocation = null;

            try
            {
                geoLocation = geoIpDataProvider.GetIpLocationInfo(userIp, "country");
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
            }

            string userCountry = geoLocation != null ? geoLocation["country"].AsString : null;

            if (!string.IsNullOrEmpty(userCountry) && userCountry != "IL")
                return true;

            return false;
        }