Forex_Strategy_Builder.Dialogs.Generator.Top10Layout.AddStrategyInfo C# (CSharp) Method

AddStrategyInfo() public method

Adds a strategy to the top 10 Layout
public AddStrategyInfo ( Top10StrategyInfo top10StrategyInfo ) : void
top10StrategyInfo Top10StrategyInfo
return void
        public void AddStrategyInfo(Top10StrategyInfo top10StrategyInfo)
        {
            if (top10Holder.ContainsKey(top10StrategyInfo.Balance))
            {
                return;
            }

            if(top10Holder.Count == maxStrategies && top10StrategyInfo.Balance <= minBalance)
                return;

            if (top10Holder.Count == maxStrategies && top10StrategyInfo.Balance > minBalance)
            {
                top10Holder.Remove(minBalance);
                top10Holder.Add(top10StrategyInfo.Balance, top10StrategyInfo);
            }
            else if (top10Holder.Count < maxStrategies)
                top10Holder.Add(top10StrategyInfo.Balance, top10StrategyInfo);

            top10Holder.ReverseSort();

            minBalance = int.MaxValue;
            maxBalance = int.MinValue;
            foreach (KeyValuePair<int, Top10StrategyInfo> keyValue in top10Holder)
            {
                if (minBalance > keyValue.Key)
                    minBalance = keyValue.Key;
                if (maxBalance < keyValue.Key)
                    maxBalance = keyValue.Key;
            }

            foreach (KeyValuePair<int, Top10StrategyInfo> keyValue in top10Holder)
                    keyValue.Value.Top10Slot.IsSelected = false;

            top10Holder[maxBalance].Top10Slot.IsSelected = true;

            ArrangeTop10Slots();
            SetVerticalScrollBar();
        }