private void InitializeOlympiadListView()
        {
            bool colorflag = false;

            OlympiadList.Clear();
            foreach (var olympiad in Olympiads)
            {
                var listViewItem = new ListViewItem
                {
                    Content = new TextBlock {
                        Text = olympiad.Name, TextWrapping = TextWrapping.WrapWholeWords
                    },
                    Background = colorflag ? new SolidColorBrush(Colors.LightBlue) : new SolidColorBrush(Colors.Azure),
                    Tag        = olympiad
                };

                colorflag            = !colorflag;
                listViewItem.Tapped += ListView_Tapped;

                OlympiadList.Add(listViewItem);
            }

            CurrentOlympiad = OlympiadList.First().Tag as Olympiad;
            Bindings.Update();
        }
        private void ParseOlympiads(HtmlDocument doc, int year)
        {
            // Desine sperare qui hic intras

            var nodes = doc.DocumentNode.SelectNodes("//table[@class='mainTableInfo']/tbody/tr");

            // TODO: save all current olympiad's profiles to a list
            // and then use Olympiad.AddProfiles instead of Olympiad.AddProfile due to perfomance

            foreach (var node in nodes)
            {
                var cols                 = node.ChildNodes;
                int profileNameIndex     = 1;
                int profileSubjectsIndex = 3;
                int profileLevelIndex    = 5;

                // Current row is primary
                if (cols.Count == 11)
                {
                    var name = cols[3].InnerText.Trim();

                    string link = null;
                    try
                    {
                        link = cols[3].FirstChild.Attributes["href"].Value.Trim();
                    }
                    catch
                    {
                        link = "";
                    }

                    profileNameIndex     = 5;
                    profileSubjectsIndex = 7;
                    profileLevelIndex    = 9;

                    var olympiad = new Olympiad(name, link, year);
                    olympiads.Add(olympiad);
                }

                var profile = new Profile(
                    new Tuple <string, string, int> (
                        cols[profileNameIndex].InnerText,
                        cols[profileSubjectsIndex].InnerText,
                        int.Parse(cols[profileLevelIndex].InnerText)
                        ));
                olympiads.Last().AddProfile(profile);
            }
        }
        private void ListView_Tapped(object sender, TappedRoutedEventArgs e)
        {
            CurrentOlympiad = (sender as ListViewItem)?.Tag as Olympiad;

            Bindings.Update();
        }