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));
        }
Example #2
0
        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());
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }