int IScoreCalculator.CalculateTotal(PlayerYearInfo paramPlayer) { return(paramPlayer.Events.Where(ee => ee.Score > 0) .OrderByDescending(ee => ee.Score) .Take(5) .Sum(ee => ee.Score)); }
int IScoreCalculator.CalculateTotal(PlayerYearInfo paramPlayer) { if (paramPlayer == null) { return(-1); } if (paramPlayer.Events == null) { return(-1); } if (paramPlayer.Events.Count < 5) { return(-1); } return(paramPlayer.Events.Where(ee => ee.Score > 0).OrderBy(ee => ee.Score).Take(5).Sum(ee => ee.Score)); }
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); }