FastQuant.ExecutionSimulator.FillLimitOrder C# (CSharp) Method

FillLimitOrder() private method

private FillLimitOrder ( Order order ) : bool
order Order
return bool
        private bool FillLimitOrder(Order order)
        {
            if (order.Type != OrderType.Limit)
                return false;

            int iId = order.InstrumentId;
            if (FillOnQuote)
            {
                var ask = this.framework.DataManager.GetAsk(iId);
                if (ask != null && this.FillWithAsk(order, ask))
                {
                    return true;
                }
                var bid = this.framework.DataManager.GetBid(iId);
                if (bid != null && this.FillWithBid(order, bid))
                {
                    return true;
                }
            }
            if (FillOnTrade)
            {
                Trade trade = this.framework.DataManager.GetTrade(iId);
                if (trade != null && this.FillWithTrade(order, trade))
                {
                    return true;
                }
            }
            if (FillOnBar)
            {
                var bar = this.framework.DataManager.GetBar(iId);
                if (BarFilter.Count != 0 && !BarFilter.Contains(bar.Type, bar.Size))
                {
                    return false;
                }
                if (bar != null && this.FillWithBar(order, bar))
                {
                    return true;
                }
            }
            return false;
        }