Ejemplo n.º 1
0
 public ActionResult ManageGiving2(int id)
 {
     var m = new ManageGivingModel(id);
     m.testing = true;
     var body = ViewExtensions2.RenderPartialViewToString(this, "ManageGiving2", m);
     return Content(body);
 }
Ejemplo n.º 2
0
 public ActionResult ManageGiving(string id, bool? testing)
 {
     if (!id.HasValue())
         return Content("bad link");
     ManageGivingModel m = null;
     var td = TempData["mg"];
     if (td != null)
         m = new ManageGivingModel(td.ToInt(), id.ToInt());
     else
     {
         var guid = id.ToGuid();
         if (guid == null)
             return Content("invalid link");
         var ot = DbUtil.Db.OneTimeLinks.SingleOrDefault(oo => oo.Id == guid.Value);
         if (ot == null)
             return Content("invalid link");
     #if DEBUG2
     #else
         if (ot.Used)
             return Content("link used");
     #endif
         if (ot.Expires.HasValue && ot.Expires < DateTime.Now)
             return Content("link expired");
         var a = ot.Querystring.Split(',');
         m = new ManageGivingModel(a[1].ToInt(), a[0].ToInt());
         ot.Used = true;
         DbUtil.Db.SubmitChanges();
     }
     if (!m.testing)
         m.testing = testing ?? false;
     SetHeaders(m.orgid);
     DbUtil.LogActivity("Manage Giving: {0} ({1})".Fmt(m.Organization.OrganizationName, m.person.Name));
     return View("ManageGiving/Setup", m);
 }
Ejemplo n.º 3
0
 public ActionResult ManageGiving(ManageGivingModel m)
 {
     SetHeaders(m.orgid);
     m.ValidateModel(ModelState);
     if (!ModelState.IsValid)
         return View("ManageGiving/Setup", m);
     try
     {
         m.Update();
     }
     catch (Exception ex)
     {
         ModelState.AddModelError("form", ex.Message);
     }
     if (!ModelState.IsValid)
         return View("ManageGiving/Setup", m);
     TempData["managegiving"] = m;
     return Redirect("/OnlineReg/ConfirmRecurringGiving");
 }
Ejemplo n.º 4
0
        private static void RemoveNonDigitsIfNecessary(ManageGivingModel m)
        {
            bool dorouting = false;
            bool doaccount = m.Account.HasValue() && !m.Account.StartsWith("X");

            if (m.Routing.HasValue() && !m.Routing.StartsWith("X"))
                dorouting = true;

            if (doaccount || dorouting)
            {
                if (doaccount)
                    m.Account = m.Account.GetDigits();
                if (dorouting)
                    m.Routing = m.Routing.GetDigits();
            }
        }
Ejemplo n.º 5
0
        public ActionResult ManageGiving(ManageGivingModel m)
        {
            SetHeaders(m.orgid);
            RemoveNonDigitsIfNecessary(m);
            m.ValidateModel(ModelState);
            if (!ModelState.IsValid)
                return View(m);
            try
            {
                var gateway = OnlineRegModel.GetTransactionGateway();
                if (gateway == "authorizenet")
                {
                    var au = new AuthorizeNet(DbUtil.Db, m.testing);
                    au.AddUpdateCustomerProfile(m.pid,
                        m.Type,
                        m.Cardnumber,
                        m.Expires,
                        m.Cardcode,
                        m.Routing,
                        m.Account);

                }
                else if (gateway == "sage")
                {
                    var sg = new SagePayments(DbUtil.Db, m.testing);
                    sg.storeVault(m.pid,
                        m.Type,
                        m.Cardnumber,
                        m.Expires,
                        m.Cardcode,
                        m.Routing,
                        m.Account,
                        giving: true);
                }
                else
                    throw new Exception("ServiceU not supported");

                var mg = m.person.ManagedGiving();
                if (mg == null)
                {
                    mg = new ManagedGiving();
                    m.person.ManagedGivings.Add(mg);
                }
                mg.SemiEvery = m.SemiEvery;
                mg.Day1 = m.Day1;
                mg.Day2 = m.Day2;
                mg.EveryN = m.EveryN;
                mg.Period = m.Period;
                mg.StartWhen = m.StartWhen;
                mg.StopWhen = m.StopWhen;
                mg.NextDate = mg.FindNextDate(DateTime.Today);

                var pi = m.person.PaymentInfo();
                pi.FirstName = m.firstname.Truncate(50);
                pi.MiddleInitial = m.middleinitial.Truncate(10);
                pi.LastName = m.lastname.Truncate(50);
                pi.Suffix = m.suffix.Truncate(10);
                pi.Address = m.address.Truncate(50);
                pi.City = m.city.Truncate(50);
                pi.State = m.state.Truncate(10);
                pi.Zip = m.zip.Truncate(15);
                pi.Phone = m.phone.Truncate(25);

                var q = from ra in DbUtil.Db.RecurringAmounts
                        where ra.PeopleId == m.pid
                        select ra;
                DbUtil.Db.RecurringAmounts.DeleteAllOnSubmit(q);
                DbUtil.Db.SubmitChanges();
                foreach (var c in m.FundItemsChosen())
                {
                    var ra = new RecurringAmount
                    {
                        PeopleId = m.pid,
                        FundId = c.fundid,
                        Amt = c.amt
                    };
                    DbUtil.Db.RecurringAmounts.InsertOnSubmit(ra);
                }
                DbUtil.Db.SubmitChanges();
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("form", ex.Message);
            }
            if (!ModelState.IsValid)
                return View(m);
            TempData["managegiving"] = m;
            return Redirect("ConfirmRecurringGiving");
        }