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)); }
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)); }