public async Task <ActionResult <string> > CreateAddress(string currency) { try { var apiKey = (ApiKey)RouteData.Values[Requests.KEY_PASS_DATA_API_KEY_MODEL]; var checkCurrency = CheckCurrency(currency, apiKey); if (!string.IsNullOrEmpty(checkCurrency)) { return(checkCurrency); } if (!apiKey.Permissions.Contains(Permissions.CREATED_ADDRESSES)) { return(CreateDataError(MessageError.CREATE_TRANSACION_NOT_PERMISSION)); } var userModel = (User)RouteData.Values[Requests.KEY_PASS_DATA_USER_MODEL]; var walletBusiness = new WalletBusiness.WalletBusiness(VakapayRepositoryFactory); var wallet = walletBusiness.FindByUserAndNetwork(userModel.Id, currency); if (wallet == null) { return(CreateDataError(MessageError.CREATE_ADDRESS_FAIL)); } var result = await walletBusiness.CreateAddressAsync(wallet); if (result.Status != Status.STATUS_SUCCESS) { return(CreateDataError(MessageError.CREATE_ADDRESS_FAIL)); } BlockchainAddress blockChainAddress; switch (currency) { case CryptoCurrency.BTC: var bitCoinAddressRepository = new BitcoinAddressRepository(VakapayRepositoryFactory.GetOldConnection()); blockChainAddress = bitCoinAddressRepository.FindByAddress(result.Data); break; case CryptoCurrency.ETH: var ethereumAddressRepository = new EthereumAddressRepository(VakapayRepositoryFactory.GetOldConnection()); blockChainAddress = ethereumAddressRepository.FindById(result.Data); break; case CryptoCurrency.VAKA: var vaKaCoinAccountRepository = new VakacoinAccountRepository(VakapayRepositoryFactory.GetOldConnection()); blockChainAddress = vaKaCoinAccountRepository.FindById(result.Data); break; default: return(CreateDataError(MessageError.CREATE_ADDRESS_FAIL)); } return(blockChainAddress != null ? CreateDataSuccess(JsonConvert.SerializeObject(blockChainAddress)) : CreateDataError(MessageError.CREATE_ADDRESS_FAIL)); } catch (Exception) { return(CreateDataError(MessageError.CREATE_ADDRESS_FAIL)); } }
public string GetAddresses() { try { var queryStringValue = Request.Query; if (!queryStringValue.ContainsKey("offset") || !queryStringValue.ContainsKey("networkName") || !queryStringValue.ContainsKey("limit")) { return(HelpersApi.CreateDataError(MessageApiError.PARAM_INVALID)); } StringValues sort; StringValues filter; StringValues networkName; queryStringValue.TryGetValue(ParseDataKeyApi.KEY_PASS_DATA_GET_OFFSET, out var offset); queryStringValue.TryGetValue(ParseDataKeyApi.KEY_PASS_DATA_GET_LIMIT, out var limit); if (queryStringValue.ContainsKey(ParseDataKeyApi.KEY_PASS_DATA_GET_FILTER)) { queryStringValue.TryGetValue(ParseDataKeyApi.KEY_PASS_DATA_GET_FILTER, out filter); } if (queryStringValue.ContainsKey(ParseDataKeyApi.KEY_PASS_DATA_GET_SORT)) { queryStringValue.TryGetValue(ParseDataKeyApi.KEY_PASS_DATA_GET_SORT, out sort); } queryStringValue.TryGetValue(ParseDataKeyApi.KEY_PASS_DATA_GET_NETWORK, out networkName); //sort = ConvertSortLog(sort); if (!HelpersApi.ValidateCurrency(networkName)) { return(HelpersApi.CreateDataError(MessageApiError.PARAM_INVALID)); } var userModel = (User)RouteData.Values["UserModel"]; var wallet = _walletBusiness.FindByUserAndNetwork(userModel.Id, networkName); int numberData; var listAddresses = _walletBusiness.GetAddressesFull(out numberData, wallet.Id, networkName, Convert.ToInt32(offset), Convert.ToInt32(limit), filter.ToString(), sort); return(new ReturnObject() { Status = Status.STATUS_COMPLETED, Data = new ResultList <BlockchainAddress> { List = listAddresses, Total = numberData }.ToJson() }.ToJson()); } catch (Exception e) { return(new ReturnObject() { Status = Status.STATUS_ERROR, Message = e.Message }.ToJson()); } }