public ActionResult Index(int?id, int?year)
        {
            var m = new ContributionSearchModel();

            if (id.HasValue)
            {
                m.PeopleId = id;
            }
            if (year.HasValue)
            {
                m.Year = year.Value;
            }
            return(View(m));
        }
Exemple #2
0
        public HttpResponseMessage ReverseContribution(int id, string source)
        {
            try
            {
                var c = CurrentDatabase.Contributions.SingleOrDefault(ic => ic.ContributionId == id);
                if (c == null)
                {
                    throw new Exception($"Contribution not found: {id}");
                }

                if (c.ContributionStatusId == ContributionStatusCode.Reversed)
                {
                    throw new Exception($"Contribution already reversed: {id}");
                }

                var r = ContributionSearchModel.CreateContributionRecord(c);
                c.ContributionStatusId = ContributionStatusCode.Reversed;
                r.ContributionTypeId   = ContributionTypeCode.Reversed;
                r.ContributionDesc     = "Reversed Contribution from API: Id = " + c.ContributionId;
                CurrentDatabase.Contributions.InsertOnSubmit(r);
                CurrentDatabase.SubmitChanges();
                var result = new ReverseReturn();
                result.ContributionId = r.ContributionId;
                if (r.PeopleId.HasValue)
                {
                    result.PeopleId = r.PeopleId.Value;
                }

                result.Source = $"API Reverse (source={source})";

                var oid = CmsData.API.APIContribution.OneTimeGiftOrgId(CurrentDatabase);
                CurrentDatabase.SendEmail(Util.TryGetMailAddress(CurrentDatabase.StaffEmailForOrg(oid ?? 0)),
                                          $"API Contribution Reversal {source}",
                                          $@"<table>
<tr><td>Name</td><td>{c.Person?.Name ?? "unknown"}</td></tr>
<tr><td>ContributionId</td><td>{c.ContributionId}</td></tr>
<tr><td>Amount</td><td>{c.ContributionAmount:N2}</td></tr>
<tr><td>Date</td><td>{DateTime.Now.FormatDateTm()}</td></tr>
</table>", Util.EmailAddressListFromString(CurrentDatabase.StaffEmailForOrg(oid ?? 0)));
                DbUtil.LogActivity("API Reversal for " + c.ContributionId);
                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { Error = ex.Message }));
            }
        }
 public ActionResult Results(ContributionSearchModel m)
 {
     return(View(m));
 }