Example #1
0
 public Result MakeDropOffDonation(DropOffDonation donation)
 {
     try
     {
         _dBContext.DropOffDonation.Add(donation);
         _dBContext.SaveChanges();
         return(new Result(true));
     }
     catch (Exception ex)
     {
         return(new Result(false, ex.Message));
     }
 }
        public Result MakeDropOffDonation(int userID, DateTime date, string currencyCode)
        {
            var cartItems = _donateAccessor.GetCartItems(userID, currencyCode).Payload;

            var total = cartItems.Sum(x => x.TotalAmount);

            var donationResult = _donateAccessor.MakeDonation(userID, total, "dropoff", currencyCode);

            if (!donationResult.IsSuccess)
            {
                return(new Result(false, donationResult.Message));
            }

            var donation = donationResult.Payload;

            var dropOffDonation = new DropOffDonation
            {
                DonationID   = donation.DonationID,
                DeliveryDate = date
            };

            _donateAccessor.MakeDropOffDonation(dropOffDonation);

            var items = cartItems.Select(x => new DonationItem
            {
                DonationID    = donation.DonationID,
                ItemID        = x.ItemID,
                TotalAmount   = x.TotalAmount,
                NumberOfItems = x.NumItems,
                CurrencyID    = x.CurrencyID
            }).ToList();

            var itemsResult = _donateAccessor.AddDonationItems(items);

            if (itemsResult.IsSuccess)
            {
                _donateAccessor.ClearUserCart(userID);
            }

            SendDropOffDonationConfirmationEmail(userID, items, date.ToLongDateString());
            return(itemsResult);
        }