protected void btnSumbit_click(object sender, EventArgs e) { try { #region Unable to decode referral id, try finding original referral based on email address if (badReferralId) { try { Referral badRef = new Referral(email_address.Text); if (badRef.id > 0) { referralid = badRef.id; } else { throw new Exception(); } } catch (Exception ex) { logService.LogAppEvent("", @"HarperNET", "Referral", "Unable to link email to referral id (id could not be decoded and email not on file). Using default referrer. Referral id in url: " + Request["ReferralId"] + ", email address entered: " + email_address.Text, ex.Message, ex.StackTrace, "", "Page_Load"); Referral defaultReferral = new Referral(); defaultReferral.keycode = "POTRIAL"; defaultReferral.pubcode = "PO"; ReferralOffer offer = new ReferralOffer(defaultReferral.keycode, defaultReferral.pubcode); defaultReferral.ccmember = false; defaultReferral.datecreated = DateTime.Now; defaultReferral.dateexpires = defaultReferral.datecreated.AddMonths(offer.offerexpiresmonths); defaultReferral.friendemail = email_address.Text; defaultReferral.friendname = first_name.Text + " " + last_name.Text; HarperLINQ.tbl_Customer defaultReferrer = new tbl_Customer(ConfigurationManager.AppSettings["default_referrer_username"], true); defaultReferral.memberid = defaultReferrer.cusID; defaultReferral.subscriptionlength = offer.triallengthinmonths; defaultReferral.Save(); referralid = defaultReferral.id; } } #endregion HarperMembershipService.BaseResponse response = new HarperMembershipService.BaseResponse(); HarperMembershipService.MembershipService webservice = new HarperMembershipService.MembershipService(); #region Get selected region country = ddlCountries.SelectedValue; ISO3166 iso = new ISO3166(country, IdentifierType.Country_Code_Alpha2); string sfgcountrycode = iso.SFGCode; if (txtRegion.Text != "" && txtRegion.Text != null) { region = txtRegion.Text; } else if (txtRegionNotListed.Text != "" && txtRegionNotListed.Text != null) { region = txtRegionNotListed.Text; } else { region = ddlRegion.SelectedValue; } #endregion string erefid = Cryptography.EncryptData(referralid.ToString()); string epwd = Cryptography.EncryptData(txtPassword.Text); #region Redeem the referral response = webservice.RedeemReferral(erefid, first_name.Text, last_name.Text, email_address.Text, sfgcountrycode, address_line_1.Text, address_line_2.Text, city.Text, region, postal.Text, true, txtUserName.Text, epwd); #endregion #region Check for errors if (response == null) { throw new Exception(string.Format("Error redeeming referral id {0}, response from SFG was null.", referralid)); } if (response.Messages != null && response.Messages.Count() > 0) { throw new Exception(response.Messages[0].AhMessage); } #endregion Response.Redirect("~/Referral/RedemptionConfirmation.aspx", false); } catch (Exception ex) { logService.LogAppEvent("", @"HarperNET", "Referral", "Error in btnSumbit_click", ex.Message, ex.StackTrace, "", "btnSubmit_click"); LiteralControl err = new LiteralControl(); err.Text = "<p class=\"error-message\">An error has occurred. Please contact the membership department at <a href=\"mailto:[email protected]\">[email protected]</a></p>"; lblErrorMessage.Controls.Add(err); lblErrorMessage.Visible = true; } }
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 IActionResult RegisterVisit() { Users user = new Users { Id = Int64.Parse(HttpContext.User.FindFirst(ClaimTypes.Actor).Value) }; Patient patient = VisitModel.Visit.Patient; patient.Status = new PatientStatus { Id = Constants.STATUS_ACTIVE }; patient.UpdateStatus(); Encounter encounter = new Encounter { Type = new EncounterType { Id = Constants.ENCOUNTER_VISIT }, Patient = patient, CreatedBy = user }; encounter.Create(IPatientService); Visit visit = VisitModel.Visit; visit.Type = new VisitType { Id = Constants.VISIT_FACILITY }; visit.CreatedBy = user; visit.CreatedOn = DateTime.Now; visit.Save(); Referral referral = VisitModel.Referral; if (!referral.Type.Id.Equals(0)) { referral.Visit = visit; referral.CreatedBy = user; referral.Save(); var seps = new string[] { "," }; string[] doctors = VisitModel.DoctorString.Split(seps, StringSplitOptions.RemoveEmptyEntries); foreach (string doc in doctors) { new ReferralDoctors { Referral = referral, Doctor = new Doctor { Id = Convert.ToInt64(doc) } }.Save(); } } Bills bill = VisitModel.Bill; bill.Visit = visit; bill.CreatedBy = user; bill.Save(); if (VisitModel.Waiver) { bill.Waiver = bill.Amount; bill.WaiverReason = VisitModel.WaiverReason; bill.WaivedBy = user; bill.UpdateWaiver(); bill.Flag = new BillsFlag { Id = 1 }; bill.ProcessedBy = user; bill.UpdateProcess(); } BillsItem item = VisitModel.Item; item.Bill = bill; item.CreatedBy = user; item.Save(); Queues queue = VisitModel.Queue; queue.Bill = bill; queue.CreatedBy = user; queue.Save(); return(LocalRedirect("/registration/search")); }
public IActionResult RegisterVisit() { Users user = new Users { Id = Int64.Parse(HttpContext.User.FindFirst(ClaimTypes.Actor).Value) }; Patient patient = VisitModel.Visit.Patient; patient.Status = new PatientStatus { Id = Constants.STATUS_ACTIVE }; patient.UpdateStatus(); Encounter encounter = new Encounter { Type = new EncounterType { Id = Constants.ENCOUNTER_VISIT }, Patient = patient, CreatedBy = user }; encounter.Create(IPatientService); Visit visit = VisitModel.Visit; visit.Type = new VisitType { Id = Constants.VISIT_FACILITY }; visit.CreatedBy = user; visit.CreatedOn = DateTime.Now; visit.Save(); Referral referral = VisitModel.Referral; if (!referral.Type.Id.Equals(0)) { referral.Visit = visit; referral.CreatedBy = user; referral.Save(); var seps = new string[] { "," }; string[] doctors = VisitModel.DoctorString.Split(seps, StringSplitOptions.RemoveEmptyEntries); foreach (string doc in doctors) { new ReferralDoctors { Referral = referral, Doctor = new Doctor { Id = Convert.ToInt64(doc) } }.Save(); } } Bills bill = VisitModel.Bill; bill.Visit = visit; bill.Department = new Department { Id = Constants.DEPT_REGISTRATION }; bill.CreatedBy = user; bill.Save(); if (VisitModel.Waiver) { bill.Waiver = bill.Amount; bill.WaiverReason = VisitModel.WaiverReason; bill.WaivedBy = user; bill.UpdateWaiver(); bill.Flag = new BillingFlag { Id = Constants.FLAG_CLEARED }; bill.ProcessedBy = user; bill.UpdateProcess(); } BillsItem item = VisitModel.Item; item.Bill = bill; item.CreatedBy = user; item.Save(); //INVOICE/FLAG/CLEAR if (VisitModel.Waiver) { Invoice invoice = new Invoice { Patient = patient, Flag = new BillingFlag { Id = Constants.FLAG_CLEARED }, CreatedBy = user, Notes = "Waivered Bill" }; invoice.Save(); InvoiceDetails details = new InvoiceDetails { Invoice = invoice, Item = item, CreatedBy = user, Notes = "Waivered Item" }; details.Save(); InvoicePayment payment = new InvoicePayment { Invoice = invoice, CreatedBy = user, Notes = "Waiver Payment" }; payment.Save(); InvoicePaymentDetails pd = new InvoicePaymentDetails { Mode = new BillingMode { Id = Constants.MODE_WAIVER }, Reference = "CASHIER-00", Amount = bill.Amount, Notes = "Waiver Payment" }; pd.Save(); } Queues queue = VisitModel.Queue; queue.Visit = visit; queue.Item = item; queue.CreatedBy = user; queue.Save(); return(LocalRedirect("/registration/search")); }