private static Play convertToEntity(PlayDTO playDTO) { var play = new Play(); play.record_id = playDTO.RecordID; play.game_id = playDTO.GameID; play.inning = playDTO.Inning; play.game_team_code = playDTO.GameTeamCode; play.sequence = playDTO.Sequence; play.player_id = playDTO.PlayerID; play.count_balls = playDTO.CountBalls; play.count_strikes = playDTO.CountStrikes; play.pitches = playDTO.Pitches; play.event_sequence = playDTO.EventSequence; play.event_modifier = playDTO.EventModifier; play.event_runner_advance = playDTO.EventRunnerAdvance; play.event_hit_location = playDTO.EventHitLocation; play.event_fielded_by = playDTO.EventFieldedBy; play.event_play_on_runner = playDTO.EventPlayOnRunner; play.event_type = playDTO.EventType; play.event_columnSix = playDTO.EventColumnSix; play.event_num = playDTO.EventNum; return(play); }
public async Task <PlayDTO> Play(string[] parameters) { const string playEndpoint = BaseUrl + RequesterUrlConstants.Play; string gameId = parameters[0]; string positionX = parameters[1]; string positionY = parameters[2]; this.AddAuthorizationHeaderIfNotExist(); var content = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("GameId", gameId), new KeyValuePair <string, string>("PositionX", positionX), new KeyValuePair <string, string>("PositionY", positionY), }); var response = await this.httpClient.PostAsync(playEndpoint, content); await this.ValiadteResponse(response); PlayDTO responseData = new PlayDTO() { PositionX = positionX, PositionY = positionY }; return(responseData); }
public static void CreatePlay(PlayDTO playDTO) { // ballpark instance of Player class in Retrosheet_Persist.Retrosheet var play = convertToEntity(playDTO); // entity data model //var dbCtx = new retrosheetDB(); var dbCtx = new retrosheetEntities(); dbCtx.Plays.Add(play); try { dbCtx.SaveChanges(); } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } } catch (Exception e) { string text; text = e.Message; } }
private static void ReadWritePlayFile(string inputPathFile) { string[] columnValue; string textLine = null; using (StreamReader reader = new StreamReader(inputPathFile)) { while (!reader.EndOfStream) { try { textLine = reader.ReadLine(); } catch (Exception e) { // Let the user know what went wrong. Console.WriteLine("The " + @"C:\users\mmr\documents\retrosheet\2016 Regular Season\Output\2016SLN\2016SLN_play" + " file could not be read:"); Console.WriteLine(e.Message); Console.ReadLine(); } columnValue = textLine.Split('|'); PlayDTO playDTO = new PlayDTO(); playDTO.RecordID = Guid.NewGuid(); playDTO.GameID = columnValue[0]; playDTO.Inning = Convert.ToInt16(columnValue[1]); playDTO.GameTeamCode = Convert.ToInt16(columnValue[2]); playDTO.Sequence = Convert.ToInt16(columnValue[3]); playDTO.PlayerID = columnValue[7]; playDTO.CountBalls = Convert.ToInt16(columnValue[8]); playDTO.CountStrikes = Convert.ToInt16(columnValue[9]); playDTO.Pitches = columnValue[10]; playDTO.EventSequence = columnValue[11]; playDTO.EventModifier = columnValue[12]; playDTO.EventRunnerAdvance = columnValue[13]; playDTO.EventHitLocation = columnValue[14]; playDTO.EventFieldedBy = columnValue[15]; playDTO.EventPlayOnRunner = columnValue[16]; playDTO.EventType = columnValue[17]; playDTO.EventColumnSix = columnValue[18]; playDTO.EventNum = Convert.ToInt16(columnValue[19]); PlayPersist.CreatePlay(playDTO); } } }
public void Setup() { playParser = new PlayParser(); gameId = Guid.NewGuid(); playerIds = new List <Guid> { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() }; //P0 + P1 - teamA, P2 + P3 - teamB P0Makes2pFG = new PlayDTO("fieldgoal", false, playerIds[0], true, 2); P1Assists = new PlayDTO("assist", false, playerIds[1]); P0Misses2pFG = new PlayDTO("Fieldgoal", false, playerIds[0], false, 2); P0Makes3pFG = new PlayDTO("fieldgoal", false, playerIds[0], true, 3); P0Misses3pFG = new PlayDTO("Fieldgoal", false, playerIds[0], false, 3); P1Rebounds_SameTeam = new PlayDTO("rebound", false, playerIds[1]); P2Rebounds_DiffTeam = new PlayDTO("Rebound", true, playerIds[2]); P2Blocked = new PlayDTO("block", true, playerIds[2]); P0LostTheBall = new PlayDTO("Turnover", false, playerIds[0]); P2StoleTheBall = new PlayDTO("steal", true, playerIds[2]); P0SubbedOut = new PlayDTO("substitution", false, playerIds[0], true); P1SubbedIn = new PlayDTO("substitution", false, playerIds[1], false); }
public async override void Execute(string[] parameters) { try { PlayDTO responseData = await this.GameEngine.Requester.Play(parameters); string formattedResult = string.Format( MessageConstants.SuccessfullyBombed, responseData.PositionX, responseData.PositionY); this.Print(formattedResult); this.Status(parameters[0]); } catch (ApiException ex) { foreach (var error in ex.Errors) { this.Print(string.Format(MessageConstants.ErrorMessage, error)); } } catch (IndexOutOfRangeException ex) { this.Print(string.Format(MessageConstants.ErrorMessage, ex.Message)); } }
public async Task<PlayDTO> Play(string[] parameters) { const string playEndpoint = BaseUrl + RequesterUrlConstants.Play; string gameId = parameters[0]; string positionX = parameters[1]; string positionY = parameters[2]; this.AddAuthorizationHeaderIfNotExist(); var content = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("GameId", gameId), new KeyValuePair<string, string>("PositionX", positionX), new KeyValuePair<string, string>("PositionY", positionY), }); var response = await this.httpClient.PostAsync(playEndpoint, content); await this.ValiadteResponse(response); PlayDTO responseData = new PlayDTO() { PositionX = positionX, PositionY = positionY }; return responseData; }
public async Task <GameProgress> PlayMove(PlayDTO play, int id) { var game = context.Game.Include(game => game.Moves).Where(game => game.Id == id).First(); var chess = chessService.ReplayMoves(game.Moves.ToList()); var move = chess.Move(play.SAN); var boardState = CoordinateOutput.GameToState(chess); if (boardState.whiteWins || boardState.isDraw || boardState.blackWins) { var moveRow = new Models.Move() { SAN = play.SAN, Game = game, CreatedAt = DateTime.Now }; context.Move.Add(moveRow); context.SaveChanges(); return(new GameProgress() { GameId = id, State = boardState }); } var aiMove = await chessService.GetAiMove(game.AIDifficulty, chess); var aiMoveSan = chess.board.StandardAlgebraicNotation(aiMove); chess.Move(aiMove); if (MoveHelper.isValidMove(move.move)) { var moveRow = new Models.Move() { SAN = play.SAN, Game = game, CreatedAt = DateTime.Now }; var aiMoveRow = new Models.Move() { SAN = aiMoveSan, Game = game, CreatedAt = DateTime.Now }; context.Move.Add(moveRow); context.Move.Add(aiMoveRow); context.SaveChanges(); } return(new GameProgress() { GameId = id, State = CoordinateOutput.GameToState(chess) }); }