Esempio n. 1
0
        /// <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]);
        }
Esempio n. 2
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)));
        }