Esempio n. 1
0
        public void PopulatePairGraph(List <string> pairs)
        {
            var pairs_parsed = pairs.Select(p => new KeyValuePair <string, string>(p.Split(':')[0], p.Split(':')[1]));

            ActualPairs = pairs_parsed.ToList();

            pairs_parsed = pairs_parsed.Concat(pairs_parsed.Select(p => new KeyValuePair <string, string>(p.Value, p.Key)));

            foreach (var pair in pairs_parsed)
            {
                string left  = pair.Key;
                string right = pair.Value;

                if (left.Length > 3)
                {
                    if (!TickerTranslations.ContainsKey(left.Substring(0, 3)))
                    {
                        TickerTranslations.Add(left.Substring(0, 3), left);
                    }
                    left = left.Substring(0, 3);
                }

                if (right.Length > 3)
                {
                    if (!TickerTranslations.ContainsKey(right.Substring(0, 3)))
                    {
                        TickerTranslations.Add(right.Substring(0, 3), right);
                    }
                    right = right.Substring(0, 3);
                }

                if (!PairGraph.ContainsKey(left))
                {
                    PairGraph.Add(left, new HashSet <string>());
                }

                if (!PairGraph.ContainsKey(right))
                {
                    PairGraph.Add(right, new HashSet <string>());
                }

                PairGraph[left].Add(right);
                PairGraph[right].Add(left);

                Currencies.Add(left);
                Currencies.Add(right);
            }
        }
Esempio n. 2
0
        public string ConsumeCurrency(string str, out string currency)
        {
            if (TickerTranslations.Any(t => str.StartsWith(t.Key)))
            {
                var translation = TickerTranslations.First(t => str.StartsWith(t.Key));
                currency = translation.Value;

                str = str.Substring(translation.Key.Length);
            }
            else
            {
                currency = Currencies.First(c => str.StartsWith(c));
                str      = str.Substring(currency.Length);
            }

            return(str);
        }