public void Import(Stream stream) { using (StreamReader reader = new StreamReader(stream)) { XmlSerializer serializer = new XmlSerializer(typeof(EventEntry)); var entry = serializer.Deserialize(reader) as EventEntry; if (entry != null) { var m = _contentManager.Create <MemberEventPart>("MemberEvent", memberEvent => { memberEvent.Record.EventAddress = entry.EventAddress; memberEvent.Record.EventDescription = entry.EventDescription; memberEvent.Record.GoogleStaticMapLink = entry.GoogleStaticMapLink; memberEvent.Record.EventStartUtc = entry.EventStartUtc; memberEvent.Record.EventStopUtc = entry.EventStopUtc; memberEvent.Record.MaxAttendees = entry.MaxAttendees; memberEvent.Record.Shown = entry.Shown; memberEvent.Record.WaitingList = entry.WaitingList; }); foreach (var participant in entry.Participants) { ParticipantRecord p = new ParticipantRecord { UserName = participant.UserName, ParticipantName = participant.ParticipantName, ParticipantComment = participant.ParticipantComment, IsOnWaitingList = participant.IsOnWaitingList, MemberEventPartRecord_Id = m.Id }; _participantRepository.Create(p); } } } }
private static void AddWins(ParticipantRecord record, int winCount) { var wins = new List <int>(); for (var i = 0; i < winCount; i++) { wins.Add(0); } record.AddWins(wins); }
private void BreakTies(Season season) { var playedSets = season.Sets.Where(s => s.IsComplete).ToArray(); var setWins = new Dictionary <int, List <int> >(); foreach (var participant in season.Participants) { participant.TieBreakerPoints = 0; setWins.Add(participant.ID, new List <int>()); } foreach (var set in playedSets) { Debug.Assert(set.SeasonWinnerID != null, "set.SeasonWinnerID != null"); Debug.Assert(set.SeasonLoserID != null, "set.SeasonLoserID != null"); setWins[set.SeasonWinnerID.Value].Add(set.SeasonLoserID.Value); } season.Participants.Sort(); var currentPoints = -1; var tiedParticipants = new Dictionary <int, Dictionary <IParticipant, ParticipantRecord> >(); foreach (var seasonLeagueUser in season.Participants) { if (seasonLeagueUser.Points != currentPoints) { currentPoints = seasonLeagueUser.Points; tiedParticipants.Add(currentPoints, new Dictionary <IParticipant, ParticipantRecord>()); } var record = new ParticipantRecord(seasonLeagueUser.LeagueUser.Points, seasonLeagueUser.LeagueUser.JoinDate); tiedParticipants[currentPoints].Add(seasonLeagueUser, record); } foreach (var tiedParticipantGroup in tiedParticipants) { if (tiedParticipantGroup.Value.Count <= 1) { continue; } foreach (var participantRecord in tiedParticipantGroup.Value) { participantRecord.Value.AddWins(setWins[participantRecord.Key.ID]); } tieBreaker.Break(tiedParticipantGroup.Value); } }
public void DeleteParticipant(ParticipantRecord p) { _participantRepository.Delete(p); }
private static void AddWins(ParticipantRecord record, params int[] beatenOpponents) { record.AddWins(beatenOpponents); }
public ParticipantsBuilder Add(int id = 0, int points = 0, int leaguePoints = 0, DateTime joinDate = default(DateTime)) { lastRecord = new ParticipantRecord(leaguePoints, joinDate); participants.Add(new FakeParticipant(id, points), lastRecord); return(this); }