Beispiel #1
0
        //public ZipIpVerifyResult VerifyZipCode(string email, string ip,string street, string zip)
        //{
        //    if (_db.CbrZipVerifieds.Any(z => z.EmailAddress == email && z.ValidZip == zip && z.ValidIpAddress == ip)){
        //        return new ZipIpVerifyResult() { IsValid = true };
        //    }

        //    _zipIpVerifyResult = Validate(ip, street, zip, email);
        //    if (_zipIpVerifyResult.IsValid)
        //    {
        //        return new ZipIpVerifyResult() { IsValid = true };
        //    }

        //    LogInvalidEntry(ip, street, zip, email);
        //    return _zipIpVerifyResult;
        //}

        private void LogInvalidEntry(string ip, string zip, string email, ZipIpVerifyResult zipIpVerifyResult)
        {
            if (_db.VerifyZipFailures.Any(z => z.EmailAddress == email && z.Zip == zip && z.IpAddress == ip))
            {
                // already logged it
                return;
            }

            string invalidIpJson  = JsonConvert.SerializeObject(IpInfo);
            string invalidZipJson = JsonConvert.SerializeObject(ZipLookupInfo);

            _db.VerifyZipFailures.Add(new VerifyZipFailure()
            {
                EmailAddress        = email,
                Zip                 = zip,
                IpAddress           = ip,
                NoMatch             = zipIpVerifyResult.NoMatch,
                InvalidIp           = zipIpVerifyResult.IpInvalid,
                InvalidZip          = zipIpVerifyResult.ZipCodeInvalid,
                IrreputableIp       = zipIpVerifyResult.IpIsIrReputable,
                ZipLookupResultJson = invalidZipJson,
                IpVerifyResultJson  = invalidIpJson
            });
            _db.SaveChanges();
        }
Beispiel #2
0
        public ZipIpVerifyResult VerifyZipAndIpAddress(string ip, string zip, string email)
        {
            if (_db.CbrZipVerifieds.Any(z => z.EmailAddress == email && z.ValidZip == zip && z.ValidIpAddress == ip))
            {
                //should default to true
                return(new ZipIpVerifyResult());
            }


            IpInfo        = _xverifyRepository.GetIpVerification(ip);
            ZipLookupInfo = _xverifyRepository.GetZipcodeLookup(zip);

            var _zipIpVerifyResult = new ZipIpVerifyResult();

            if (IpInfo.IsValid && !IpInfo.IsIrreputable && ZipLookupInfo.IsValid)
            {
                if (IpInfo.ipdata.region == ZipLookupInfo.zipdata.state)
                {
                    _db.CbrZipVerifieds.Add(new CbrZipVerified()
                    {
                        EmailAddress   = email,
                        ValidIpAddress = ip,
                        ValidZip       = zip
                    });
                    _db.SaveChanges();
                    //return new ZipIpVerifyResult() { IsValid = true };
                    _zipIpVerifyResult.IsValid = true;
                }
                else
                {
                    _zipIpVerifyResult.NoMatch = true;
                }
            }

            _zipIpVerifyResult.IpIsIrReputable = IpInfo.IsIrreputable;
            _zipIpVerifyResult.ZipCodeInvalid  = !ZipLookupInfo.IsValid;
            _zipIpVerifyResult.IpInvalid       = !IpInfo.IsValid;

            if (!_zipIpVerifyResult.IsValid)
            {
                LogInvalidEntry(ip, zip, email, _zipIpVerifyResult);
            }

            return(_zipIpVerifyResult);
        }