public GetMemberResponse Get(string id) { /* 宣告指令的輸出結果 */ var response = new GetMemberResponse(); /* Step1 連接MongoDB伺服器 */ MongoClient client = new MongoClient("mongodb://localhost:27017"); /* Step2 取得MongoDB資料庫(Database)和集合(Collection) */ /* Step2-1 取得ntut資料庫(Database) */ MongoDatabaseBase db = client.GetDatabase("ntut") as MongoDatabaseBase; /* Step2-2 取得members 集合(Collection) */ var colMembers = db.GetCollection <MembersDocument>("members"); /* Step3 取得指定會員的資訊 */ /* Step3-1 設定查詢式 */ var query = Builders <MembersDocument> .Filter.Eq(e => e.uid, id); /* Step3-2 進行查詢的操作,並取得會員資訊 */ var doc = colMembers.Find(query).ToListAsync().Result.FirstOrDefault(); /* Step4 設定指令的輸出結果 */ if (doc != null) { /* Step4-1 當資料庫中存在該會員時,設定Response的data欄位 */ response.data.uid = doc.uid; response.data.name = doc.name; response.data.phone = doc.phone; } else { /* Step4-2 當資料庫中沒有該會員時,設定Response 的ok 欄位與errMsg 欄位 */ response.ok = false; response.errMsg = "沒有此會員"; } return(response); }
public static BaseResponse GetOffer(returntype sfgReturn) { string className = "SFGWrapper.GateKeeperTranslators.GetOffer()"; BaseResponse baseResponse = new BaseResponse(); foreach (var item in sfgReturn.error) { Message ahError = new Message(item.errno, MessageSources.Gatekeeper); foreach (string message in item.errmsg) { ahError.SfgMessages.Add(message); } baseResponse.Messages.Add(ahError); } GetMemberResponse getOfferResponse = new GetMemberResponse(); foreach (RenewalOffer item in GetRenewalOffers(sfgReturn.response.SUB_OFFERS)) { getOfferResponse.RenewalOffers.Add(item); } baseResponse.TypedResponse = getOfferResponse; baseResponse.TypedResponse.Success = sfgReturn.success; baseResponse.TypedResponse.Info = Utilities.GetInfo(sfgReturn.response.INFO); baseResponse.TypedResponse.MemoryUsed = sfgReturn.response.MEMORY_USED; baseResponse.TypedResponse.Protocol = sfgReturn.response.PROTOCOL; baseResponse.TypedResponse.RoundtripTime = sfgReturn.response.ROUNDTRIP_TIME; baseResponse.TypedResponse.Server = sfgReturn.response.SERVER; baseResponse.TypedResponse.TimeElapsed = sfgReturn.response.TIME_ELAPSED; baseResponse.TypedResponse.Version = sfgReturn.response.VERSION; return(baseResponse); }
public static BaseResponse GetMemberByMemberId(returntype sfgReturn) { string className = "SFGWrapper.GateKeeperTranslators.GetMemberByMemberId()"; BaseResponse baseResponse = new BaseResponse(); foreach (var item in sfgReturn.error) { Message ahError = new Message(item.errno, MessageSources.Gatekeeper); foreach (string message in item.errmsg) { ahError.SfgMessages.Add(message); } baseResponse.Messages.Add(ahError); } GetMemberResponse getMemberResponse = new GetMemberResponse(); getMemberResponse.Authenticated = (sfgReturn.response.AUTH == "Y"); getMemberResponse.MemberFound = (sfgReturn.response.CUST_FOUND == "Y"); if (getMemberResponse.MemberFound) { // baseResponse.Messages.Add(new Message("MemberNotFoundException")); getMemberResponse.WebAccountFound = (sfgReturn.response.USER_FOUND == "Y"); getMemberResponse.ShipToAddress = GetAddress(sfgReturn.response.SHIP_TO); getMemberResponse.SubscriptionValidationData = GetSubscriptionValidation(sfgReturn.response); getMemberResponse.MemberData = GetMember(sfgReturn.response.CUSTOMER_INFO); getMemberResponse.MemberData.UserName = sfgReturn.response.USERID; foreach (Subscription sub in GetSubscriptions(sfgReturn.response.ORDER_HISTORY)) { getMemberResponse.MemberData.Subscriptions.Add(sub); } foreach (RenewalOffer item in GetRenewalOffers(sfgReturn.response.SUB_OFFERS)) { getMemberResponse.RenewalOffers.Add(item); } } baseResponse.TypedResponse = getMemberResponse; baseResponse.TypedResponse.Success = sfgReturn.success; baseResponse.TypedResponse.Info = Utilities.GetInfo(sfgReturn.response.INFO); baseResponse.TypedResponse.MemoryUsed = sfgReturn.response.MEMORY_USED; baseResponse.TypedResponse.Protocol = sfgReturn.response.PROTOCOL; baseResponse.TypedResponse.RoundtripTime = sfgReturn.response.ROUNDTRIP_TIME; baseResponse.TypedResponse.Server = sfgReturn.response.SERVER; baseResponse.TypedResponse.TimeElapsed = sfgReturn.response.TIME_ELAPSED; baseResponse.TypedResponse.Version = sfgReturn.response.VERSION; return(baseResponse); }
private bool SyncMembership(string enc_username) { tbl_Customer customer = new tbl_Customer(Cryptography.Decrypt256FromHEX(enc_username), true); GetMemberByMemberIdRequest req = new GetMemberByMemberIdRequest(customer.SfgId.ToString(), false); BaseResponse res = Gatekeeper.GetMemberByMemberId(req); if (res.Messages.Count() <= 0 && res.TypedResponse != null) { GetMemberResponse tres = (GetMemberResponse)res.TypedResponse; if (tres.MemberData != null && tres.MemberData.Subscriptions != null && tres.MemberData.Subscriptions.Count() > 0) { Subscription current = null; foreach (Subscription sub in tres.MemberData.Subscriptions) { if (current == null) { current = sub; } else if ((sub.StatusFlag == "P" || sub.StatusFlag == "O") && !sub.IsDonor) { try { if (DateTime.Parse(sub.ExpireDate).CompareTo(DateTime.Parse(current.ExpireDate)) > 0) { current = sub; } } catch { } } } //update netmembership, with latest from sfg tbl_NetMembership currentmembership = tbl_NetMembership.GetCurrentNetMembership(customer.cusID); if (currentmembership == null) { currentmembership = new tbl_NetMembership(); } currentmembership.cusID = customer.cusID; currentmembership.mtyCode = HarperLINQ.SFG_ProdCode.GetFromExtCode(current.PublicationCode).IntCode; currentmembership.nmbDateCreated = DateTime.Now; currentmembership.nmbDateEnd = DateTime.Parse(current.ExpireDate); currentmembership.nmbDateStart = DateTime.Parse(current.DateEntered); currentmembership.Save(); return(true); } } return(false); }
public static BaseResponse GetMemberByMemberId(returntype sfgReturn) { string className = "SFGWrapper.GateKeeperTranslators.GetMemberByMemberId()"; BaseResponse baseResponse = new BaseResponse(); foreach (var item in sfgReturn.error) { Message ahError = new Message(item.errno, MessageSources.Gatekeeper); foreach (string message in item.errmsg) { ahError.SfgMessages.Add(message); } baseResponse.Messages.Add(ahError); } GetMemberResponse getMemberResponse = new GetMemberResponse(); getMemberResponse.Authenticated = (sfgReturn.response.AUTH == "Y"); getMemberResponse.MemberFound = (sfgReturn.response.CUST_FOUND == "Y"); if (getMemberResponse.MemberFound) { // baseResponse.Messages.Add(new Message("MemberNotFoundException")); getMemberResponse.WebAccountFound = (sfgReturn.response.USER_FOUND == "Y"); getMemberResponse.ShipToAddress = GetAddress(sfgReturn.response.SHIP_TO); getMemberResponse.SubscriptionValidationData = GetSubscriptionValidation(sfgReturn.response); getMemberResponse.MemberData = GetMember(sfgReturn.response.CUSTOMER_INFO); getMemberResponse.MemberData.UserName = sfgReturn.response.USERID; foreach (Subscription sub in GetSubscriptions(sfgReturn.response.ORDER_HISTORY)) { getMemberResponse.MemberData.Subscriptions.Add(sub); } foreach (RenewalOffer item in GetRenewalOffers(sfgReturn.response.SUB_OFFERS)) { getMemberResponse.RenewalOffers.Add(item); } } baseResponse.TypedResponse = getMemberResponse; baseResponse.TypedResponse.Success = sfgReturn.success; baseResponse.TypedResponse.Info = Utilities.GetInfo(sfgReturn.response.INFO); baseResponse.TypedResponse.MemoryUsed = sfgReturn.response.MEMORY_USED; baseResponse.TypedResponse.Protocol = sfgReturn.response.PROTOCOL; baseResponse.TypedResponse.RoundtripTime = sfgReturn.response.ROUNDTRIP_TIME; baseResponse.TypedResponse.Server = sfgReturn.response.SERVER; baseResponse.TypedResponse.TimeElapsed = sfgReturn.response.TIME_ELAPSED; baseResponse.TypedResponse.Version = sfgReturn.response.VERSION; return baseResponse; }
public OfferResponseObject GetOffer(string keycode) { GetOfferRequest request = new GetOfferRequest(keycode, false); OfferResponseObject response = new OfferResponseObject(); BaseResponse base_response = Gatekeeper.GetOffer(request); if (base_response.Messages.Count > 0) { response.ResponseCode = 100; } if (response.ResponseCode == 0) { GetMemberResponse member_response = base_response.TypedResponse as GetMemberResponse; response.RenewalOffers = member_response.RenewalOffers; } return(response); }
public void Arrange() { _teamMemberResponse = new GetMemberResponse { TeamMember = new TeamMember() { Email = "*****@*****.**" } }; _mediator = new Mock <IMediator>(); _configuration = new EmployerApprenticeshipsServiceConfiguration(); _orchestrator = new EmployerTeamOrchestrator(_mediator.Object, _configuration); _mediator.Setup(x => x.SendAsync(It.IsAny <GetMemberRequest>())) .ReturnsAsync(_teamMemberResponse); }
public static GetMemberResponse Unmarshall(UnmarshallerContext context) { GetMemberResponse getMemberResponse = new GetMemberResponse(); getMemberResponse.HttpResponse = context.HttpResponse; getMemberResponse.RequestId = context.StringValue("GetMember.RequestId"); getMemberResponse.LedgerId = context.StringValue("GetMember.LedgerId"); getMemberResponse.MemberId = context.StringValue("GetMember.MemberId"); getMemberResponse.AliUid = context.StringValue("GetMember.AliUid"); getMemberResponse.KeyType = context.StringValue("GetMember.KeyType"); getMemberResponse.PublicKey = context.StringValue("GetMember.PublicKey"); getMemberResponse.Role = context.StringValue("GetMember.Role"); getMemberResponse.State = context.StringValue("GetMember.State"); getMemberResponse.CreateTime = context.LongValue("GetMember.CreateTime"); getMemberResponse.UpdateTime = context.LongValue("GetMember.UpdateTime"); return(getMemberResponse); }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { GetMemberResponse response = new GetMemberResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("Member", targetDepth)) { var unmarshaller = MemberUnmarshaller.Instance; response.Member = unmarshaller.Unmarshall(context); continue; } } return(response); }
public void Arrange() { _teamMemberResponse = new GetMemberResponse { TeamMember = new TeamMember { AccountId = 1, Email = TeamMemberEmail, Role = Role.Owner } }; _mediator = new Mock <IMediator>(); _orchestrator = new EmployerTeamOrchestrator(_mediator.Object, Mock.Of <ICurrentDateTime>()); _mediator.Setup(x => x.SendAsync(It.IsAny <GetMemberRequest>())) .ReturnsAsync(_teamMemberResponse); }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { GetMemberResponse response = new GetMemberResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("accountId", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.AccountId = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("administratorAccountId", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.AdministratorAccountId = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("arn", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Arn = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("email", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Email = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("invitedAt", targetDepth)) { var unmarshaller = DateTimeUnmarshaller.Instance; response.InvitedAt = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("masterAccountId", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.MasterAccountId = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("relationshipStatus", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.RelationshipStatus = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("tags", targetDepth)) { var unmarshaller = new DictionaryUnmarshaller <string, string, StringUnmarshaller, StringUnmarshaller>(StringUnmarshaller.Instance, StringUnmarshaller.Instance); response.Tags = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("updatedAt", targetDepth)) { var unmarshaller = DateTimeUnmarshaller.Instance; response.UpdatedAt = unmarshaller.Unmarshall(context); continue; } } return(response); }
public static BaseResponse GetOffer(returntype sfgReturn) { string className = "SFGWrapper.GateKeeperTranslators.GetOffer()"; BaseResponse baseResponse = new BaseResponse(); foreach (var item in sfgReturn.error) { Message ahError = new Message(item.errno, MessageSources.Gatekeeper); foreach (string message in item.errmsg) { ahError.SfgMessages.Add(message); } baseResponse.Messages.Add(ahError); } GetMemberResponse getOfferResponse = new GetMemberResponse(); foreach (RenewalOffer item in GetRenewalOffers(sfgReturn.response.SUB_OFFERS)) { getOfferResponse.RenewalOffers.Add(item); } baseResponse.TypedResponse = getOfferResponse; baseResponse.TypedResponse.Success = sfgReturn.success; baseResponse.TypedResponse.Info = Utilities.GetInfo(sfgReturn.response.INFO); baseResponse.TypedResponse.MemoryUsed = sfgReturn.response.MEMORY_USED; baseResponse.TypedResponse.Protocol = sfgReturn.response.PROTOCOL; baseResponse.TypedResponse.RoundtripTime = sfgReturn.response.ROUNDTRIP_TIME; baseResponse.TypedResponse.Server = sfgReturn.response.SERVER; baseResponse.TypedResponse.TimeElapsed = sfgReturn.response.TIME_ELAPSED; baseResponse.TypedResponse.Version = sfgReturn.response.VERSION; return baseResponse; }
public void GetReferredMembers() { List <string> referred = new List <string>(); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); referred.Add("*****@*****.**"); MembershipLogic target = new MembershipLogic(); List <string> found = new List <string>(); int notfound = 0; foreach (string referral in referred) { BaseResponse actual = target.GetMemberByUserName(referral); if (actual != null && actual.TypedResponse != null && actual.TypedResponse.Success) { try { GetMemberResponse res = actual.TypedResponse as GetMemberResponse; if (res.MemberFound) { if (res.MemberData != null && res.MemberData.Subscriptions != null && res.MemberData.Subscriptions.Count > 0) { System.Diagnostics.Debug.WriteLine(string.Format("SFG ID {0} Subscription count: {1}", res.MemberData.MemberId, res.MemberData.Subscriptions.Count)); found.Add(string.Format("{0}, {1}, {2}", referral, res.MemberData.MemberId, res.MemberData.Subscriptions.Count)); } else { notfound++; } } else { found.Add(string.Format("{0}, {1}, {2}", referral, string.Empty, null)); notfound++; } } catch { notfound++; } } else { notfound++; } System.Diagnostics.Debug.WriteLine(string.Format("Found: {0}", found.Count)); System.Diagnostics.Debug.WriteLine(string.Format("NOT Found: {0}", notfound)); } }
public BaseResponse CreateReferral(string cusid, string membername, string memberemail, string keycode, string pubcode, string friendname, string friendemailaddress, bool ccmember) { methodName = "CreateReferral"; List <Message> errors = new List <Message>(); Referral referral = new Referral(); try { tbl_Customer member = new tbl_Customer(int.Parse(cusid), false); #region validate input if (member == null) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralInputValidationException", BusinessLogicStrings.memberDoesNotExistError, cusid, "", null)); } if (member.SfgId == null) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralInputValidationException", BusinessLogicStrings.invalidMemberIdError, "", "", null)); } if (string.IsNullOrEmpty(membername)) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralInputValidationException", BusinessLogicStrings.missingMemberNameError, "", "", null)); } if (ccmember && string.IsNullOrEmpty(memberemail)) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralInputValidationException", BusinessLogicStrings.missingMemberEmailError, "", "", null)); } if (string.IsNullOrEmpty(keycode)) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralInputValidationException", BusinessLogicStrings.missingKeycodeError, "", "", null)); } if (string.IsNullOrEmpty(pubcode)) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralInputValidationException", BusinessLogicStrings.missingPubcodeError, "", "", null)); } if (string.IsNullOrEmpty(friendname)) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralInputValidationException", BusinessLogicStrings.missingFriendNameError, "", "", null)); } if (string.IsNullOrEmpty(friendemailaddress)) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralInputValidationException", BusinessLogicStrings.missingFriendEmailError, "", "", null)); } #endregion #region enforce business rules tbl_Customer friend = new tbl_Customer(friendemailaddress, false); try { Referral existing_referral = new Referral(friendemailaddress); if (memberemail == friendemailaddress) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralBusinessRuleException", BusinessLogicStrings.cannotReferSelfError, "", "", null)); } else if (friend.cusID > 0) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralBusinessRuleException", BusinessLogicStrings.existingMemberError, "", "", null)); } else if (existing_referral.dateredeemed == null) { if (existing_referral.id > 0 && existing_referral.dateexpires.CompareTo(DateTime.Now) >= 0) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralBusinessRuleException", BusinessLogicStrings.existingReferralError, "", "", null)); } } if (errors.Count <= 0) { GetMemberResponse checkFriend = (GetMemberByUserName(friendemailaddress).TypedResponse as GetMemberResponse); if (checkFriend != null && (checkFriend.MemberFound || checkFriend.WebAccountFound)) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralBusinessRuleException", BusinessLogicStrings.freindEmailInUseSFGError, "", "", null)); } } } catch (HarperLINQ.DataLoadException dle) { errors.Add(new Message(MessageSources.AndrewHarper, 0, "CreateReferralBusinessRuleException", BusinessLogicStrings.freindEmailInUseAHError, "", "", null)); } if (errors.Count() > 0) { string errstring = string.Empty; foreach (Message msg in errors) { string sfgmessages = string.Empty; if (msg.SfgMessages != null) { foreach (string sfgmsg in msg.SfgMessages) { sfgmessages += string.Format("SFGMessage: {0}", sfgmsg); } } errstring += string.Format("AhMessage: {0}|| {1}", new object[] { msg.AhMessage, sfgmessages }); } throw new Exception(string.Format("Error creating referral: [{0}]", errstring)); } #endregion ReferralOffer offer = new ReferralOffer(keycode, pubcode); #region save referral referral = new Referral(int.Parse(cusid), membername, memberemail, keycode, pubcode, friendname, friendemailaddress, ccmember, offer.triallengthinmonths, offer.offerexpiresmonths); referral.Save(); #endregion #region send email //create mailer and sent mail Mailer mailer = new Mailer(); string ccEmail = memberemail; if (!ccmember) { ccEmail = string.Empty; } mailer.SendEmail(ConfigurationManager.AppSettings["mailserviceuser"], ConfigurationManager.AppSettings["mailservicepwd"], string.Format("Membership Invitation from {0}", membername), ConfigurationManager.AppSettings["referemailfrom"], friendemailaddress, ccEmail, string.Empty, referral.GetReferralEmailBody(), true, ConfigurationManager.AppSettings["smtpserver"]); #endregion } catch (Exception ex) { LogMethodError(methodName, ex); } if (baseResponse != null && baseResponse.Messages != null) { foreach (Message error in errors) { baseResponse.Messages.Add(error); } } if (baseResponse.Messages.Count() <= 0 && referral != null && referral.id >= 0) { #region create typed response baseResponse.TypedResponse = new ReferralResponse(); baseResponse.TypedResponse.Success = true; (baseResponse.TypedResponse as ReferralResponse).referralid = referral.id; #endregion } else { baseResponse.TypedResponse = new ReferralResponse(); baseResponse.TypedResponse.Success = false; } return(baseResponse); }
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); }