public IHttpActionResult PostProvideMedia(ProvideMediaRequest request) { try { var isTest = Properties.Settings.Default.ProvideMediaTest; var postManager = new PostManagerProvideMedia(); return(Ok(postManager.SubmitLead(request, Utility.GetClientIpAddress(), isTest))); } catch (Exception e) { if (e.InnerException != null) { if (e.InnerException.InnerException != null) { return(Ok(e.InnerException.InnerException.Message)); } return(Ok(e.InnerException.Message)); } return(Ok(e.Message)); } }
public CoregPostResponse SubmitLead(ProvideMediaRequest request, string ipAddress, bool isTest) { var lead = _db.CbrLeads.FirstOrDefault(l => l.CbrLeadId == request.CbrLeadId); if (lead == null) { return(new CoregPostResponse() { Success = false, Other = $"LeadId {request.CbrLeadId} not found." }); } //XVerifyManager xvm = new XVerifyManager(); //var xverifyZipResult = xvm.VerifyZipCode(lead.EmailAddress, ipAddress, lead.Address, lead.Zip); //if (!xverifyZipResult.IsValid) //{ // if (xverifyZipResult.NoMatch) // { // return new ProvideMediaResponse() { Success = false, Other = "Failed zip/ip verifiction." }; // } // return new ProvideMediaResponse() // { // Success = false, // InvalidAddress = xverifyZipResult.AddressInvalid, // InvalidZip = xverifyZipResult.ZipCodeInvalid, // Message = xverifyZipResult.Message // }; //}; var xverifyManager = new XVerifyManager(); var zipResponse = xverifyManager.VerifyZipAndIpAddress(ipAddress, lead.Zip, request.email); if (zipResponse.IpIsIrReputable) { return(new CoregPostResponse() { Success = false, ipIsIrReputable = true }); } if (zipResponse.NoMatch || zipResponse.ZipCodeInvalid) { return(new CoregPostResponse() { Success = false, zipIpVerificationFailed = true, InvalidZip = zipResponse.ZipCodeInvalid }); } UpdateLeadCityStateIP(xverifyManager, lead, ipAddress); var phone = PreparePhoneForPost(lead.Phone); request.TrustedForm = HttpUtility.UrlEncode(request.TrustedForm); //EncodeContact(lead); string consent = "Yes"; if (request.CampaignCode == CAMPAIGN_CODE_DEBT_COM) { consent = "1"; } var gender = GenderGetSingleCharacter(lead); var c = lead; string postData = $"campaign_code={request.CampaignCode}&lead[firstname]={c.Firstname}&lead[lastname]={c.Lastname}" + $"&lead[email]={c.EmailAddress}&lead[phone1]={phone}&lead[age]={GetAge(c.BirthDate)}" + $"&lead[gender]={gender}&lead_consent[tcpa_consent]={consent}&lead[ip]={c.Ip}&subid={request.SubIdTag}" + $"&lead_address[state]={c.State}&lead_address[address]={c.Address}&lead_address[city]={c.City}&lead_address[zip]={c.Zip}" + $"&lead[test]={isTest}&lead[media_type]=noncallcenter" + $"&lead_custom_value[trusted_form]={request.TrustedForm}"; string response = Post(postData, BASE_URL); if (!string.IsNullOrWhiteSpace(response)) { if (response.Contains("success")) { UpdateLeadAccepted(request, c); return(new CoregPostResponse() { Success = true }); } string errorUrl = BASE_URL + postData; WriteCoregError("ProvideMedia", postData, errorUrl, response); return(ParseResponse(response)); } return(new CoregPostResponse() { Success = false, Other = "No response." }); }