public async Task Handle(LineupChangeCreatedEvent message)
        {
            LineupChangeRM lineupChange = _mapper.Map <LineupChangeRM>(message);
            LineupRM       lineup       = _mapper.Map <LineupRM>(message);

            if (!message.LastLineupChange)
            {
                Dictionaries.Dictionaries.cdLineupRM.GetOrAdd(message.RetrosheetGameId + (message.Sequence).ToString("000"), lineup);
            }

            await _lineupChangeRepo.SaveAsync(lineupChange);

            await _lineupRepo.SaveAsync(lineup);
        }
        public async Task <IActionResult> AddStarterOrSub([FromBody] CreateLineupChangeRequest request)
        {
            LineupRM previousLineup = null;

            if (request.Sequence > 1)
            {
                Dictionaries.cdLineupRM.TryRemove(request.RetrosheetGameId + (request.Sequence - 1).ToString("000"), out previousLineup);
            }

            request.PreviousBattingOrder = previousLineup;
            var cmd = _mapper.Map <CreateLineupChangeCommand>(request);
            await _commandSender.Send(cmd);

            return(Ok());
        }
 public CreateLineupChangeCommand(Guid id, string retrosheetGameId, short eventNumber, short sequence, bool isStarter, string playerId,
                                  string name, byte team, byte battingOrder, byte fieldPosition, bool lastLineupChange, LineupRM previousBattingOrder)
 {
     Id = id;
     RetrosheetGameId     = retrosheetGameId;
     EventNumber          = eventNumber;
     Sequence             = sequence;
     IsStarter            = isStarter;
     PlayerId             = playerId;
     Name                 = name;
     Team                 = team;
     BattingOrder         = battingOrder;
     FieldPosition        = fieldPosition;
     LastLineupChange     = lastLineupChange;
     PreviousBattingOrder = previousBattingOrder;
 }
        public LineupChange(Guid id, string retrosheetGameId, short eventNumber, short sequence, bool isStarter, string playerId,
                            string name, byte team, byte battingOrder, byte fieldPosition, bool lastLineupChange, LineupRM previousBattingOrder)
        {
            Id = id;
            _RetrosheetGameId     = retrosheetGameId;
            _EventNumber          = eventNumber;
            _Sequence             = sequence;
            _IsStarter            = isStarter;
            _PlayerId             = playerId;
            _Name                 = name;
            _Team                 = team;
            _BattingOrder         = battingOrder;
            _FieldPosition        = fieldPosition;
            _LastLineupChange     = lastLineupChange;
            _PreviousBattingOrder = previousBattingOrder;

            ApplyChange(new LineupChangeCreatedEvent(id, retrosheetGameId, eventNumber, sequence, isStarter, playerId,
                                                     name, team, battingOrder, fieldPosition, lastLineupChange, previousBattingOrder));
        }
 public async Task SaveAsync(LineupRM lineup)
 {
     await _repo.SaveAsync(lineup, (x) => x.RetrosheetGameId + "_" + x.Sequence.ToString("000"));
 }
        private LineupRM AdjustBattingOrder(LineupChangeCreatedEvent source)
        {
            LineupRM bo = source.PreviousBattingOrder;

            if (bo == null)
            {
                bo = new LineupRM();
            }

            bo.EventNumber      = source.EventNumber;
            bo.Sequence         = source.Sequence;
            bo.RetrosheetGameId = source.RetrosheetGameId;

            if (source.BattingOrder == 0 && source.Team == 1)
            {
                if (source.IsStarter == false && bo.Home_BO0_PlayerId == source.PlayerId && bo.Home_BO0_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Home_BO0_PlayerId      = null;
                    bo.Home_BO0_FieldPosition = 0;
                }
                bo.Home_BO0_PlayerId      = source.PlayerId;
                bo.Home_BO0_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 1 && source.Team == 1)
            {
                if (source.IsStarter == false && bo.Home_BO1_PlayerId == source.PlayerId && bo.Home_BO1_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Home_BO0_PlayerId      = null;
                    bo.Home_BO0_FieldPosition = 0;
                }
                bo.Home_BO1_PlayerId      = source.PlayerId;
                bo.Home_BO1_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 2 && source.Team == 1)
            {
                if (source.IsStarter == false && bo.Home_BO2_PlayerId == source.PlayerId && bo.Home_BO2_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Home_BO0_PlayerId      = null;
                    bo.Home_BO0_FieldPosition = 0;
                }
                bo.Home_BO2_PlayerId      = source.PlayerId;
                bo.Home_BO2_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 3 && source.Team == 1)
            {
                if (source.IsStarter == false && bo.Home_BO3_PlayerId == source.PlayerId && bo.Home_BO3_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Home_BO0_PlayerId      = null;
                    bo.Home_BO0_FieldPosition = 0;
                }
                bo.Home_BO3_PlayerId      = source.PlayerId;
                bo.Home_BO3_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 4 && source.Team == 1)
            {
                if (source.IsStarter == false && bo.Home_BO4_PlayerId == source.PlayerId && bo.Home_BO4_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Home_BO0_PlayerId      = null;
                    bo.Home_BO0_FieldPosition = 0;
                }
                bo.Home_BO4_PlayerId      = source.PlayerId;
                bo.Home_BO4_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 5 && source.Team == 1)
            {
                if (source.IsStarter == false && bo.Home_BO5_PlayerId == source.PlayerId && bo.Home_BO5_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Home_BO0_PlayerId      = null;
                    bo.Home_BO0_FieldPosition = 0;
                }
                bo.Home_BO5_PlayerId      = source.PlayerId;
                bo.Home_BO5_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 6 && source.Team == 1)
            {
                if (source.IsStarter == false && bo.Home_BO6_PlayerId == source.PlayerId && bo.Home_BO6_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Home_BO0_PlayerId      = null;
                    bo.Home_BO0_FieldPosition = 0;
                }
                bo.Home_BO6_PlayerId      = source.PlayerId;
                bo.Home_BO6_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 7 && source.Team == 1)
            {
                if (source.IsStarter == false && bo.Home_BO7_PlayerId == source.PlayerId && bo.Home_BO7_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Home_BO0_PlayerId      = null;
                    bo.Home_BO0_FieldPosition = 0;
                }
                bo.Home_BO7_PlayerId      = source.PlayerId;
                bo.Home_BO7_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 8 && source.Team == 1)
            {
                if (source.IsStarter == false && bo.Home_BO8_PlayerId == source.PlayerId && bo.Home_BO8_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Home_BO0_PlayerId      = null;
                    bo.Home_BO0_FieldPosition = 0;
                }
                bo.Home_BO8_PlayerId      = source.PlayerId;
                bo.Home_BO8_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 9 && source.Team == 1)
            {
                if (source.IsStarter == false && bo.Home_BO9_PlayerId == source.PlayerId && bo.Home_BO9_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Home_BO0_PlayerId      = null;
                    bo.Home_BO0_FieldPosition = 0;
                }
                bo.Home_BO9_PlayerId      = source.PlayerId;
                bo.Home_BO9_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 0 && source.Team == 0)
            {
                if (source.IsStarter == false && bo.Away_BO0_PlayerId == source.PlayerId && bo.Away_BO0_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Away_BO0_PlayerId      = null;
                    bo.Away_BO0_FieldPosition = 0;
                }
                bo.Away_BO0_PlayerId      = source.PlayerId;
                bo.Away_BO0_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 1 && source.Team == 0)
            {
                if (source.IsStarter == false && bo.Away_BO1_PlayerId == source.PlayerId && bo.Away_BO1_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Away_BO0_PlayerId      = null;
                    bo.Away_BO0_FieldPosition = 0;
                }
                bo.Away_BO1_PlayerId      = source.PlayerId;
                bo.Away_BO1_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 2 && source.Team == 0)
            {
                if (source.IsStarter == false && bo.Away_BO2_PlayerId == source.PlayerId && bo.Away_BO2_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Away_BO0_PlayerId      = null;
                    bo.Away_BO0_FieldPosition = 0;
                }
                bo.Away_BO2_PlayerId      = source.PlayerId;
                bo.Away_BO2_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 3 && source.Team == 0)
            {
                if (source.IsStarter == false && bo.Away_BO3_PlayerId == source.PlayerId && bo.Away_BO3_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Away_BO0_PlayerId      = null;
                    bo.Away_BO0_FieldPosition = 0;
                }
                bo.Away_BO3_PlayerId      = source.PlayerId;
                bo.Away_BO3_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 4 && source.Team == 0)
            {
                if (source.IsStarter == false && bo.Away_BO4_PlayerId == source.PlayerId && bo.Away_BO4_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Away_BO0_PlayerId      = null;
                    bo.Away_BO0_FieldPosition = 0;
                }
                bo.Away_BO4_PlayerId      = source.PlayerId;
                bo.Away_BO4_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 5 && source.Team == 0)
            {
                if (source.IsStarter == false && bo.Away_BO5_PlayerId == source.PlayerId && bo.Away_BO5_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Away_BO0_PlayerId      = null;
                    bo.Away_BO0_FieldPosition = 0;
                }
                bo.Away_BO5_PlayerId      = source.PlayerId;
                bo.Away_BO5_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 6 && source.Team == 0)
            {
                if (source.IsStarter == false && bo.Away_BO6_PlayerId == source.PlayerId && bo.Away_BO6_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Away_BO0_PlayerId      = null;
                    bo.Away_BO0_FieldPosition = 0;
                }
                bo.Away_BO6_PlayerId      = source.PlayerId;
                bo.Away_BO6_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 7 && source.Team == 0)
            {
                if (source.IsStarter == false && bo.Away_BO7_PlayerId == source.PlayerId && bo.Away_BO7_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Away_BO0_PlayerId      = null;
                    bo.Away_BO0_FieldPosition = 0;
                }
                bo.Away_BO7_PlayerId      = source.PlayerId;
                bo.Away_BO7_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 8 && source.Team == 0)
            {
                if (source.IsStarter == false && bo.Away_BO8_PlayerId == source.PlayerId && bo.Away_BO8_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Away_BO0_PlayerId      = null;
                    bo.Away_BO0_FieldPosition = 0;
                }
                bo.Away_BO8_PlayerId      = source.PlayerId;
                bo.Away_BO8_FieldPosition = source.FieldPosition;
            }
            else if (source.BattingOrder == 9 && source.Team == 0)
            {
                if (source.IsStarter == false && bo.Away_BO9_PlayerId == source.PlayerId && bo.Away_BO9_FieldPosition == 10 && source.FieldPosition != 10)
                {
                    bo.Away_BO0_PlayerId      = null;
                    bo.Away_BO0_FieldPosition = 0;
                }
                bo.Away_BO9_PlayerId      = source.PlayerId;
                bo.Away_BO9_FieldPosition = source.FieldPosition;
            }

            return(bo);
        }
Example #7
0
 private static string FindPlayerByBattingOrder(int?battingOrder, string teamAtBat, LineupRM lineup)
 {
     if (!battingOrder.HasValue)
     {
         return("");
     }
     else if (teamAtBat == "H" && battingOrder == 1)
     {
         return(lineup.Home_BO1_PlayerId);
     }
     else if (teamAtBat == "H" && battingOrder == 2)
     {
         return(lineup.Home_BO2_PlayerId);
     }
     else if (teamAtBat == "H" && battingOrder == 3)
     {
         return(lineup.Home_BO3_PlayerId);
     }
     else if (teamAtBat == "H" && battingOrder == 4)
     {
         return(lineup.Home_BO4_PlayerId);
     }
     else if (teamAtBat == "H" && battingOrder == 5)
     {
         return(lineup.Home_BO5_PlayerId);
     }
     else if (teamAtBat == "H" && battingOrder == 6)
     {
         return(lineup.Home_BO6_PlayerId);
     }
     else if (teamAtBat == "H" && battingOrder == 7)
     {
         return(lineup.Home_BO7_PlayerId);
     }
     else if (teamAtBat == "H" && battingOrder == 8)
     {
         return(lineup.Home_BO8_PlayerId);
     }
     else if (teamAtBat == "H" && battingOrder == 9)
     {
         return(lineup.Home_BO9_PlayerId);
     }
     else if (teamAtBat == "V" && battingOrder == 1)
     {
         return(lineup.Away_BO1_PlayerId);
     }
     else if (teamAtBat == "V" && battingOrder == 2)
     {
         return(lineup.Away_BO2_PlayerId);
     }
     else if (teamAtBat == "V" && battingOrder == 3)
     {
         return(lineup.Away_BO3_PlayerId);
     }
     else if (teamAtBat == "V" && battingOrder == 4)
     {
         return(lineup.Away_BO4_PlayerId);
     }
     else if (teamAtBat == "V" && battingOrder == 5)
     {
         return(lineup.Away_BO5_PlayerId);
     }
     else if (teamAtBat == "V" && battingOrder == 6)
     {
         return(lineup.Away_BO6_PlayerId);
     }
     else if (teamAtBat == "V" && battingOrder == 7)
     {
         return(lineup.Away_BO7_PlayerId);
     }
     else if (teamAtBat == "V" && battingOrder == 8)
     {
         return(lineup.Away_BO8_PlayerId);
     }
     else if (teamAtBat == "V" && battingOrder == 9)
     {
         return(lineup.Away_BO9_PlayerId);
     }
     else
     {
         return("");
     }
 }
Example #8
0
 private static string FindDefender(int position, string teamAtBat, LineupRM lineup)
 {
     if (teamAtBat == "H" && lineup.Away_BO0_FieldPosition == position)
     {
         return(lineup.Away_BO0_PlayerId);
     }
     else if (teamAtBat == "H" && lineup.Away_BO1_FieldPosition == position)
     {
         return(lineup.Away_BO1_PlayerId);
     }
     else if (teamAtBat == "H" && lineup.Away_BO2_FieldPosition == position)
     {
         return(lineup.Away_BO2_PlayerId);
     }
     else if (teamAtBat == "H" && lineup.Away_BO3_FieldPosition == position)
     {
         return(lineup.Away_BO3_PlayerId);
     }
     else if (teamAtBat == "H" && lineup.Away_BO4_FieldPosition == position)
     {
         return(lineup.Away_BO4_PlayerId);
     }
     else if (teamAtBat == "H" && lineup.Away_BO5_FieldPosition == position)
     {
         return(lineup.Away_BO5_PlayerId);
     }
     else if (teamAtBat == "H" && lineup.Away_BO6_FieldPosition == position)
     {
         return(lineup.Away_BO6_PlayerId);
     }
     else if (teamAtBat == "H" && lineup.Away_BO7_FieldPosition == position)
     {
         return(lineup.Away_BO7_PlayerId);
     }
     else if (teamAtBat == "H" && lineup.Away_BO8_FieldPosition == position)
     {
         return(lineup.Away_BO8_PlayerId);
     }
     else if (teamAtBat == "H" && lineup.Away_BO9_FieldPosition == position)
     {
         return(lineup.Away_BO9_PlayerId);
     }
     else if (teamAtBat == "V" && lineup.Home_BO0_FieldPosition == position)
     {
         return(lineup.Home_BO0_PlayerId);
     }
     else if (teamAtBat == "V" && lineup.Home_BO1_FieldPosition == position)
     {
         return(lineup.Home_BO1_PlayerId);
     }
     else if (teamAtBat == "V" && lineup.Home_BO2_FieldPosition == position)
     {
         return(lineup.Home_BO2_PlayerId);
     }
     else if (teamAtBat == "V" && lineup.Home_BO3_FieldPosition == position)
     {
         return(lineup.Home_BO3_PlayerId);
     }
     else if (teamAtBat == "V" && lineup.Home_BO4_FieldPosition == position)
     {
         return(lineup.Home_BO4_PlayerId);
     }
     else if (teamAtBat == "V" && lineup.Home_BO5_FieldPosition == position)
     {
         return(lineup.Home_BO5_PlayerId);
     }
     else if (teamAtBat == "V" && lineup.Home_BO6_FieldPosition == position)
     {
         return(lineup.Home_BO6_PlayerId);
     }
     else if (teamAtBat == "V" && lineup.Home_BO7_FieldPosition == position)
     {
         return(lineup.Home_BO7_PlayerId);
     }
     else if (teamAtBat == "V" && lineup.Home_BO8_FieldPosition == position)
     {
         return(lineup.Home_BO8_PlayerId);
     }
     else if (teamAtBat == "V" && lineup.Home_BO9_FieldPosition == position)
     {
         return(lineup.Home_BO9_PlayerId);
     }
     else
     {
         return("");
     }
 }