Пример #1
0
 private void AddTeamPenalties(IList<Jam> jams, Dictionary<string, Player> players, Dictionary<int, PlayerPenaltiesModel> playerPenalties)
 {
     //PenaltyProcessor processor = new PenaltyProcessor(jams, players);
     PenaltyGateway penaltyGateway = new PenaltyGateway(_connection, _transaction);
     bool isSuccess = true;
     foreach(KeyValuePair<int, PlayerPenaltiesModel> kvp in playerPenalties)
     {
         int penaltyCount = 0;
         foreach(PenaltyModel penalty in kvp.Value.Penalties)
         {
             Jam jam = jams.FirstOrDefault(j => j.IsFirstHalf == penalty.IsFirstHalf && j.JamNumber == penalty.JamNumber);
             if(jam == null)
             {
                 Console.WriteLine(string.Format("Unknown jam number {0} on penalty for player {1}.", penalty.JamNumber, kvp.Value.PlayerNumber));
                 isSuccess = false;
             }
             penaltyCount++;
             Penalty pen = new Penalty
             {
                 JamID = jam.ID,
                 PlayerID = kvp.Key,
                 PenaltyCode = penalty.PenaltyCode,
                 PenaltyNumber = penaltyCount,
                 MatchingKey = penalty.SpecificKey
             };
             if(pen.MatchingKey != null)
             {
                 Console.WriteLine(string.Format("Special case penalty {0}{1} encountered in {2}", penalty.PenaltyCode, penalty.SpecificKey, penalty.JamNumber));
             }
             penaltyGateway.AddBasicPenalty(pen);
         }
     }
     if(!isSuccess)
     {
         throw new InvalidOperationException("Bad penalty data");
     }
 }
Пример #2
0
        private void TranslatePenaltyDictionary(Dictionary<int, PlayerPenaltiesModel> playerPenaltiesModelMap, 
                                                out Dictionary<int, List<Penalty>> jamPenaltyMap, out Dictionary<int, List<Penalty>> playerPenaltyMap)
        {
            jamPenaltyMap = new Dictionary<int, List<Penalty>>(50);
            playerPenaltyMap = new Dictionary<int, List<Penalty>>(28);

            foreach (KeyValuePair<int, PlayerPenaltiesModel> playerPenalty in playerPenaltiesModelMap)
            {
                int penaltyCount = 1;
                foreach (PenaltyModel penaltyModel in playerPenalty.Value.Penalties)
                {
                    Jam jam = _jams.First(j => j.IsFirstHalf == penaltyModel.IsFirstHalf && j.JamNumber == penaltyModel.JamNumber);
                    if (!jamPenaltyMap.ContainsKey(jam.ID))
                    {
                        jamPenaltyMap[jam.ID] = new List<Penalty>();
                    }
                    if (!playerPenaltyMap.ContainsKey(playerPenalty.Key))
                    {
                        playerPenaltyMap[playerPenalty.Key] = new List<Penalty>();
                    }
                    Penalty penalty = new Penalty
                    {
                        PlayerID = playerPenalty.Key,
                        PenaltyCode = penaltyModel.PenaltyCode,
                        PenaltyNumber = penaltyCount,
                        JamID = jam.ID,
                        MatchingKey = penaltyModel.SpecificKey
                    };
                    penaltyCount++;
                    jamPenaltyMap[jam.ID].Add(penalty);
                    playerPenaltyMap[playerPenalty.Key].Add(penalty);
                }
            }
        }
Пример #3
0
 internal Penalty ReadPenaltyData(SqlDataReader reader, out int groupID)
 {
     Penalty penalty = new Penalty();
     groupID = reader.GetInt32(reader.GetOrdinal("GroupID"));
     penalty.PlayerID = reader.GetInt32(reader.GetOrdinal("PlayerID"));
     penalty.JamID = reader.GetInt32(reader.GetOrdinal("JamID"));
     penalty.PenaltyCode = reader.GetString(reader.GetOrdinal("Code"));
     return penalty;
 }