Пример #1
0
        public ActionResult BuyBitcoin(string cardId)
        {
            if (string.IsNullOrEmpty(cardId))
            {
                return(RedirectToAction("Index", "Transfer"));
            }

            //Get the card for the passed cardId
            Card card;

            using (var db = new DiamondCircle_dbEntities())
            {
                card = db.Cards.Where(c => c.CardId == cardId).FirstOrDefault();
                if (card == null)
                {
                    return(RedirectToAction("Index", "Transfer"));
                }
            }

            //Check whether there is a credit card for that card set up
            if (!card.CreditCardId.HasValue)
            {
                //Redirect to set up a credit card
                return(RedirectToAction("Create", "CreditCard", new { CardId = cardId, redirectUrl = "BuyBitcoin,BuyBitcoin" }));
            }

            var model = new BuyBitcoinViewModel()
            {
                CardId = cardId, CreditCardMask = CardStatus.MaskCardNumber(card.CreditCard.CardNumber)
            };

            return(View());
        }
Пример #2
0
        public ActionResult BuyBitcoin(BuyBitcoinViewModel model)
        {
            //Get a quote of the fiat price for the given bitcoin amount
            var exchange = new DCPayment.Exchange();

            if (ModelState.IsValid)
            {
                var spot = exchange.GetSpotPrice(model.Currency, model.BitcoinAmount, 1);
                model.Price = spot.Price;

                return(RedirectToAction("ConfirmBuyBitcoin", model));
            }

            return(View(model));
        }
Пример #3
0
        public ActionResult BuyBitcoin(BuyBitcoinViewModel model)
        {
            string     publicKey;
            CreditCard creditCard;

            using (var db = new DiamondCircle_dbEntities())
            {
                //Get the card
                var card = db.Cards.Where(c => c.CardId == model.CardId).First();
                publicKey = card.PublicKey;

                //Get the creditCard for this card
                creditCard = db.CreditCards.Where(c => c.CreditCardId == card.CreditCardId).First();
            }
            using (var atmClient = new DC.AtmService.AtmClient())
            {
                //TODO: Deduct credit card by converted fiat amount
                // var result = PinPaymentsCharge(creditCard)
                atmClient.CreateOrder(publicKey, model.Price);
            }
            return(View());
        }
Пример #4
0
        public ActionResult ConfirmBuyBitcoin_Buy(BuyBitcoinViewModel model)
        {
            string     publicKey;
            CreditCard creditCard;

            using (var db = new DiamondCircle_dbEntities())
            {
                var customerId = Helpers.GetLoggedInCustomerId(db);
                //Get the card
                var card = db.Cards.Where(c => (c.CardId == model.CardId && c.CustomerID == customerId)).First();
                publicKey = card.PublicKey;

                //Get the creditCard for this card
                creditCard = db.CreditCards.Where(c => c.CreditCardId == card.CreditCardId).First();
            }
            //TODO: Change to service reference when published
            //using (var atmClient = new DC.AtmService.AtmClient())
            var atmClient = new DCPayment.Card();

            {
                atmClient.PayForAndBuyBitcoin(model.CardId, model.BitcoinAmount, model.Currency, model.Price, 1);
            }
            return(View());
        }
Пример #5
0
 public ActionResult ConfirmBuyBitcoin_Get(BuyBitcoinViewModel model)
 {
     //Show buy summary
     return(View(model));
 }
Пример #6
0
 public ActionResult BuyBitcoinSuccessful_Post(BuyBitcoinViewModel model)
 {
     //Redirect to Card list summary page
     return(RedirectToAction("Index", "Transfer"));
 }
Пример #7
0
 public ActionResult BuyBitcoinSuccessful_Get(BuyBitcoinViewModel model)
 {
     //Display purchase summary
     return(View());
 }