示例#1
0
        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));
            }
        }
示例#2
0
        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."
            });
        }