Beispiel #1
0
        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));
        }