예제 #1
0
        public static BaseResponse RedeemReferralSubscription(SubscriptionServiceRequest ahRequest)
        {
            string       className    = "SFGWrapper.CreateSubscription";
            BaseResponse baseResponse = new BaseResponse();

            try
            {
                using (SubOrderInsertService svc = new SubOrderInsertService())
                {
                    svc.Timeout     = 20000;
                    svc.Credentials = new System.Net.NetworkCredential(ahRequest.ServiceUsername, ahRequest.ServicePassword);
                    argtype sfgRequest = SubOrderInsertTranslators.TranslateToSfgRequest(ahRequest);
                    baseResponse = SubOrderInsertTranslators.CreateSubscription(svc.process_wsdl(sfgRequest));
                }
                if (baseResponse == null)
                {
                    baseResponse = new BaseResponse();
                    FatalErrorResponse fatalError = new FatalErrorResponse();
                    baseResponse.TypedResponse = fatalError;
                    baseResponse.Messages.Add(new Message("SFGFatalError"));
                }
            }
            catch (Exception ex)
            {
                baseResponse = new BaseResponse();
                FatalErrorResponse fatalError = new FatalErrorResponse();
                baseResponse.TypedResponse = fatalError;
                Message error = new Message("UnknownException");
                baseResponse.DebugStringLog.Add(ex.TargetSite.Name);
                baseResponse.DebugStringLog.Add(ex.Message);
                baseResponse.DebugStringLog.Add(ex.StackTrace);
                baseResponse.Messages.Add(error);
                EventLogger.LogError(string.Format("{0}()", new object[] { className }),
                                     string.Format("Message: {0} \r\nStackTrace: {1}", ex.Message, ex.StackTrace));
            }
            return(baseResponse);
        }
예제 #2
0
 public static BaseResponse RedeemReferralSubscription(SubscriptionServiceRequest ahRequest)
 {
     string className = "SFGWrapper.CreateSubscription";
     BaseResponse baseResponse = new BaseResponse();
     try
     {
         using (SubOrderInsertService svc = new SubOrderInsertService())
         {
             svc.Timeout = 20000;
             svc.Credentials = new System.Net.NetworkCredential(ahRequest.ServiceUsername, ahRequest.ServicePassword);
             argtype sfgRequest = SubOrderInsertTranslators.TranslateToSfgRequest(ahRequest);
             baseResponse = SubOrderInsertTranslators.CreateSubscription(svc.process_wsdl(sfgRequest));
         }
         if (baseResponse == null)
         {
             baseResponse = new BaseResponse();
             FatalErrorResponse fatalError = new FatalErrorResponse();
             baseResponse.TypedResponse = fatalError;
             baseResponse.Messages.Add(new Message("SFGFatalError"));
         }
     }
     catch (Exception ex)
     {
         baseResponse = new BaseResponse();
         FatalErrorResponse fatalError = new FatalErrorResponse();
         baseResponse.TypedResponse = fatalError;
         Message error = new Message("UnknownException");
         baseResponse.DebugStringLog.Add(ex.TargetSite.Name);
         baseResponse.DebugStringLog.Add(ex.Message);
         baseResponse.DebugStringLog.Add(ex.StackTrace);
         baseResponse.Messages.Add(error);
         EventLogger.LogError(string.Format("{0}()", new object[] { className }),
             string.Format("Message: {0} \r\nStackTrace: {1}", ex.Message, ex.StackTrace));
     }
     return baseResponse;
 }
예제 #3
0
        public BaseResponse CreateSubscription(int subscriptionlength, 
            float amountpaid, string verifoneroutingid, 
            string publicationcode, string keycode, 
            string renewingmemberid, string salutation, string firstname, string middleinitial, string lastname, string suffix,
            string professionaltitle, string email, bool optin, string businessname, string address1, string address2, string address3,
            string city, string state, string postalcode, string country,
            string phone, string fax, string altcity, 
            bool giftflag, 
            string renewinggiftmemberid, string giftsalutation, string giftfirstname, string giftmiddleinitial, string giftlastname, string giftsuffix,
            string giftprofessionaltitle, string giftemail, bool giftoptin, string giftbusinessname, string giftaddress1, string giftaddress2, string giftaddress3,
            string giftcity, string giftstate, string giftpostalcode, string giftcountry,
            string giftphone, string giftfax, string giftaltcity)
        {
            try
            {
                #region set member data
                Member memberData = new Member();
                memberData.MemberId = renewingmemberid;
                memberData.Salutation = salutation;
                memberData.FirstName = firstname;
                memberData.MiddleInitial = middleinitial;
                memberData.LastName = lastname;
                memberData.Suffix = suffix;
                memberData.ProfessionalTitle = professionaltitle;
                memberData.OptIn = optin;
                memberData.Email = email;

                memberData.Address = new Address();
                memberData.Address.BusinessName = businessname;
                memberData.Address.Address1 = address1;
                memberData.Address.Address2 = address2;
                memberData.Address.Address3 = address3;
                memberData.Address.City = city;
                memberData.Address.State = state;
                memberData.Address.PostalCode = postalcode;
                memberData.Address.Country = country;
                memberData.Address.Phone = phone;
                memberData.Address.Fax = fax;
                memberData.Address.AltCity = altcity;

                Member giftData = new Member();
                //giftData.MemberId = renewinggiftmemberid;
                //giftData.Salutation = salutation;
                //giftData.FirstName = firstname;
                //giftData.MiddleInitial = middleinitial;
                //giftData.LastName = lastname;
                //giftData.Suffix = suffix;
                //giftData.ProfessionalTitle = professionaltitle;
                //giftData.OptIn = optin;
                //giftData.Email = email;

                //giftData.Address = new Address();
                //giftData.Address.BusinessName = businessname;
                //giftData.Address.Address1 = address1;
                //giftData.Address.Address2 = address2;
                //giftData.Address.Address3 = address3;
                //giftData.Address.City = city;
                //giftData.Address.State = state;
                //giftData.Address.PostalCode = postalcode;
                //giftData.Address.Country = country;
                //giftData.Address.Phone = phone;
                //giftData.Address.Fax = fax;
                //giftData.Address.AltCity = altcity;
                #endregion

                #region set cc data
                CreditCard creditCardData = new CreditCard();
                creditCardData.Price = amountpaid;
                creditCardData.AmountPaid = amountpaid;
                creditCardData.VerifoneRoutingId = verifoneroutingid;
                #endregion

                SubscriptionServiceRequest request = new SubscriptionServiceRequest(memberData, giftData, creditCardData, 
                        publicationcode, keycode, giftflag, subscriptionlength);
                baseResponse = SubOrderInsert.CreateSubscription(request);       
            }
            catch (Exception ex)
            {
                EventLogger.LogError("SubscriptionLogic.CreateSubscription", ex.Message);
            }
            return baseResponse;
        }
예제 #4
0
        public BaseResponse RedeemReferralSubscription(int referralid, string firstname, string lastname,
            string emailaddress, string countrycode, string address1, string address2,
            string city, string region, string postal, bool optin, string username, string password)
        {
            List<Message> errors = new List<Message>();
            string errortext = string.Empty;
            try
            {
                HarperLINQ.Referral referral;

                #region input validation
                using (AHT_MainDataContext context = new AHT_MainDataContext(ConfigurationManager.ConnectionStrings["AHT_MainConnectionString"].ConnectionString))
                {
                    referral = context.Referrals.SingleOrDefault(r => r.id == referralid);
                }
                if (referral == null)
                {
                    errortext = string.Format(BusinessLogicStrings.invalidReferralIdError, referralid);
                    errors.Add(new Message(MessageSources.AndrewHarper, 0, "RedeemReferralException", errortext, "", "", null));
                }
                else if (referral.dateredeemed != null || referral.friendid > 0)
                {
                    errortext = string.Format(BusinessLogicStrings.RedeemedReferralError, referralid);
                    errors.Add(new Message(MessageSources.AndrewHarper, 0, "RedeemReferralException", errortext, "", "", null));
                }
                else if (referral.dateexpires <= DateTime.Now)
                {
                    errortext = string.Format(BusinessLogicStrings.expiredReferralError, referralid);
                    errors.Add(new Message(MessageSources.AndrewHarper, 0, "RedeemReferralException", errortext, "", "", null));
                }
                #endregion
                
                else
                {
                    #region sub order insert
                    Member giftData = new Member();
                    giftData.FirstName = firstname;
                    giftData.LastName = lastname;
                    giftData.OptIn = optin;
                    giftData.Email = emailaddress;

                    giftData.Address = new Address();
                    giftData.Address.Address1 = address1;
                    giftData.Address.Address2 = address2;
                    giftData.Address.City = city;
                    giftData.Address.State = region;
                    giftData.Address.PostalCode = postal;
                    giftData.Address.Country = countrycode;

                    SubscriptionServiceRequest request = new SubscriptionServiceRequest(referral, giftData);
                    baseResponse = SubOrderInsert.RedeemReferralSubscription(request);
                    foreach (Message err in baseResponse.Messages)
                    {
                        errors.Add(err);
                    }
                    #endregion

                    MembershipLogic memberlogic = new MembershipLogic();
                    BaseResponse memberResponse = null;
                    if (errors.Count <= 0)
                    {
                        memberResponse = memberlogic.GetMemberByUserName(emailaddress);
                    }

                    if (!(errors.Count > 0 
                        || memberResponse == null
                        || memberResponse.TypedResponse == null
                        || memberResponse.TypedResponse.Success == false))
                    {
                        using (AHT_MainDataContext context = new AHT_MainDataContext(ConfigurationManager.ConnectionStrings["AHT_MainConnectionString"].ConnectionString))
                        {
                            GetMemberResponse getMemberResponse = memberResponse.TypedResponse as GetMemberResponse;
                            if (getMemberResponse.MemberFound && getMemberResponse.MemberData != null)
                            {
                                string newMemberId = getMemberResponse.MemberData.MemberId;

                                #region create the user at AH
                                object[] create_response = tbl_Customer.CreateCustomer(address1, address2, "", city, region, 
                                    countrycode, postal, "Z1", password, "PERSONAL", "", 
                                    firstname, "", lastname, "", emailaddress, username, newMemberId, referral.pubcode, DateTime.Now.AddMonths(referral.subscriptionlength).ToShortDateString(), DateTime.Now.ToShortDateString(), username, "");
                                tbl_Customer customer = (tbl_Customer)create_response[1];
                                #endregion

                                #region referral data at AH
                                referral = context.Referrals.SingleOrDefault(r => r.id == referralid);
                                referral.dateredeemed = DateTime.Now;
                                referral.friendid = customer.cusID;
                                context.SubmitChanges();
                                #endregion

                                #region send email
                                Mailer mailer = new Mailer();

                                mailer.SendEmail(
                                    ConfigurationManager.AppSettings["mailserviceuser"], 
                                    ConfigurationManager.AppSettings["mailservicepwd"],
                                    "Welcome to the Andrew Harper Community!", 
                                    ConfigurationManager.AppSettings["referemailfrom"],
                                    referral.friendemail,
                                    string.Empty, 
                                    string.Empty,
                                    referral.GetReferralUserCreatedEmailBody(), 
                                    true, 
                                    ConfigurationManager.AppSettings["smtpserver"]);
                                #endregion
                            }
                        }
                    }
                    else
                    {
                        errortext = string.Format(BusinessLogicStrings.RetrieveMemeberError, new object[] { referralid, emailaddress });
                        errors.Add(new Message(MessageSources.AndrewHarper, 0, "RedeemReferralException", errortext, "", "", null));
                    }
                }

                baseResponse.TypedResponse = new AHResponse();
                if (errors.Count == 0)
                {
                    baseResponse.TypedResponse.Success = true;
                }
                else
                {
                    baseResponse.TypedResponse.Success = false;
                }
            }
            
            catch (Exception ex)
            {
                baseResponse.TypedResponse.Success = false;
                errortext = string.Format(BusinessLogicStrings.UnknownReferralError, ex.Message);
                errors.Add(new Message(MessageSources.AndrewHarper, 0, "RedeemReferralException", errortext, "", "", null));
            }
            foreach (Message error in errors)
            {
                if (baseResponse == null)
                {
                    baseResponse = new BaseResponse();
                }
                baseResponse.Messages.Add(error);

                StringBuilder error_text = new StringBuilder();
                error_text.AppendLine("REFERRAL ERROR LOGGED");
                error_text.AppendLine(string.Format("REFERRALID {0}", referralid));
                baseResponse.Messages.Add(error);
                error_text.AppendLine(string.Format("ERROR: ", new object[] { }));
                EventLogger.LogError("SubscriptionLogic.RedeemReferralSubscription", error_text.ToString(), true);
            }
            return baseResponse;
        }        
예제 #5
0
        //string optin, string fax, string altcity,string giftoptin, string giftfax, string giftaltcity
        private object[] CreateSubscription(string subscriptionlength,
            string amountpaid, string verifoneroutingid,
            string publicationcode, string keycode,
            string renewingmemberid, string salutation, string firstname, string middleinitial, string lastname, string suffix,
            string professionaltitle, string email, string businessname, string address1, string address2, string address3,
            string city, string state, string postalcode, string country,
            string phone, 
            string giftflag,
            string renewinggiftmemberid, string giftsalutation, string giftfirstname, string giftmiddleinitial, string giftlastname, string giftsuffix,
            string giftprofessionaltitle, string giftemail, string giftbusinessname, string giftaddress1, string giftaddress2, string giftaddress3,
            string giftcity, string giftstate, string giftpostalcode, string giftcountry,
            string giftphone,
            string iscomp)
        {
            int response_code = 0;
            string member_id = string.Empty;

            #region convert string input to correct types

            bool is_comp = false;
            if (!bool.TryParse(iscomp, out is_comp))
            {
                is_comp = false;
            }
            int i_subscriptionlength = 0;
            float f_amountpaid = 0.0f;
            bool b_optin = false;
            bool b_giftflag = false;
            bool b_giftoptin = false;

            if (!int.TryParse(subscriptionlength, out i_subscriptionlength))
            {
                response_code = 401;
            }
            if (!float.TryParse(amountpaid, out f_amountpaid))
            {
                response_code = 402;
            }
            /*if (!bool.TryParse(optin, out b_optin))
            {
                response_code = 403;
            }*/
            if (!string.IsNullOrEmpty(giftflag))
            {
                if (!bool.TryParse(giftflag, out b_giftflag))
                {
                    response_code = 404;
                }
                /*if (!bool.TryParse(giftoptin, out b_giftoptin))
                {
                    response_code = 405;
                }*/
            }
            #endregion

            if (response_code == 0)
            {
                #region set member data
                Member memberData = new Member();
                memberData.MemberId = renewingmemberid;
                memberData.Salutation = salutation;
                memberData.FirstName = firstname;
                memberData.MiddleInitial = middleinitial;
                memberData.LastName = lastname;
                memberData.Suffix = suffix;
                memberData.ProfessionalTitle = professionaltitle;
                memberData.OptIn = b_optin;
                memberData.Email = email;

                memberData.Address = new Address();
                memberData.Address.BusinessName = businessname;
                memberData.Address.Address1 = address1;
                memberData.Address.Address2 = address2;
                memberData.Address.Address3 = address3;
                memberData.Address.City = city;
                memberData.Address.State = state;
                memberData.Address.PostalCode = postalcode;
                memberData.Address.Country = country;
                memberData.Address.Phone = phone;
                //memberData.Address.Fax = fax;
                //memberData.Address.AltCity = altcity;

                Member giftData = new Member();
                if (b_giftflag)
                {
                    giftData.MemberId = renewinggiftmemberid;
                    giftData.Salutation = salutation;
                    giftData.FirstName = firstname;
                    giftData.MiddleInitial = middleinitial;
                    giftData.LastName = lastname;
                    giftData.Suffix = suffix;
                    giftData.ProfessionalTitle = professionaltitle;
                    giftData.OptIn = b_giftoptin;
                    giftData.Email = email;

                    giftData.Address = new Address();
                    giftData.Address.BusinessName = businessname;
                    giftData.Address.Address1 = address1;
                    giftData.Address.Address2 = address2;
                    giftData.Address.Address3 = address3;
                    giftData.Address.City = city;
                    giftData.Address.State = state;
                    giftData.Address.PostalCode = postalcode;
                    giftData.Address.Country = country;
                    giftData.Address.Phone = phone;
                    //giftData.Address.Fax = fax;
                    //giftData.Address.AltCity = altcity;
                }
                #endregion

                #region set cc data
                CreditCard creditCardData = new CreditCard();
                creditCardData.Price = f_amountpaid;
                creditCardData.AmountPaid = f_amountpaid;
                creditCardData.VerifoneRoutingId = verifoneroutingid;
                
                if(is_comp)
                {
                    creditCardData.PaymentType = "F";
                }
                #endregion

                SubscriptionServiceRequest request = new SubscriptionServiceRequest(memberData, giftData, 
                    creditCardData, publicationcode, keycode, b_giftflag, i_subscriptionlength);
                BaseResponse sub_response = SubOrderInsert.CreateSubscription(request);
                if (sub_response == null || sub_response.TypedResponse == null || sub_response.TypedResponse.Success == false)
                {
                    string msgs = string.Empty;
                    foreach (Message s in sub_response.Messages)
                    {
                        msgs += "[" + s.ToString() + "]";
                    }
                    tbl_AppEventLog logmsg = new tbl_AppEventLog();
                    logmsg.aelAppName = "HarperSERVICE";
                    logmsg.aelDateCreated = DateTime.Now;
                    logmsg.aelEvent = "406";
                    logmsg.aelMessage1 = "sub_response messages:" + msgs;
                    logmsg.aelMessage2 = "typed response:" + sub_response.TypedResponse.ToString();
                    logmsg.aelMessage3 = "success:" + sub_response.TypedResponse.Success;
                    logmsg.Save();
                    response_code = 406;
                }
                else
                {
                    member_id = ((SubscriptionServiceResponse)sub_response.TypedResponse).MemberId;
                }
            }
            return new object[]{response_code, member_id};
        }
        public static argtype TranslateToSfgRequest(SubscriptionServiceRequest ahRequest)
        {
            EventLogger.LogEvent("ENTERING -> SFGWrapper.SubOrderInsertTranslators.TranslateToSfgRequest()");
            argtype sfgRequest = new argtype();

            #region readonly properties
            sfgRequest.org = ahRequest.Org;
            sfgRequest.test_mode = ahRequest.TestMode ? "Y" : "N";
            sfgRequest.app_version = ahRequest.AppVersion;
            sfgRequest.program_type_id = ahRequest.ProgramTypeId;
            #endregion

            sfgRequest.payment_type = ahRequest.CreditCardData.PaymentType;
            sfgRequest.program_id = ahRequest.PublicationCode;
            sfgRequest.term = ahRequest.SubscriptionLength;
            sfgRequest.price = ahRequest.CreditCardData.Price.ToString("F");
            sfgRequest.postage = ahRequest.CreditCardData.ShippingHandling.ToString("F");
            sfgRequest.tax = ahRequest.CreditCardData.Tax.ToString("F");
            sfgRequest.amount_paid = ahRequest.CreditCardData.AmountPaid.ToString("F");
            sfgRequest.key_code = ahRequest.KeyCode;
            sfgRequest.cc_route_no = ahRequest.CreditCardData.VerifoneRoutingId;
            sfgRequest.refresh_customer = ahRequest.RefreshCustomer ? "Y" : "N";

            #region member data
            sfgRequest.customer_number = ahRequest.SubscribingMember.MemberId;
            sfgRequest.c_title = ahRequest.SubscribingMember.Salutation;
            sfgRequest.c_first = ahRequest.SubscribingMember.FirstName;
            sfgRequest.c_mi = ahRequest.SubscribingMember.MiddleInitial;
            sfgRequest.c_last = ahRequest.SubscribingMember.LastName;
            sfgRequest.c_suffix = ahRequest.SubscribingMember.Suffix;
            sfgRequest.c_professional_title = ahRequest.SubscribingMember.ProfessionalTitle;
            sfgRequest.c_business_name = ahRequest.SubscribingMember.Address.BusinessName;
            sfgRequest.c_add1 = ahRequest.SubscribingMember.Address.Address1;
            sfgRequest.c_add2 = ahRequest.SubscribingMember.Address.Address2;
            sfgRequest.c_add3 = ahRequest.SubscribingMember.Address.Address3;
            sfgRequest.c_city = ahRequest.SubscribingMember.Address.City;
            sfgRequest.c_st = ahRequest.SubscribingMember.Address.State;
            sfgRequest.c_zip = ahRequest.SubscribingMember.Address.PostalCode;
            sfgRequest.c_country = ahRequest.SubscribingMember.Address.Country;
            sfgRequest.c_phone = ahRequest.SubscribingMember.Address.Phone;
            sfgRequest.c_fax = ahRequest.SubscribingMember.Address.Fax;
            sfgRequest.c_altcity = ahRequest.SubscribingMember.Address.AltCity;
            sfgRequest.c_email = ahRequest.SubscribingMember.Email;
            sfgRequest.c_optin = ahRequest.SubscribingMember.OptIn ? "Y" : "N";

            #endregion

            #region gift member data
            sfgRequest.gift_flag = ahRequest.GiftFlag ? "Y" : "N";
            sfgRequest.gift_number = ahRequest.GiftRecipient.MemberId;
            sfgRequest.g_title = ahRequest.GiftRecipient.Salutation;
            sfgRequest.g_first = ahRequest.GiftRecipient.FirstName;
            sfgRequest.g_mi = ahRequest.GiftRecipient.MiddleInitial;
            sfgRequest.g_last = ahRequest.GiftRecipient.LastName;
            sfgRequest.g_suffix = ahRequest.GiftRecipient.Suffix;
            sfgRequest.g_professional_title = ahRequest.GiftRecipient.ProfessionalTitle;
            sfgRequest.g_business_name = ahRequest.GiftRecipient.Address.BusinessName;
            sfgRequest.g_add1 = ahRequest.GiftRecipient.Address.Address1;
            sfgRequest.g_add2 = ahRequest.GiftRecipient.Address.Address2;
            sfgRequest.g_add3 = ahRequest.GiftRecipient.Address.Address3;
            sfgRequest.g_city = ahRequest.GiftRecipient.Address.City;
            sfgRequest.g_st = ahRequest.GiftRecipient.Address.State;
            sfgRequest.g_zip = ahRequest.GiftRecipient.Address.PostalCode;
            sfgRequest.g_country = ahRequest.GiftRecipient.Address.Country;
            sfgRequest.g_phone = ahRequest.GiftRecipient.Address.Phone;
            sfgRequest.g_email = ahRequest.GiftRecipient.Email;
            sfgRequest.g_optin = ahRequest.GiftRecipient.OptIn ? "Y" : "N";
            #endregion

            EventLogger.LogEvent("LEAVING -> SFGWrapper.SubOrderInsertTranslators.TranslateToSfgRequest()");
            return sfgRequest;
        }
예제 #7
0
        public BaseResponse CreateSubscription(int subscriptionlength,
                                               float amountpaid, string verifoneroutingid,
                                               string publicationcode, string keycode,
                                               string renewingmemberid, string salutation, string firstname, string middleinitial, string lastname, string suffix,
                                               string professionaltitle, string email, bool optin, string businessname, string address1, string address2, string address3,
                                               string city, string state, string postalcode, string country,
                                               string phone, string fax, string altcity,
                                               bool giftflag,
                                               string renewinggiftmemberid, string giftsalutation, string giftfirstname, string giftmiddleinitial, string giftlastname, string giftsuffix,
                                               string giftprofessionaltitle, string giftemail, bool giftoptin, string giftbusinessname, string giftaddress1, string giftaddress2, string giftaddress3,
                                               string giftcity, string giftstate, string giftpostalcode, string giftcountry,
                                               string giftphone, string giftfax, string giftaltcity)
        {
            try
            {
                #region set member data
                Member memberData = new Member();
                memberData.MemberId          = renewingmemberid;
                memberData.Salutation        = salutation;
                memberData.FirstName         = firstname;
                memberData.MiddleInitial     = middleinitial;
                memberData.LastName          = lastname;
                memberData.Suffix            = suffix;
                memberData.ProfessionalTitle = professionaltitle;
                memberData.OptIn             = optin;
                memberData.Email             = email;

                memberData.Address = new Address();
                memberData.Address.BusinessName = businessname;
                memberData.Address.Address1     = address1;
                memberData.Address.Address2     = address2;
                memberData.Address.Address3     = address3;
                memberData.Address.City         = city;
                memberData.Address.State        = state;
                memberData.Address.PostalCode   = postalcode;
                memberData.Address.Country      = country;
                memberData.Address.Phone        = phone;
                memberData.Address.Fax          = fax;
                memberData.Address.AltCity      = altcity;

                Member giftData = new Member();
                //giftData.MemberId = renewinggiftmemberid;
                //giftData.Salutation = salutation;
                //giftData.FirstName = firstname;
                //giftData.MiddleInitial = middleinitial;
                //giftData.LastName = lastname;
                //giftData.Suffix = suffix;
                //giftData.ProfessionalTitle = professionaltitle;
                //giftData.OptIn = optin;
                //giftData.Email = email;

                //giftData.Address = new Address();
                //giftData.Address.BusinessName = businessname;
                //giftData.Address.Address1 = address1;
                //giftData.Address.Address2 = address2;
                //giftData.Address.Address3 = address3;
                //giftData.Address.City = city;
                //giftData.Address.State = state;
                //giftData.Address.PostalCode = postalcode;
                //giftData.Address.Country = country;
                //giftData.Address.Phone = phone;
                //giftData.Address.Fax = fax;
                //giftData.Address.AltCity = altcity;
                #endregion

                #region set cc data
                CreditCard creditCardData = new CreditCard();
                creditCardData.Price             = amountpaid;
                creditCardData.AmountPaid        = amountpaid;
                creditCardData.VerifoneRoutingId = verifoneroutingid;
                #endregion

                SubscriptionServiceRequest request = new SubscriptionServiceRequest(memberData, giftData, creditCardData,
                                                                                    publicationcode, keycode, giftflag, subscriptionlength);
                baseResponse = SubOrderInsert.CreateSubscription(request);
            }
            catch (Exception ex)
            {
                EventLogger.LogError("SubscriptionLogic.CreateSubscription", ex.Message);
            }
            return(baseResponse);
        }
예제 #8
0
        public BaseResponse RedeemReferralSubscription(int referralid, string firstname, string lastname,
                                                       string emailaddress, string countrycode, string address1, string address2,
                                                       string city, string region, string postal, bool optin, string username, string password)
        {
            List <Message> errors    = new List <Message>();
            string         errortext = string.Empty;

            try
            {
                HarperLINQ.Referral referral;

                #region input validation
                using (AHT_MainDataContext context = new AHT_MainDataContext(ConfigurationManager.ConnectionStrings["AHT_MainConnectionString"].ConnectionString))
                {
                    referral = context.Referrals.SingleOrDefault(r => r.id == referralid);
                }
                if (referral == null)
                {
                    errortext = string.Format(BusinessLogicStrings.invalidReferralIdError, referralid);
                    errors.Add(new Message(MessageSources.AndrewHarper, 0, "RedeemReferralException", errortext, "", "", null));
                }
                else if (referral.dateredeemed != null || referral.friendid > 0)
                {
                    errortext = string.Format(BusinessLogicStrings.RedeemedReferralError, referralid);
                    errors.Add(new Message(MessageSources.AndrewHarper, 0, "RedeemReferralException", errortext, "", "", null));
                }
                else if (referral.dateexpires <= DateTime.Now)
                {
                    errortext = string.Format(BusinessLogicStrings.expiredReferralError, referralid);
                    errors.Add(new Message(MessageSources.AndrewHarper, 0, "RedeemReferralException", errortext, "", "", null));
                }
                #endregion

                else
                {
                    #region sub order insert
                    Member giftData = new Member();
                    giftData.FirstName = firstname;
                    giftData.LastName  = lastname;
                    giftData.OptIn     = optin;
                    giftData.Email     = emailaddress;

                    giftData.Address            = new Address();
                    giftData.Address.Address1   = address1;
                    giftData.Address.Address2   = address2;
                    giftData.Address.City       = city;
                    giftData.Address.State      = region;
                    giftData.Address.PostalCode = postal;
                    giftData.Address.Country    = countrycode;

                    SubscriptionServiceRequest request = new SubscriptionServiceRequest(referral, giftData);
                    baseResponse = SubOrderInsert.RedeemReferralSubscription(request);
                    foreach (Message err in baseResponse.Messages)
                    {
                        errors.Add(err);
                    }
                    #endregion

                    MembershipLogic memberlogic    = new MembershipLogic();
                    BaseResponse    memberResponse = null;
                    if (errors.Count <= 0)
                    {
                        memberResponse = memberlogic.GetMemberByUserName(emailaddress);
                    }

                    if (!(errors.Count > 0 ||
                          memberResponse == null ||
                          memberResponse.TypedResponse == null ||
                          memberResponse.TypedResponse.Success == false))
                    {
                        using (AHT_MainDataContext context = new AHT_MainDataContext(ConfigurationManager.ConnectionStrings["AHT_MainConnectionString"].ConnectionString))
                        {
                            GetMemberResponse getMemberResponse = memberResponse.TypedResponse as GetMemberResponse;
                            if (getMemberResponse.MemberFound && getMemberResponse.MemberData != null)
                            {
                                string newMemberId = getMemberResponse.MemberData.MemberId;

                                #region create the user at AH
                                object[] create_response = tbl_Customer.CreateCustomer(address1, address2, "", city, region,
                                                                                       countrycode, postal, "Z1", password, "PERSONAL", "",
                                                                                       firstname, "", lastname, "", emailaddress, username, newMemberId, referral.pubcode, DateTime.Now.AddMonths(referral.subscriptionlength).ToShortDateString(), DateTime.Now.ToShortDateString(), username, "");
                                tbl_Customer customer = (tbl_Customer)create_response[1];
                                #endregion

                                #region referral data at AH
                                referral = context.Referrals.SingleOrDefault(r => r.id == referralid);
                                referral.dateredeemed = DateTime.Now;
                                referral.friendid     = customer.cusID;
                                context.SubmitChanges();
                                #endregion

                                #region send email
                                Mailer mailer = new Mailer();

                                mailer.SendEmail(
                                    ConfigurationManager.AppSettings["mailserviceuser"],
                                    ConfigurationManager.AppSettings["mailservicepwd"],
                                    "Welcome to the Andrew Harper Community!",
                                    ConfigurationManager.AppSettings["referemailfrom"],
                                    referral.friendemail,
                                    string.Empty,
                                    string.Empty,
                                    referral.GetReferralUserCreatedEmailBody(),
                                    true,
                                    ConfigurationManager.AppSettings["smtpserver"]);
                                #endregion
                            }
                        }
                    }
                    else
                    {
                        errortext = string.Format(BusinessLogicStrings.RetrieveMemeberError, new object[] { referralid, emailaddress });
                        errors.Add(new Message(MessageSources.AndrewHarper, 0, "RedeemReferralException", errortext, "", "", null));
                    }
                }

                baseResponse.TypedResponse = new AHResponse();
                if (errors.Count == 0)
                {
                    baseResponse.TypedResponse.Success = true;
                }
                else
                {
                    baseResponse.TypedResponse.Success = false;
                }
            }

            catch (Exception ex)
            {
                baseResponse.TypedResponse.Success = false;
                errortext = string.Format(BusinessLogicStrings.UnknownReferralError, ex.Message);
                errors.Add(new Message(MessageSources.AndrewHarper, 0, "RedeemReferralException", errortext, "", "", null));
            }
            foreach (Message error in errors)
            {
                if (baseResponse == null)
                {
                    baseResponse = new BaseResponse();
                }
                baseResponse.Messages.Add(error);

                StringBuilder error_text = new StringBuilder();
                error_text.AppendLine("REFERRAL ERROR LOGGED");
                error_text.AppendLine(string.Format("REFERRALID {0}", referralid));
                baseResponse.Messages.Add(error);
                error_text.AppendLine(string.Format("ERROR: ", new object[] { }));
                EventLogger.LogError("SubscriptionLogic.RedeemReferralSubscription", error_text.ToString(), true);
            }
            return(baseResponse);
        }
예제 #9
0
        public static argtype TranslateToSfgRequest(SubscriptionServiceRequest ahRequest)
        {
            EventLogger.LogEvent("ENTERING -> SFGWrapper.SubOrderInsertTranslators.TranslateToSfgRequest()");
            argtype sfgRequest = new argtype();

            #region readonly properties
            sfgRequest.org             = ahRequest.Org;
            sfgRequest.test_mode       = ahRequest.TestMode ? "Y" : "N";
            sfgRequest.app_version     = ahRequest.AppVersion;
            sfgRequest.program_type_id = ahRequest.ProgramTypeId;
            #endregion

            sfgRequest.payment_type     = ahRequest.CreditCardData.PaymentType;
            sfgRequest.program_id       = ahRequest.PublicationCode;
            sfgRequest.term             = ahRequest.SubscriptionLength;
            sfgRequest.price            = ahRequest.CreditCardData.Price.ToString("F");
            sfgRequest.postage          = ahRequest.CreditCardData.ShippingHandling.ToString("F");
            sfgRequest.tax              = ahRequest.CreditCardData.Tax.ToString("F");
            sfgRequest.amount_paid      = ahRequest.CreditCardData.AmountPaid.ToString("F");
            sfgRequest.key_code         = ahRequest.KeyCode;
            sfgRequest.cc_route_no      = ahRequest.CreditCardData.VerifoneRoutingId;
            sfgRequest.refresh_customer = ahRequest.RefreshCustomer ? "Y" : "N";

            #region member data
            sfgRequest.customer_number      = ahRequest.SubscribingMember.MemberId;
            sfgRequest.c_title              = ahRequest.SubscribingMember.Salutation;
            sfgRequest.c_first              = ahRequest.SubscribingMember.FirstName;
            sfgRequest.c_mi                 = ahRequest.SubscribingMember.MiddleInitial;
            sfgRequest.c_last               = ahRequest.SubscribingMember.LastName;
            sfgRequest.c_suffix             = ahRequest.SubscribingMember.Suffix;
            sfgRequest.c_professional_title = ahRequest.SubscribingMember.ProfessionalTitle;
            sfgRequest.c_business_name      = ahRequest.SubscribingMember.Address.BusinessName;
            sfgRequest.c_add1               = ahRequest.SubscribingMember.Address.Address1;
            sfgRequest.c_add2               = ahRequest.SubscribingMember.Address.Address2;
            sfgRequest.c_add3               = ahRequest.SubscribingMember.Address.Address3;
            sfgRequest.c_city               = ahRequest.SubscribingMember.Address.City;
            sfgRequest.c_st                 = ahRequest.SubscribingMember.Address.State;
            sfgRequest.c_zip                = ahRequest.SubscribingMember.Address.PostalCode;
            sfgRequest.c_country            = ahRequest.SubscribingMember.Address.Country;
            sfgRequest.c_phone              = ahRequest.SubscribingMember.Address.Phone;
            sfgRequest.c_fax                = ahRequest.SubscribingMember.Address.Fax;
            sfgRequest.c_altcity            = ahRequest.SubscribingMember.Address.AltCity;
            sfgRequest.c_email              = ahRequest.SubscribingMember.Email;
            sfgRequest.c_optin              = ahRequest.SubscribingMember.OptIn ? "Y" : "N";

            #endregion

            #region gift member data
            sfgRequest.gift_flag            = ahRequest.GiftFlag ? "Y" : "N";
            sfgRequest.gift_number          = ahRequest.GiftRecipient.MemberId;
            sfgRequest.g_title              = ahRequest.GiftRecipient.Salutation;
            sfgRequest.g_first              = ahRequest.GiftRecipient.FirstName;
            sfgRequest.g_mi                 = ahRequest.GiftRecipient.MiddleInitial;
            sfgRequest.g_last               = ahRequest.GiftRecipient.LastName;
            sfgRequest.g_suffix             = ahRequest.GiftRecipient.Suffix;
            sfgRequest.g_professional_title = ahRequest.GiftRecipient.ProfessionalTitle;
            sfgRequest.g_business_name      = ahRequest.GiftRecipient.Address.BusinessName;
            sfgRequest.g_add1               = ahRequest.GiftRecipient.Address.Address1;
            sfgRequest.g_add2               = ahRequest.GiftRecipient.Address.Address2;
            sfgRequest.g_add3               = ahRequest.GiftRecipient.Address.Address3;
            sfgRequest.g_city               = ahRequest.GiftRecipient.Address.City;
            sfgRequest.g_st                 = ahRequest.GiftRecipient.Address.State;
            sfgRequest.g_zip                = ahRequest.GiftRecipient.Address.PostalCode;
            sfgRequest.g_country            = ahRequest.GiftRecipient.Address.Country;
            sfgRequest.g_phone              = ahRequest.GiftRecipient.Address.Phone;
            sfgRequest.g_email              = ahRequest.GiftRecipient.Email;
            sfgRequest.g_optin              = ahRequest.GiftRecipient.OptIn ? "Y" : "N";
            #endregion

            EventLogger.LogEvent("LEAVING -> SFGWrapper.SubOrderInsertTranslators.TranslateToSfgRequest()");
            return(sfgRequest);
        }
        //string optin, string fax, string altcity,string giftoptin, string giftfax, string giftaltcity
        private object[] CreateSubscription(string subscriptionlength,
                                            string amountpaid, string verifoneroutingid,
                                            string publicationcode, string keycode,
                                            string renewingmemberid, string salutation, string firstname, string middleinitial, string lastname, string suffix,
                                            string professionaltitle, string email, string businessname, string address1, string address2, string address3,
                                            string city, string state, string postalcode, string country,
                                            string phone,
                                            string giftflag,
                                            string renewinggiftmemberid, string giftsalutation, string giftfirstname, string giftmiddleinitial, string giftlastname, string giftsuffix,
                                            string giftprofessionaltitle, string giftemail, string giftbusinessname, string giftaddress1, string giftaddress2, string giftaddress3,
                                            string giftcity, string giftstate, string giftpostalcode, string giftcountry,
                                            string giftphone,
                                            string iscomp)
        {
            int    response_code = 0;
            string member_id     = string.Empty;

            #region convert string input to correct types

            bool is_comp = false;
            if (!bool.TryParse(iscomp, out is_comp))
            {
                is_comp = false;
            }
            int   i_subscriptionlength = 0;
            float f_amountpaid         = 0.0f;
            bool  b_optin     = false;
            bool  b_giftflag  = false;
            bool  b_giftoptin = false;

            if (!int.TryParse(subscriptionlength, out i_subscriptionlength))
            {
                response_code = 401;
            }
            if (!float.TryParse(amountpaid, out f_amountpaid))
            {
                response_code = 402;
            }

            /*if (!bool.TryParse(optin, out b_optin))
             * {
             *  response_code = 403;
             * }*/
            if (!string.IsNullOrEmpty(giftflag))
            {
                if (!bool.TryParse(giftflag, out b_giftflag))
                {
                    response_code = 404;
                }

                /*if (!bool.TryParse(giftoptin, out b_giftoptin))
                 * {
                 *  response_code = 405;
                 * }*/
            }
            #endregion

            if (response_code == 0)
            {
                #region set member data
                Member memberData = new Member();
                memberData.MemberId          = renewingmemberid;
                memberData.Salutation        = salutation;
                memberData.FirstName         = firstname;
                memberData.MiddleInitial     = middleinitial;
                memberData.LastName          = lastname;
                memberData.Suffix            = suffix;
                memberData.ProfessionalTitle = professionaltitle;
                memberData.OptIn             = b_optin;
                memberData.Email             = email;

                memberData.Address = new Address();
                memberData.Address.BusinessName = businessname;
                memberData.Address.Address1     = address1;
                memberData.Address.Address2     = address2;
                memberData.Address.Address3     = address3;
                memberData.Address.City         = city;
                memberData.Address.State        = state;
                memberData.Address.PostalCode   = postalcode;
                memberData.Address.Country      = country;
                memberData.Address.Phone        = phone;
                //memberData.Address.Fax = fax;
                //memberData.Address.AltCity = altcity;

                Member giftData = new Member();
                if (b_giftflag)
                {
                    giftData.MemberId          = renewinggiftmemberid;
                    giftData.Salutation        = salutation;
                    giftData.FirstName         = firstname;
                    giftData.MiddleInitial     = middleinitial;
                    giftData.LastName          = lastname;
                    giftData.Suffix            = suffix;
                    giftData.ProfessionalTitle = professionaltitle;
                    giftData.OptIn             = b_giftoptin;
                    giftData.Email             = email;

                    giftData.Address = new Address();
                    giftData.Address.BusinessName = businessname;
                    giftData.Address.Address1     = address1;
                    giftData.Address.Address2     = address2;
                    giftData.Address.Address3     = address3;
                    giftData.Address.City         = city;
                    giftData.Address.State        = state;
                    giftData.Address.PostalCode   = postalcode;
                    giftData.Address.Country      = country;
                    giftData.Address.Phone        = phone;
                    //giftData.Address.Fax = fax;
                    //giftData.Address.AltCity = altcity;
                }
                #endregion

                #region set cc data
                CreditCard creditCardData = new CreditCard();
                creditCardData.Price             = f_amountpaid;
                creditCardData.AmountPaid        = f_amountpaid;
                creditCardData.VerifoneRoutingId = verifoneroutingid;

                if (is_comp)
                {
                    creditCardData.PaymentType = "F";
                }
                #endregion

                SubscriptionServiceRequest request = new SubscriptionServiceRequest(memberData, giftData,
                                                                                    creditCardData, publicationcode, keycode, b_giftflag, i_subscriptionlength);
                BaseResponse sub_response = SubOrderInsert.CreateSubscription(request);
                if (sub_response == null || sub_response.TypedResponse == null || sub_response.TypedResponse.Success == false)
                {
                    string msgs = string.Empty;
                    foreach (Message s in sub_response.Messages)
                    {
                        msgs += "[" + s.ToString() + "]";
                    }
                    tbl_AppEventLog logmsg = new tbl_AppEventLog();
                    logmsg.aelAppName     = "HarperSERVICE";
                    logmsg.aelDateCreated = DateTime.Now;
                    logmsg.aelEvent       = "406";
                    logmsg.aelMessage1    = "sub_response messages:" + msgs;
                    logmsg.aelMessage2    = "typed response:" + sub_response.TypedResponse.ToString();
                    logmsg.aelMessage3    = "success:" + sub_response.TypedResponse.Success;
                    logmsg.Save();
                    response_code = 406;
                }
                else
                {
                    member_id = ((SubscriptionServiceResponse)sub_response.TypedResponse).MemberId;
                }
            }
            return(new object[] { response_code, member_id });
        }