FastQuant.OrderBookAggr.method_3 C# (CSharp) Method

method_3() private method

private method_3 ( ) : void
return void
        private void method_3()
        {
            SortedList<double, Tick> sortedList = new SortedList<double, Tick>(new PriceComparer(PriceSortOrder.Descending));
            SortedList<double, Tick> sortedList2 = new SortedList<double, Tick>(new PriceComparer(PriceSortOrder.Ascending));
            this.dateTime_0 = default(DateTime);
            foreach (Tuple<DateTime, List<Tick>, List<Tick>> current in this.GonEpGhAb.Values)
            {
                if (current.Item1 > this.dateTime_0)
                {
                    this.dateTime_0 = current.Item1;
                }
            }
            List<Tuple<DateTime, List<Tick>, List<Tick>>> list = new List<Tuple<DateTime, List<Tick>, List<Tick>>>();
            foreach (Tuple<DateTime, List<Tick>, List<Tick>> current2 in this.GonEpGhAb.Values)
            {
                if (current2.Item1 + this.Timeout >= this.dateTime_0)
                {
                    list.Add(current2);
                }
            }
            foreach (Tuple<DateTime, List<Tick>, List<Tick>> current3 in list)
            {
                foreach (Tick current4 in current3.Item2)
                {
                    if (!sortedList.ContainsKey(current4.Price))
                    {
                        Tick tick = new Tick(current4);
                        if (Mode == AggregationMode.TotalValue)
                        {
                            tick.ProviderId = 0;
                        }
                        sortedList.Add(current4.Price, tick);
                    }
                    else if (Mode == AggregationMode.TotalValue)
                    {
                        sortedList[current4.Price].Size += current4.Size;
                    }
                    else if (Mode == AggregationMode.MaxValue && current4.Size > sortedList[current4.Price].Size)
                    {
                        sortedList[current4.Price] = new Tick(current4);
                    }
                }
                foreach (Tick current5 in current3.Item3)
                {
                    if (!sortedList2.ContainsKey(current5.Price))
                    {
                        Tick tick2 = new Tick(current5);
                        if (this.Mode == AggregationMode.TotalValue)
                        {
                            tick2.ProviderId = 0;
                        }
                        sortedList2.Add(current5.Price, tick2);
                    }
                    else if (this.Mode == AggregationMode.TotalValue)
                    {
                        sortedList2[current5.Price].Size += current5.Size;
                    }
                    else if (this.Mode == AggregationMode.MaxValue && current5.Size > sortedList2[current5.Price].Size)
                    {
                        sortedList2[current5.Price] = new Tick(current5);
                    }
                }
            }
            this.bids = new List<Tick>(sortedList.Values);
            this.asks = new List<Tick>(sortedList2.Values);
            this.bool_0 = true;
        }