Exemplo n.º 1
0
        public async Task <PortfolioOrder> AddOrderById(PortfolioOrderDTO po)
        {
            var portfolioOrder = new PortfolioOrder
            {
                OrderId     = po.OrderId,
                PortfolioId = po.PortfolioId
            };

            return(await _genericRepo.AddAsync(portfolioOrder));
        }
Exemplo n.º 2
0
        //Checks all exchanges for new orders from a given user
        public async Task <List <Order> > RefreshAllOrders(int userId)
        {
            //Get the default portfolio
            var portfolio = await _portfolioRepo.GetDefaultPortfolioAsync(userId);

            int portfolioId = portfolio.PortfolioId;

            //Get the current time
            DateTime time = DateTime.Now;

            time = time.AddDays(-1);

            //Get the keys for the exchanges
            var BitMEXKey = await _keyRepo.GetKeysFromNameAsync("BitMEX", userId);

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

            //Fill the list with orders from the exchanges
            var orderList = new List <Order>();

            foreach (ExchangeKey key in BitMEXKey)
            {
                orderList.AddRange(await GetBitMEXOrdersFromUserId(userId, portfolioId, key.LastRefresh.Date));
                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, portfolioId, key.LastId));
            }

            //Save the orders
            var savedOrders = await _orderRepo.SaveOrdersAsync(orderList);

            foreach (Order order in savedOrders)
            {
                var orderPortfolio = new PortfolioOrder
                {
                    PortfolioId = portfolioId,
                    OrderId     = order.OrderId
                };
                if (order.OrderId != 0)
                {
                    await _genericRepo.AddAsync(orderPortfolio);
                }
            }
            return(savedOrders);
        }
Exemplo n.º 3
0
        public async Task <PortfolioOrder> GetPortfolioOrder(int orderId, int portfolioId)
        {
            PortfolioOrder po = await _context.OrderPortolios.FirstOrDefaultAsync(x => x.OrderId == orderId && x.PortfolioId == portfolioId);

            return(po);
        }
Exemplo n.º 4
0
        public async Task <PortfolioOrder> RemoveOrderById(int orderId, int portfolioId)
        {
            PortfolioOrder poToDelete = await _portfolioRepo.GetPortfolioOrder(orderId, portfolioId);

            return(await _genericRepo.DeleteAsync(poToDelete));
        }