Пример #1
0
        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);
                    }
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
 public void DeleteParticipant(ParticipantRecord p)
 {
     _participantRepository.Delete(p);
 }
Пример #5
0
 private static void AddWins(ParticipantRecord record, params int[] beatenOpponents)
 {
     record.AddWins(beatenOpponents);
 }
Пример #6
0
 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);
 }