public async Task <ActionResult> Registration(int DatumId) { OnlineRegModel m = new OnlineRegModel(CurrentDatabase); decimal? Amount = 0; string mobile = string.Empty; string fundName = string.Empty; RegistrationDatum datum = CurrentDatabase.RegistrationDatas.SingleOrDefault(d => d.Id == DatumId); if (datum != null) { m = Util.DeSerialize <OnlineRegModel>(datum.Data); Amount = m.PayAmount() + (m.donation ?? 0); mobile = CurrentDatabase.People.SingleOrDefault(p => p.PeopleId == m.UserPeopleId)?.CellPhone; fundName = await _resolver.GetOrgFund(m.List.FirstOrDefault().setting.PushpayFundName); //Needs to redirect in case cupons are enable. } else { ViewBag.Message = "Something went wrong"; CurrentDatabase.LogActivity($"No datum founded with id: {DatumId}"); return(View("~/Views/Shared/PageError.cshtml")); } return(Redirect($"{_givingLink}?ru={_merchantHandle}&sr=dat_{DatumId}&rcv=false&r=no&up={mobile}&a={Amount}&fnd={fundName}&al=true&fndv=lock")); }
public ActionResult CompleteRegistration(OnlineRegModel m) { if (m.AskDonation() && !m.donor.HasValue && m.donation > 0) { SetHeaders(m); ModelState.AddModelError("donation", "Please indicate a donor or clear the donation amount"); return(View("AskDonation", m)); } if (m.List.Count == 0) { return(Content("Can't find any registrants")); } RemmoveLastRegistrantIfEmpty(m); var d = new ExtraDatum { Stamp = Util.Now }; d.Data = Util.Serialize <OnlineRegModel>(m); DbUtil.Db.ExtraDatas.InsertOnSubmit(d); DbUtil.Db.SubmitChanges(); DbUtil.LogActivity("Online Registration: {0} ({1})".Fmt(m.Header, d.Id)); if (m.PayAmount() == 0 && (m.donation ?? 0) == 0 && !m.Terms.HasValue()) { return(RedirectToAction("Confirm", new { id = d.Id, TransactionID = "zero due", })); } var terms = Util.PickFirst(m.Terms, ""); if (terms.HasValue()) { ViewData["Terms"] = terms; } SetHeaders(m); if (m.PayAmount() == 0 && m.Terms.HasValue()) { return(View("Terms", new PaymentModel { Terms = m.Terms, _URL = m.URL, _timeout = INT_timeout, PostbackURL = Util.ServerLink("/OnlineReg/Confirm/" + d.Id), })); } ViewBag.timeout = INT_timeout; ViewBag.Url = m.URL; var om = DbUtil.Db.OrganizationMembers.SingleOrDefault( mm => mm.OrganizationId == m.orgid && mm.PeopleId == m.List[0].PeopleId); m.ParseSettings(); if (om != null && m.settings[m.orgid.Value].AllowReRegister == false) { return(Content("You are already registered it appears")); } var pf = PaymentForm.CreatePaymentForm(m); pf.DatumId = d.Id; pf.FormId = Guid.NewGuid(); if (OnlineRegModel.GetTransactionGateway() == "serviceu") { return(View("Payment", pf)); } return(View("ProcessPayment", pf)); }
public ActionResult CompleteRegistration(OnlineRegModel m) { m.History.Add("CompleteRegistration"); if (m.org != null && m.org.RegistrationTypeId == RegistrationTypeCode.SpecialJavascript) { SpecialRegModel.ParseResults(m.Orgid ?? 0, m.List[0].PeopleId ?? 0, Request.Form); return(View("SpecialRegistrationResults")); } if (m.AskDonation() && !m.donor.HasValue && m.donation > 0) { SetHeaders(m); ModelState.AddModelError("donation", "Please indicate a donor or clear the donation amount"); return(View("AskDonation", m)); } if (m.List.Count == 0) { return(Content("Can't find any registrants")); } RemoveLastRegistrantIfEmpty(m); m.UpdateDatum(); DbUtil.LogActivity("Online Registration: {0} ({1})".Fmt(m.Header, m.DatumId)); if (m.PayAmount() == 0 && (m.donation ?? 0) == 0 && !m.Terms.HasValue()) { return(RedirectToAction("Confirm", new { id = m.DatumId, TransactionID = "zero due", })); } var terms = Util.PickFirst(m.Terms, ""); if (terms.HasValue()) { ViewData["Terms"] = terms; } SetHeaders(m); if (m.PayAmount() == 0 && m.Terms.HasValue()) { return(View("Terms", new PaymentModel { Terms = m.Terms, _URL = m.URL, PostbackURL = DbUtil.Db.ServerLink("/OnlineReg/Confirm/" + m.DatumId), _timeout = m.TimeOut })); } var om = DbUtil.Db.OrganizationMembers.SingleOrDefault( mm => mm.OrganizationId == m.Orgid && mm.PeopleId == m.List[0].PeopleId); m.ParseSettings(); if (om != null && m.settings[om.OrganizationId].AllowReRegister == false && !m.SupportMissionTrip) { return(Content("You are already registered it appears")); } var pf = PaymentForm.CreatePaymentForm(m); if (OnlineRegModel.GetTransactionGateway() == "serviceu") { return(View("Payment/ServiceU", pf)); } ModelState.Clear(); return(View("Payment/Process", pf)); }
public ActionResult Index(int?id, bool?testing, string email, bool?login, string registertag, bool?showfamily, int?goerid, int?gsid, string source, int?pledgeFund) { Response.NoCache(); var m = new OnlineRegModel(Request, CurrentDatabase, id, testing, email, login, source); var isMissionTrip = (m.org?.IsMissionTrip).GetValueOrDefault(); if (isMissionTrip) { m.ProcessType = PaymentProcessTypes.OnlineRegistration; } else { AssignPaymentProcessType(ref m); } if (pledgeFund != null) { m.pledgeFundId = pledgeFund.Value; } SetHeaders(m); int?GatewayId = MultipleGatewayUtils.GatewayId(CurrentDatabase, m.ProcessType); var gatewayRequired = (m.PayAmount() > 0 || m.ProcessType == PaymentProcessTypes.OneTimeGiving || m.ProcessType == PaymentProcessTypes.RecurringGiving); if (GatewayId.IsNull() && gatewayRequired) { return(View("OnePageGiving/NotConfigured")); } if ((int)GatewayTypes.Pushpay == GatewayId && string.IsNullOrEmpty(MultipleGatewayUtils.Setting(CurrentDatabase, "PushpayMerchant", "", (int)m.ProcessType))) { ViewBag.Header = m.Header; ViewBag.Instructions = m.Instructions; return(View("OnePageGiving/NotConfigured")); } if (m.ManageGiving()) { Session[$"Campus-{m.Orgid}"] = m.Campus = Request.QueryString["campus"]; Session["DefaultFunds"] = Request.QueryString["funds"]; m.DefaultFunds = Session["DefaultFunds"]?.ToString(); } if (isMissionTrip) { if (gsid != null || goerid != null) { m.PrepareMissionTrip(gsid, goerid); } } var pid = m.CheckRegisterLink(registertag); if (m.NotActive()) { return(View("OnePageGiving/NotActive", m)); } if (m.MissionTripSelfSupportPaylink.HasValue() && m.GoerId > 0) { return(Redirect(m.MissionTripSelfSupportPaylink)); } return(RouteRegistration(m, pid, showfamily)); }