//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(); }
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); }