示例#1
0
        public ActionResult Donate(DonateFormViewModel model)
        {
            var fundraiser = _fundraiserRepository.FindById(model.FundraiserId);
            var campaign   = _campaignRepository.FindById(fundraiser.CampaignId);

            if (model.DonationAmount > 0)
            {
                var chargeService = new StripeChargeService();
                var charge        = chargeService.Create(new StripeChargeCreateOptions()
                {
                    Amount      = model.DonationAmount * 100,
                    Currency    = "usd",
                    Description = fundraiser.Name,
                    SourceTokenOrExistingSourceId = model.StripeToken
                });
                string userid = null;
                if (User.Identity.IsAuthenticated)
                {
                    userid = User.Identity.GetUserId();
                }
                _donationRepository.Create(campaign, fundraiser, DonationStatus.Completed, model.DonationAmount, "usd", model.DonationAmount, userid, model.DonorDisplayName, charge.Id);
            }

            var fundraiserViewModel = AutoMapper.Mapper.Map <Fundraiser, FundraiserFormViewModel>(fundraiser);

            return(View("Thanks", fundraiserViewModel));
        }
        public ActionResult Donate(DonateFormViewModel model)
        {
            Donate request = new Donate()
            {
                DonationAmount   = model.DonationAmount,
                FundraiserId     = model.FundraiserId,
                DonorDisplayName = model.DonorDisplayName,
                StripeToken      = model.StripeToken
            };

            request.UserId = User.Identity.IsAuthenticated ? User.Identity.GetUserId() : string.Empty;
            bool success = _mediator.Send(request).Result;

            var fundraiserViewModel = new FundraiserFormViewModel()
            {
                Name = "Need to get Fundraiser name?" // todo
            };

            // AutoMapper.Mapper.Map<Fundraiser, FundraiserFormViewModel>(fundraiser);
            return(View("Thanks", fundraiserViewModel));
        }