private static int CompareName(DispParticipant k1, DispParticipant k2) { int result = CompareFullName(k1, k2); if (result == 0) { result = CompareEventGroup(k1, k2); } return(result); }
private static int CompareFullName(DispParticipant k1, DispParticipant k2) { return(k1.Name.CompareTo(k2.Name)); }
private static int CompareEvent(DispParticipant k1, DispParticipant k2) { return(k1.OneEvent.EventSortKey.CompareTo(k2.OneEvent.EventSortKey)); }
private static int CompareTime(DispParticipant k1, DispParticipant k2) { return(k1.OneEvent.TotalSeconds.CompareTo(k2.OneEvent.TotalSeconds)); }
private void loadTeam(MARS_Meet_dbEntities meetDb, OneMeet oneMeet) { var athletes = from t in meetDb.mars_MTeams join p in meetDb.mars_MParticipants on new { t.MeetId, t.TeamId } equals new { p.MeetId, p.TeamId } join m in meetDb.mars_MMarks on new { p.MeetId, p.ParticipantId } equals new { m.MeetId, m.ParticipantId } join e in meetDb.mars_MEventEntries on new { m.MeetId, m.EventEntryId } equals new { e.MeetId, e.EventEntryId } join g in meetDb.mars_MGroups on new { e.MeetId, e.GroupId } equals new { g.MeetId, g.GroupId } where t.MeetId == oneMeet.MeetId && t.TeamId == oneMeet.CurrentTeam.Id && (oneMeet.CurrentDay == 0 || e.DayNo == oneMeet.CurrentDay) && (oneMeet.CurrentGroupId == null || g.GroupId == oneMeet.CurrentGroupId) select new { p.ParticipantId, p.FullName, p.YearOfBirth, p.BibNo, e.EventEntryId, e.GroupId, e.EventId, e.RoundNo, e.NoOfRounds, e.DayNo, e.Seconds, e.Text, e.RoundText, e.State, GroupText = g.Text, GroupSortKey = g.SortKey, EventSortKey = e.SortKeyEventId, m.MarkText, m.MarkCode, m.MarkRemark, m.Pos }; var eventsInHeat0 = from ev in meetDb.mars_MEventEntries where ev.MeetId == oneMeet.MeetId && ev.HeatGroupNo == 0 && (oneMeet.CurrentDay == 0 || ev.DayNo == oneMeet.CurrentDay) && (oneMeet.CurrentGroupId == null || ev.GroupId == oneMeet.CurrentGroupId) select new { ev.EventEntryId, ev.GroupId, ev.EventId, ev.RoundNo }; foreach (var p in athletes) { DispParticipant d = new DispParticipant(); d.ParticipantId = p.ParticipantId; d.Name = p.FullName; d.YOB = p.YearOfBirth != null && p.YearOfBirth != 0 ? p.YearOfBirth.ToString() : ""; d.BibNo = p.BibNo.ToString(); d.Result = p.MarkText; d.ResultCode = p.MarkCode; d.Comment = p.MarkRemark; d.Position = p.Pos == null ? "" : p.Pos.ToString(); Guid eventEntryId = (from x in eventsInHeat0 where x.EventId == p.EventId && x.GroupId == p.GroupId && x.RoundNo == p.RoundNo select x.EventEntryId).FirstOrDefault(); d.OneEvent = new OneEvent { Id = eventEntryId, EventId = p.EventId, GroupId = p.GroupId, EventText = p.Text, GroupText = p.GroupText, RoundText = p.RoundText, RoundNo = p.RoundNo, NoOfRounds = (int)p.NoOfRounds, Day = (int)p.DayNo, Seconds = (int)p.Seconds, State = p.State, GroupSortKey = p.GroupSortKey, EventSortKey = p.EventSortKey }; oneMeet.CurrentTeam.Participants.Add(d); } switch (oneMeet.CurrentSortBy) { case 0: oneMeet.CurrentTeam.Participants.Sort(CompareTimeSchedule); break; case 1: oneMeet.CurrentTeam.Participants.Sort(CompareGroupEvent); break; case 2: oneMeet.CurrentTeam.Participants.Sort(CompareEventGroup); break; case 3: oneMeet.CurrentTeam.Participants.Sort(CompareName); break; } Guid currentId = Guid.Empty; int number = 0; foreach (var d in oneMeet.CurrentTeam.Participants) { d.OrderNo = (++number).ToString(); if (d.ParticipantId.Equals(currentId)) { d.Name = ""; d.YOB = ""; d.BibNo = ""; } currentId = d.ParticipantId; } }