示例#1
0
        public async System.Threading.Tasks.Task <List <WalletDTO> > GetBitmexTransactions(int userId)
        {
            var keyList = await _keyRepo.GetKeysFromNameAsync("BitMEX", userId);

            var walletHistory = new List <Wallet>();

            foreach (ExchangeKey key in keyList)
            {
                BitMEXApi bitMEXApi = new BitMEXApi(key.Key, key.Secret);

                string temp = bitMEXApi.GetWalletHistory();

                var walletHistoryTemp = JsonConvert.DeserializeObject <List <BitMEXWalletHistory> >(temp);

                foreach (BitMEXWalletHistory transaction in walletHistoryTemp)
                {
                    Wallet tempTransaction = ConvertBitmexTransaction(transaction, key.ExchangeKeyId);

                    if (!await WalletHistoryExists(tempTransaction.ExchangeTransactionId))
                    {
                        await _genericRepo.AddAsync(tempTransaction);

                        walletHistory.Add(tempTransaction);
                    }
                }
            }

            var walletHistoryDTO = new List <WalletDTO>();

            foreach (Wallet transaction in walletHistory)
            {
                walletHistoryDTO.Add(ConvertTransaction(transaction));
            }
            return(walletHistoryDTO);
        }
        public async Task <List <ExchangeKeyDTO> > GetExchangeKeys(string name, int userId)
        {
            var keyList = new List <ExchangeKey>();

            if (name == null)
            {
                keyList = await _keyRepo.GetKeysFromUserIdAsync(userId);
            }
            else
            {
                keyList = await _keyRepo.GetKeysFromNameAsync(name, userId);
            }
            var keyDTOList = new List <ExchangeKeyDTO>();

            foreach (ExchangeKey key in keyList)
            {
                keyDTOList.Add(ConvertExchangeKey(key));
            }

            return(keyDTOList);
        }
示例#3
0
        //Get all orders from all exchanges from a given user
        public async Task <List <Order> > GetAllOrders(int userId)
        {
            DateTime time = DateTime.Now;

            time = time.AddDays(-1);

            var portfolio = await _portfolioRepo.GetDefaultPortfolioAsync(userId);

            int portfolioId = portfolio.PortfolioId;

            var BitMEXKey = await _keyRepo.GetKeysFromNameAsync("BitMEX", userId);

            var BinanceKey = await _keyRepo.GetKeysFromNameAsync("Binance", userId);

            var orderList = new List <Order>();

            foreach (ExchangeKey key in BitMEXKey)
            {
                orderList.AddRange(await GetBitMEXOrdersFromUserId(userId, portfolioId));
                key.LastRefresh = time;

                foreach (Order order in orderList)
                {
                    order.ExchangeKeyId = key.ExchangeKeyId;
                }

                await _genericRepo.UpdateAsync(key);
            }
            foreach (ExchangeKey key in BinanceKey)
            {
                orderList.AddRange(await GetBinanceOrdersFromUserId(userId));
            }

            var savedOrders = await _orderRepo.SaveOrdersAsync(orderList);

            return(savedOrders);
        }