public void GetByGroup() { List <Competitors> competitors = CompetitorsContainer.GetAgeGroupCompetitorsInCompetition(View.SelectedCompetitionId, View.SelectedAgeGroup); List <CompetitorsWithSubgroups> competitorsWithSubgroups = new List <CompetitorsWithSubgroups>(); int subgroupCount = View.SelectedSubgroupCount; int subgroupLength = 0; subgroupLength = competitors.Count / subgroupCount; while (subgroupLength * subgroupCount < competitors.Count) { subgroupLength++; } int subgroup = 1; int index = 1; foreach (Competitors c in competitors) { if (index > subgroupLength) { index = 1; subgroup++; } competitorsWithSubgroups.Add(new CompetitorsWithSubgroups(c, subgroup)); index++; } View.Competitors = competitorsWithSubgroups; }
public void GetAllResults() { List <CompetitionEvents> competitionEvents = CompetitionEventsContainer.CompetitionEvents.Where(e => e.CompetitionId == View.CompetitionId).ToList(); List <AgeGroupEvents> ageGroupEvents = EventsContainer.GetEventsInCompetition(View.AgeGroupSelected, View.CompetitionId); List <Competitors> competitors = CompetitorsContainer.GetAgeGroupCompetitorsInCompetition(View.CompetitionId, View.AgeGroupSelected); List <Models.Objects.Results> resultsList = new List <Models.Objects.Results>(); List <Events> events = EventsContainer.Events.ToList(); DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("Vardas"); dt.Columns.Add("Pavardė"); foreach (AgeGroupEvents e in ageGroupEvents) { string eventName = EventsContainer.Events.Where(evt => evt.Id == e.EventId).Single().Title; int eventTypeValue = events.Where(et => et.Id == e.EventId).ToList()[0].Type; List <Models.Objects.Results> results = ResultsContainer.Results.Where(r => r.CompetitionId == View.CompetitionId && r.AgeGroupType == e.AgeGroupType && r.EventId == e.EventId).ToList(); EventTypes eventType = EventTypes.EventTypes.Where(t => t.Id == eventTypeValue).ToList()[0]; resultsList.AddRange(CalculateResults(results, eventType)); dt.Columns.Add(eventName); dt.Columns.Add(eventName + ": rezultatas"); } dt.Columns.Add("Suma"); int ageGroupId = AgeGroupTypesContainer.AgeGroupTypes.Where(t => t.Type.Equals(View.AgeGroupSelected)).Single().Id; List <Models.Objects.Results> finalResults = ResultsContainer.GetWinnerList(View.CompetitionId, ageGroupId); finalResults = finalResults.OrderBy(r => r.Points).ToList(); for (int i = 0; i < finalResults.Count; i++) { string name = competitors.Where(c => c.Id == finalResults[i].CompetitorId).Single().Name; string surname = competitors.Where(c => c.Id == finalResults[i].CompetitorId).Single().Surname; List <Models.Objects.Results> eventsResultsCompetitor = resultsList.Where(r => r.CompetitorId == finalResults[i].CompetitorId).ToList(); double?sum = finalResults[i].Points; int size = 4 + (eventsResultsCompetitor.Count() * 2); object[] values = new object[size]; values[0] = finalResults[i].CompetitorId; values[1] = name; values[2] = surname; int index = 3; foreach (Models.Objects.Results r in eventsResultsCompetitor) { values[index] = r.Result; index++; values[index] = r.Points; index++; } values[index] = sum; dt.Rows.Add(values); } View.Results = dt; }