Example #1
0
        private static SellOrder[] EntitiesToLogicUnit(SellOrders[] sellOrders)
        {
            var sellOrdersList = new List <SellOrder>();

            if (sellOrders != null)
            {
                foreach (var order in sellOrders)
                {
                    var sellOrder = new SellOrder(order);
                    sellOrdersList.Add(sellOrder);
                }
            }

            var result = sellOrdersList.ToArray();

            return(result);
        }
Example #2
0
        public void Buy()
        {
            BuyDate = DateTimeOffset.Now;

            var sellOrders = SellOrder.GetWithPriceLessOrEqual(BuyPrice);

            if (sellOrders != null)
            {
                foreach (var sellOrder in sellOrders)
                {
                    var numbersToBuy = NumbersToBuy;

                    if (sellOrder != null && numbersToBuy > 0)
                    {
                        var numbersToSell = sellOrder.NumbersToSell;

                        var numbersToTransaction = numbersToBuy < numbersToSell ? numbersToBuy : numbersToSell;
                        numbersToSell -= numbersToTransaction;
                        numbersToBuy  -= numbersToTransaction;

                        var transaction = new Transaction
                        {
                            BuyDate              = BuyDate,
                            SellDate             = sellOrder.SellDate,
                            BuyComment           = BuyComment,
                            SellComment          = sellOrder.SellComment,
                            CompleteDate         = DateTimeOffset.Now,
                            NumbersToTransaction = numbersToTransaction,
                            TransactionPrice     = sellOrder.SellPrice
                        };
                        transaction.Add();

                        NumbersToBuy            = numbersToBuy;
                        sellOrder.NumbersToSell = numbersToSell;

                        sellOrder.Save();
                    }
                }
            }

            if (NumbersToBuy > 0)
            {
                Add();
            }
        }