예제 #1
0
        public ActionResult DonateProcess(StripeModel model)
        {
            try
            {
                model.Description = Dictionary.Donation;
                _stripeService.Charge(model);
                _donationService.CreateDonation(new Donation
                {
                    Currency            = model.LocalisedCurrencyThreeLetters,
                    Customer            = model.StripeBillingName,
                    CustomerEmail       = model.StripeEmail,
                    DonationDescription = model.Description,
                    DonatedOn           = DateTime.Now,
                    DonationAmount      = model.AmountToDonate
                });
                return(RedirectToAction("DonationSuccess"));
            }
            catch (Exception ex)
            {
                _logger.Error($"SupportController => Donate => Donation failed: {ex.Message}");
                ModelState.AddModelError("", ex.Message);
            }

            return(View("Donate", model));
        }
예제 #2
0
        public ActionResult Save(Donation donation, int donorId)
        {
            if (!Session.IsSignedIn())
            {
                return(Json(new { saved = false }));
            }

            if (!donationService.IsValidDonation(donation, out var cause))
            {
                return(Json(new { saved = false, cause = cause }));
            }
            else
            {
                var saved = donationService.CreateDonation(donation);

                return(Json(new { saved }));
            }
        }
예제 #3
0
        public ActionResult ProcessDonation(PurchaseModel purchaseModel)
        {
            try
            {
                var contact = _contactService.Find(purchaseModel.ContactId);

                _donationService.CreateDonation(new Donation
                {
                    Currency            = purchaseModel.Currency,
                    Customer            = purchaseModel.CustomerName,
                    CustomerEmail       = purchaseModel.CustomerEmailAddress,
                    DonationDescription = purchaseModel.Description,
                    DonatedOn           = DateTime.Now,
                    DonationAmount      = purchaseModel.Amount
                }, contact);

                return(Json(new { success = true }));
            }
            catch (Exception ex)
            {
                _logger.Error($"SupportController => ProcessDonation => Error: {ex.GetFullErrorMessage()}");
                return(Json(new { success = false, error = ex.Message }));
            }
        }