Exemplo n.º 1
0
        public IActionResult BuyTokens()
        {
            ViewData["ExchangeRates"] = _db.ExchangeRates.ToList();

            BuyTokensAjaxModel model = new BuyTokensAjaxModel();

            model.TokensAmount = 1;

            return(View(model));
        }
Exemplo n.º 2
0
        public IActionResult BuyTokens(BuyTokensAjaxModel model)
        {
            OrderAjaxModel result = new OrderAjaxModel()
            {
                IsSuccess         = true,
                IsPaymentReceived = false
            };

            try {
                if (ModelState.IsValid)
                {
                    var exchangeRate = _db.ExchangeRates.SingleOrDefault(e => e.CurrencyCode == model.CurrencyCode);

                    if (exchangeRate != null)
                    {
                        string targetWallet = !string.IsNullOrEmpty(exchangeRate.Address)
                            ? exchangeRate.Address
                            : GetTargetWallet(model.CurrencyCode);

                        Order order = new Order()
                        {
                            CurrencyCode      = model.CurrencyCode,
                            TokensAmount      = model.TokensAmount,
                            Price             = Decimal.Multiply(exchangeRate.Rate, model.TokensAmount),
                            TargetWallet      = targetWallet,
                            User              = currentUser,
                            IsPaymentReceived = false,
                        };

                        _db.Orders.Add(order);
                        _db.SaveChanges();

                        result.Id           = order.Id;
                        result.Price        = order.Price;
                        result.TargetWallet = order.TargetWallet;
                        result.TokensAmount = order.TokensAmount;
                        result.CurrencyCode = order.CurrencyCode;
                    }
                }
            }
            catch (Exception e) {
                result.IsSuccess = false;
                result.Errors.Add(e.Message);
            }

            return(new JsonResult(result));
        }