public ActionResult Confess(string guid) { if (string.IsNullOrWhiteSpace(guid)) { return(RedirectToAction("Index")); } var indulgence = _indulgeMeService.GetIndulgenceByGuid(guid); ViewData["cid"] = guid; return(View(indulgence)); }
// // GET: /Indulgence/ public ActionResult Index(string guid) { if (TempData["absolved"] != null || !string.IsNullOrWhiteSpace(Request.QueryString["congratulations"])) { ViewData["ShowBlessing"] = true; } var absolutionViewModel = new IndulgencesViewModel(); absolutionViewModel.Indulgence = _indulgeMeService.GetIndulgenceByGuid(guid); if (absolutionViewModel.Indulgence == null) { return(HttpNotFound("Couldn't find that indulgence")); } if (absolutionViewModel.Indulgence.Sin == null) { return(HttpNotFound("Couldn't find that sin")); } absolutionViewModel.Sin = absolutionViewModel.Indulgence.Sin; absolutionViewModel.Sin.Indulgences = _indulgeMeService.AllIndulgencesForSin(absolutionViewModel.Indulgence.Sin).ToList(); absolutionViewModel.TotalDonationCount = absolutionViewModel.Sin.Indulgences.Count(); absolutionViewModel.TotalDonated = absolutionViewModel.Sin.Indulgences.Sum(a => a.AmountDonated); absolutionViewModel.ImageAlt = string.Format("{0} {1} donated {2:c} to {3} on the {4} of {5:MMMM}, {5:yyyy}", absolutionViewModel.Indulgence.Confession, absolutionViewModel.Indulgence.Name, absolutionViewModel.Indulgence.AmountDonated, absolutionViewModel.Indulgence.CharityName, absolutionViewModel.Indulgence.DateConfessed, TextUtils.DayOfMonth(absolutionViewModel.Indulgence.DateConfessed), absolutionViewModel.Indulgence); return(View(absolutionViewModel)); }
// GET: Sdi public async Task <ActionResult> Return(string guid, int?donationId) { try { if (!donationId.HasValue) { return(RedirectToAction("Index", "Home")); } var config = new ClientConfiguration( ConfigurationManager.AppSettings["JgApiBaseUrl"], ConfigurationManager.AppSettings["JGApiKey"], 1); var client = new JustGivingClient(config); DonationStatus donationStatus = null; try { donationStatus = client.Donation.RetrieveStatus(donationId.Value); } catch { } if ((donationStatus != null && donationStatus.Status == "Accepted") || ConfigurationManager.AppSettings["SkipDonationReferenceCheck"] == "true") { if (donationStatus != null) { _indulgeMeService.Absolve(guid, donationStatus.DonationId, donationStatus.DonationRef, donationStatus.Amount, donationStatus.Reference); } else if (ConfigurationManager.AppSettings["SkipDonationReferenceCheck"] == "true") { _indulgeMeService.Absolve(guid, 1, "1", 10, "not-a-real-donation"); } var indulgence = _indulgeMeService.GetIndulgenceByGuid(guid); _indulgeMeService.GenerateIndulgence(indulgence, System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "fonts"), System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Content")); await _indulgenceEmailer.Send(indulgence, ConfigurationManager.AppSettings["IndulgencePdfRelativePath"]); _indulgeMeService.Tweet(indulgence); TempData["absolved"] = guid; ControllerContext.RequestContext.HttpContext.Cache.Remove("siteInfo"); ControllerContext.RequestContext.HttpContext.Response.RemoveOutputCacheItem(Url.Action("GetLatest", "Api")); ViewData["ShowBlessing"] = true; return(RedirectToAction("Index", "Indulgence", new { guid = guid })); } return(HttpNotFound()); } catch (Exception ex) { _log.Error("unhandled error returning from SDI", ex); return(new ContentResult() { Content = ex.Message + "\r\n" + ex.StackTrace, ContentEncoding = Encoding.UTF8, ContentType = "text/plain" }); } }