Esempio n. 1
0
        public async Task <IActionResult> Create(DonationCreateViewModel vm)
        {
            if (vm == null)
            {
                throw new ArgumentNullException(nameof(vm));
            }
            vm.Donation.DonationDate = DateTimeOffset.Now;
            var donor = await GetDonor();

            vm.Donation.DonorId = donor.Id;
            if (vm.Donation.FundraiserId == Guid.Empty)
            {
                vm.Donation.FundraiserId = vm.FundraiserId;
            }

            var donation = mapper.Map <Models.Donation>(vm.Donation);

            if (ModelState.IsValid)
            {
                donationService.AddDonation(donation);
                await donationService.SaveChangesAsync();

                await fundraiserService.UpdateFundTotalAsync(vm.Donation.FundraiserId, vm.Donation.Amount);

                vm.Donation.Donor = donor;
                await signalHub.Clients.All.SendAsync("NewDonation", vm.Donation);

                return(RedirectToAction("DonateComplete"));
            }
            return(View(vm));
        }
Esempio n. 2
0
        public HttpResponseMessage Post(Donation donation)
        {
            donation.DonationDate  = DateTime.Now.Date;
            donation.ReceiptNumber = GetReceiptNumber();
            var validationError = ValidateDonation(donation);

            if (validationError.Any())
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, validationError));
            }
            _donationRepository.AddDonation(donation);
            return(Request.CreateResponse(HttpStatusCode.Created));
        }