protected void PlayerYearData_Selecting(object sender, LinqDataSourceSelectEventArgs e)
    {
        if (reference == null)
        {
            reference = cbSeason.SelectedItem.Value;
        }

        IScoreCalculator calculator = CalculatorFactory.GetScoreCalculator(reference);


        var events = doc.Element("Fixtures").Elements("Fixture")
                     .Where(ee => (string)ee.Attribute("Season") == reference)
                     .Where(ee => (string)ee.Attribute("PlayerOfTheYear") == "True")
                     .OrderBy(ee => (string)ee.Attribute("Reference"))
                     .Select(ee =>
                             new
        {
            reference   = (string)ee.Attribute("Reference"),
            location    = (string)ee.Attribute("Location"),
            abbrevation = (string)ee.Attribute("Abbreviation")
        });


        List <string> evs = events.Select(ee => ee.abbrevation).ToList();


        List <PlayerYearInfo> PlayerOfTheYearTable = doc1.Element("Members").Elements("Member")
                                                     .Select(
            ee =>
            new PlayerYearInfo((string)ee.Attribute("Name"), evs,
                               calculator)).ToList();
        int counter = 0;

        foreach (var ev in events)
        {
            counter++;

            IEnumerable <XElement> results = doc.Element("Fixtures").Elements("Fixture")
                                             .Where(ee => (string)ee.Attribute("Reference") == ev.reference)
                                             .Descendants("Score")
                                             .Where(
                ff =>
                (string)
                ff.Ancestors("Result").SingleOrDefault().Attribute("PlayerOfTheYear") ==
                "True")
                                             .Select(ee => ee);

            foreach (XElement score in results)
            {
                PlayerYearInfo player = PlayerOfTheYearTable.Where(ee => ee.Player == (string)score.Attribute("Name"))
                                        .Select(ee => ee)
                                        .SingleOrDefault();

                if (player != null)
                {
                    player.RecordEvent(ev.abbrevation, (int)score.Attribute("Position"));
                }
            }
        }


        e.Result = PlayerOfTheYearTable.Where(ee => ee.Total > 0).OrderByDescending(ee => ee.Total).Select(ee => ee);
    }