Beispiel #1
0
        private ActionResult RouteSpecialLogin(OnlineRegModel m)
        {
            if (Util.UserPeopleId == null)
            {
                throw new Exception("Util.UserPeopleId is null on login");
            }

            var link = RouteExistingRegistration(m);

            if (link.HasValue())
            {
                return(Redirect(link));
            }

            m.CreateAnonymousList();
            m.UserPeopleId = Util.UserPeopleId;

            if (m.OnlineGiving())
            {
                m.Log("Login OnlineGiving");
                return(RegisterFamilyMember(Util.UserPeopleId.Value, m));
            }

            link = RouteManageGivingSubscriptionsPledgeVolunteer(m);
            if (link.HasValue())
            {
                return(Content(link)); // this will be used for a redirect in javascript
            }
            return(null);
        }
        public ActionResult FindRecord(int id, OnlineRegModel m)
        {
            // Anonymous person clicks submit to find their record
            var msg = m.CheckExpiredOrCompleted();

            if (msg.HasValue())
            {
                return(PageMessage(msg));
            }

            fromMethod = "FindRecord";
            m.HistoryAdd("FindRecord id=" + id);
            if (id >= m.List.Count)
            {
                return(FlowList(m));
            }

            var p = m.GetFreshFindInfo(id);

            if (p.NeedsToChooseClass())
            {
                p.RegistrantProblem = "Please Make Selection Above";
                return(FlowList(m));
            }
            p.ValidateModelForFind(ModelState, id);
            if (!ModelState.IsValid)
            {
                return(FlowList(m));
            }

            if (p.AnonymousReRegistrant())
            {
                return(View("Continue/ConfirmReregister", m)); // send email with link to reg-register
            }

            if (p.IsSpecialReg())
            {
                p.QuestionsOK = true;
            }
            else if (p.RegistrationFull())
            {
                m.Log("Closed");
                ModelState.AddModelError(m.GetNameFor(mm => mm.List[id].DateOfBirth), "Sorry, but registration is closed.");
            }

            p.FillPriorInfo();
            p.SetSpecialFee();

            if (!ModelState.IsValid || p.count == 1)
            {
                return(FlowList(m));
            }

            // form is ok but not found, so show AddressGenderMarital Form
            p.PrepareToAddNewPerson(ModelState, id);
            p.Found = false;
            return(FlowList(m));
        }
Beispiel #3
0
 public ActionResult NoLogin(OnlineRegModel m)
 {
     fromMethod = "NoLogin";
     // Clicked the register without logging in link
     m.nologin = true;
     m.CreateAnonymousList();
     m.Log("NoLogin");
     return(FlowList(m));
 }
Beispiel #4
0
 public ActionResult AskDonation(OnlineRegModel m)
 {
     m.HistoryAdd("AskDonation");
     if (m.List.Count == 0)
     {
         m.Log("AskDonationError NoRegistrants");
         return(Content("Can't find any registrants"));
     }
     m.RemoveLastRegistrantIfEmpty();
     SetHeaders(m);
     return(View("Other/AskDonation", m));
 }
Beispiel #5
0
        private string RouteExistingRegistration(OnlineRegModel m, int?pid = null)
        {
            var existingRegistration = m.GetExistingRegistration(pid ?? Util.UserPeopleId ?? 0);

            if (existingRegistration == null)
            {
                return(null);
            }
            m.Log("Existing");
            TempData["PeopleId"] = existingRegistration.UserPeopleId;
            return("/OnlineReg/Existing/" + existingRegistration.DatumId);
        }
Beispiel #6
0
 private ActionResult FlowList(OnlineRegModel m)
 {
     try
     {
         m.UpdateDatum();
         m.Log(fromMethod);
         var content = ViewExtensions2.RenderPartialViewToString2(this, "Flow2/List", m);
         return(Content(content));
     }
     catch (Exception ex)
     {
         return(ErrorResult(m, ex, "In " + fromMethod + "<br>" + ex.Message));
     }
 }
Beispiel #7
0
        private string RouteExistingRegistration(OnlineRegModel m, int?pid = null)
        {
            if (m.SupportMissionTrip)
            {
                return(null);
            }
            var existingRegistration = m.GetExistingRegistration(pid ?? CurrentDatabase.UserPeopleId ?? 0);

            if (existingRegistration == null)
            {
                return(null);
            }
            m.Log("Existing");
            Util.TempPeopleId = existingRegistration.UserPeopleId;
            return("/OnlineReg/Existing/" + existingRegistration.DatumId);
        }
Beispiel #8
0
        private ActionResult ErrorResult(OnlineRegModel m, Exception ex, string errorDisplay)
        {
            // ReSharper disable once EmptyGeneralCatchClause
            try
            {
                m.UpdateDatum();
            }
            catch
            {
            }

            var ex2 = new Exception($"{errorDisplay}, {DbUtil.Db.ServerLink("/OnlineReg/RegPeople/") + m.DatumId}", ex);

            ErrorSignal.FromCurrentContext().Raise(ex2);
            m.Log(ex2.Message);
            TempData["error"] = errorDisplay;
            TempData["stack"] = ex.StackTrace;
            return(Content("/Error/"));
        }
Beispiel #9
0
        private ActionResult RouteRegistration(OnlineRegModel m, int pid, bool?showfamily)
        {
            if (pid == 0)
            {
                return(View(m));
            }
#if DEBUG
            m.DebugCleanUp();
#endif

            var link = RouteExistingRegistration(m, pid);
            if (link.HasValue())
            {
                return(Redirect(link));
            }

            OnlineRegPersonModel p = null;
            if (showfamily != true)
            {
                // No need to pick family, so prepare first registrant ready to answer questions
                p = m.LoadExistingPerson(pid, 0);
                if (p == null)
                {
                    throw new Exception($"No person found with PeopleId = {pid}");
                }

                p.ValidateModelForFind(ModelState, 0);
                if (m.masterorg == null)
                {
                    if (m.List.Count == 0)
                    {
                        m.List.Add(p);
                    }
                    else
                    {
                        m.List[0] = p;
                    }
                }
            }
            if (!ModelState.IsValid)
            {
                m.Log("CannotProceed");
                return(View(m));
            }

            link = RouteManageGivingSubscriptionsPledgeVolunteer(m);
            if (link.HasValue())
            {
                if (m.ManageGiving()) // use Direct ActionResult instead of redirect
                {
                    return(ManageGiving(m.Orgid.ToString(), m.testing));
                }
                else if (m.RegisterLinkMaster())
                {
                    return(Redirect(link));
                }
                else
                {
                    return(Redirect(link));
                }
            }

            // check for forcing show family, master org, or not found
            if (showfamily == true || p.org == null || p.Found != true)
            {
                return(View(m));
            }

            // ready to answer questions, make sure registration is ok to go
            m.Log("Authorized");
            if (!m.SupportMissionTrip)
            {
                p.IsFilled = p.org.RegLimitCount(DbUtil.Db) >= p.org.Limit;
            }
            if (p.IsFilled)
            {
                m.Log("Closed");
                ModelState.AddModelError(m.GetNameFor(mm => mm.List[0].Found), "Sorry, but registration is closed.");
            }

            p.FillPriorInfo();
            p.SetSpecialFee();

            m.HistoryAdd($"index, pid={pid}, !showfamily, p.org, found=true");
            return(View(m));
        }
Beispiel #10
0
        private ActionResult RouteRegistration(OnlineRegModel m, int pid, bool?showfamily)
        {
            if (pid == 0)
            {
                return(View(m));
            }
#if DEBUG
            m.DebugCleanUp();
#endif
            int?GatewayId = MultipleGatewayUtils.GatewayId(CurrentDatabase, m.ProcessType);

            if ((int)GatewayTypes.Pushpay == GatewayId && m.ProcessType == PaymentProcessTypes.OneTimeGiving)
            {
                Session["PaymentProcessType"] = PaymentProcessTypes.OneTimeGiving;
                return(Redirect($"/Pushpay/OneTime/{pid}/{m.Orgid}"));
            }

            if ((int)GatewayTypes.Pushpay == GatewayId && m.ProcessType == PaymentProcessTypes.RecurringGiving)
            {
                Session["PaymentProcessType"] = PaymentProcessTypes.RecurringGiving;
                return(Redirect($"/Pushpay/RecurringManagment/{pid}/{m.Orgid}"));
            }

            var link = RouteExistingRegistration(m, pid);
            if (link.HasValue())
            {
                return(Redirect(link));
            }

            OnlineRegPersonModel p;
            PrepareFirstRegistrant(ref m, pid, showfamily, out p);
            if (p != null)
            {
                p.pledgeFundId = m.pledgeFundId;
            }

            if (!ModelState.IsValid)
            {
                m.Log("CannotProceed");
                return(View(m));
            }

            link = RouteManageGivingSubscriptionsPledgeVolunteer(m);
            if (link.HasValue())
            {
                if (m.ManageGiving()) // use Direct ActionResult instead of redirect
                {
                    return(ManageGiving(m.Orgid.ToString(), m.testing));
                }
                else if (m.RegisterLinkMaster())
                {
                    return(Redirect(link));
                }
                else
                {
                    return(Redirect(link));
                }
            }

            // check for forcing show family, master org, or not found
            if (showfamily == true || p.org == null || p.Found != true)
            {
                return(View(m));
            }

            // ready to answer questions, make sure registration is ok to go
            m.Log("Authorized");
            if (!m.SupportMissionTrip)
            {
                p.IsFilled = p.org.RegLimitCount(CurrentDatabase) >= p.org.Limit;
            }
            if (p.IsFilled)
            {
                m.Log("Closed");
                ModelState.AddModelError(m.GetNameFor(mm => mm.List[0].Found), "Sorry, but registration is closed.");
            }

            p.FillPriorInfo();
            p.SetSpecialFee();

            m.HistoryAdd($"index, pid={pid}, !showfamily, p.org, found=true");
            return(View(m));
        }