/// <summary> /// Create new wallet on user account. For use, must authorize User /// </summary> /// <param name="currencyCode">Currency code.</param> /// <param name="name">Wallet name</param> /// <param name="walletType">Wallet type: crypto/fiat.</param> /// <returns>Created wallet data.</returns> public WalletItem CreateNewWallet(string currencyCode, string name, WalletType walletType) { RestClient rc = new RestClient(config.ApiDoubleBalancesUrl); NewWalletRequest nw = new NewWalletRequest(currencyCode, walletType.ToString(), name); rc.AddOwnHeaderToRequest(new AutorizeData(config)); rc.SendPOST(nw); return(Tools.TryGetResponse <WalletList>(rc).Balances[0]); }
public async Task <HttpResponseMessage> NewWallet([FromBody] NewWalletRequest newWalletRequest) { if (!ModelState.IsValid) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Campos Incorrectos")); } // Desde el Identity, recupero el Id del usuario int userId = TokenService.GetIdClient(User.Identity as ClaimsIdentity); if (!CoinService.ExisteEnCoinMarketCap(newWalletRequest.NombreMoneda)) { return(Request.CreateResponse(HttpStatusCode.Forbidden, "La moneda debe existir en CoinMarketCap")); } if (newWalletRequest.Balance < 0) { return(Request.CreateResponse(HttpStatusCode.Forbidden, "El balance no puede ser negativo")); } Coin moneda = _coinService.GetCoinByName(newWalletRequest.NombreMoneda); User usuario = _userService.GetUserById(userId); var wallet = await _walletService.AddWallet(moneda, newWalletRequest.Balance, usuario); return(Request.CreateResponse <WalletViewModel>(HttpStatusCode.Created, await _walletService.GetWalletInfo(wallet))); }