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)); }
public IActionResult CheckStatus(int id) { OrderAjaxModel result = new OrderAjaxModel(); Order order = _db.Orders.SingleOrDefault(o => o.Id == id); if (order != null) { result.IsSuccess = true; result.IsPaymentReceived = order.IsPaymentReceived; result.Id = order.Id; result.Price = order.Price; result.TargetWallet = order.TargetWallet; result.TokensAmount = order.TokensAmount; result.CurrencyCode = order.CurrencyCode; } else { result.IsSuccess = false; result.Errors.Add("Requested order was not found"); } return(new JsonResult(result)); }