public async Task <MazebotSolverStatus> Add(string sessionId, MazebotSolverResponse item) { var row = new MazebotSolverStatus { SessionId = sessionId, Response = item }; _status.Add(row); return(await Task.FromResult(row)); }
public async Task <MazebotSolverResponseSummary> SolveRandom(int?minSize, int?maxSize) { var maze = await GetRandomMaze(minSize, maxSize); var solution = await SolveMaze(maze); var result = await PostSolution(maze, solution); var id = Guid.NewGuid().ToString(); var response = new MazebotSolverResponse(id, maze, solution, result); await _repository.Add(id, response); return(response.CreateSummary()); }
public async void Add_Should_Add_Status_Accordingly() { var repository = new InMemoryStatusRepository(); var sessionId = "sessionId"; var item = new MazebotSolverResponse(sessionId, null, null, null); var actual = await repository.Add(sessionId, item); var list = await repository.Get(sessionId); var expected = list.First(); actual.SessionId.Should().Be(expected.SessionId); actual.Response.Should().Be(expected.Response); }
public async void Get_Should_Retrieve_Status_Accordingly(string sessionId, int recordCount) { var repository = new InMemoryStatusRepository(); var item1 = new MazebotSolverResponse("sessionId1", null, null, null); var item2 = new MazebotSolverResponse("sessionId2", null, null, null); var item3 = new MazebotSolverResponse("sessionId2", null, null, null); await repository.Add("sessionId1", item1); await repository.Add("sessionId2", item2); await repository.Add("sessionId2", item3); var result = await repository.Get(sessionId); result.Should().HaveCount(recordCount); }
private async Task <IEnumerable <MazebotSolverResponseSummary> > FinishRace(string sessionId, MazebotLoginResponse start) { var responses = new List <MazebotSolverResponseSummary>(); var nextMaze = start.NextMaze; while (!string.IsNullOrWhiteSpace(nextMaze)) { var maze = await GetRaceTrack(nextMaze); var solution = await SolveMaze(maze); var result = await PostSolution(maze, solution); var response = new MazebotSolverResponse(sessionId, maze, solution, result); await _repository.Add(sessionId, response); responses.Add(response.CreateSummary()); nextMaze = result?.NextMaze; } return(responses); }