Esempio n. 1
0
 private static bool AreEqualRequestAndResponseDto(PlayerRequestDto request, PlayerResponseDto response)
 {
     return(request.AvatarUrl == response.AvatarUrl &&
            request.PlatformName == response.PlatformName &&
            request.RocketStatsID == response.RocketStatsID &&
            request.UserName == response.UserName);
 }
Esempio n. 2
0
        public async Task <string> ProcessEventAsync(PlayerResponseDto player)
        {
            var session = await statProvider.GetRecentRocketLeagueSessionsAsync(player.RocketStatsID, player.PlatformName);

            foreach (var item in session.Data.Items)
            {
                foreach (var rtMatch in item.Matches)
                {
                    if (rtMatch.Metadata.Result.ToLower() == "victory" || rtMatch.Metadata.Result.ToLower() == "defeat") // Indicates individual game
                    {
                        var existingPlayerMatch = await rocketClient.GetPlayerMatchByRocketIdAsync(rtMatch.ID);

                        if (existingPlayerMatch == default)
                        {
                            var playermatch = await rocketClient.AddPlayerMatchAsync(new PlayerMatchRequestDto()
                            {
                                PlayerID             = player.Id,
                                MatchID              = null,
                                Victory              = rtMatch.Metadata.Result.ToLower(),
                                RocketStatsID        = rtMatch.ID,
                                RocketStatsGameMode  = rtMatch.Metadata.Playlist,
                                RocketStatsMatchDate = rtMatch.Metadata.DateCollected
                            });

                            await ProcessMatchStatsAsync(playermatch, rtMatch.Stats);
                        }
                    }
                }
            }
            return("Success");
        }
        public async Task GetAllPlayersAsync_HappyPath()
        {
            // Arrange
            var player1 = new PlayerResponseDto()
            {
                Id              = Guid.NewGuid(),
                UserName        = "******",
                PlatformName    = "Steam",
                AvatarUrl       = "https://www.pictures.com",
                RocketStatsID   = "Starlord",
                DateCreatedUTC  = DateTime.UtcNow,
                DateModifiedUTC = DateTime.UtcNow
            };
            var playerList = new List <PlayerResponseDto>();

            playerList.Add(player1);
            mockHttpClient.Setup(client => client.ExecuteRequestAsync <List <PlayerResponseDto> >($"{fakeUrl}/api/player/list", It.IsAny <RestRequest>())).ReturnsAsync(playerList);

            // Act
            var response = await rocketClient.GetAllPlayersAsync();

            // Assert
            mockHttpClient.Verify(Clients => Clients.ExecuteRequestAsync <List <PlayerResponseDto> >($"{fakeUrl}/api/player/list", It.IsAny <RestRequest>()), Times.Once);
            Assert.NotNull(response);
            Assert.Equal(playerList.Count, response.Count);
        }
Esempio n. 4
0
        public async Task <bool> UpdatePlayerResponse(PlayerResponseDto playerResponseDto)
        {
            bool result = true;

            //Map the DTO object into the data entity
            var questionnaireResponses = playerResponseDto.Answers.Select(response => new QuestionnaireResponse()
            {
                QuestionnaireId = playerResponseDto.QuestionnaireId,
                UserId          = playerResponseDto.PlayerId,
                QuestionId      = response.QuestionId,
                AnswerDateTime  = response.AnswerDateTime,
                Value           = response.Answer.Value
            }).ToList();


            foreach (var response in questionnaireResponses)
            {
                //Find all records belonging to this questionnaire
                var recs = await _db.FindAsync <QuestionnaireResponse>(query => query
                                                                       .Where($"{nameof(QuestionnaireResponse.QuestionId):C} = @questionId And {nameof(QuestionnaireResponse.QuestionnaireId):C} = @questionnaireId")
                                                                       .WithParameters(new
                {
                    questionId      = response.QuestionId,
                    questionnaireId = response.QuestionnaireId
                }));

                result &= await _db.UpdateAsync(recs);
            }

            return(result);
        }
Esempio n. 5
0
        public async Task <string> SayHello([ActivityTrigger] PlayerResponseDto player)
        {
            //logger.LogInformation($"Saying hello to {player.UserName}.");
            var result = await handler.ProcessEventAsync(player);

            return($"Hello {result}!");
        }
Esempio n. 6
0
 public static bool AreEqualModelAndResponseDto(PlayerModel model, PlayerResponseDto dto)
 {
     return(model.ID == dto.ID &&
            model.PlatformName == dto.PlatformName &&
            model.RocketStatsID == dto.RocketStatsID &&
            model.UserName == dto.UserName &&
            model.DateModifiedUTC == dto.DateModifiedUTC &&
            model.DateCreatedUTC == dto.DateCreatedUTC);
 }
        public static PlayerResponseDto ToDto(this PlayerModel player)
        {
            var response = new PlayerResponseDto
            {
                Id               = player.Id,
                FirstName        = player.FirstName,
                LastName         = player.LastName,
                Email            = player.Email,
                Rating           = player.Rating,
                RegistrationDate = player.RegistrationDate
            };

            return(response);
        }
        public async Task <IActionResult> Get([FromBody, Required] PlayerResponseDto playerResponseDto)
        {
            try
            {
                var result = await _service.GetPlayerResponse(playerResponseDto);

                return(new ObjectResult(result));
            }
            catch (Exception ex)
            {
                Log.Error(ex, ex.Message);
                return(BadRequest(ex.Message));
            }
        }
        public async Task <IActionResult> SaveResponse([FromBody, Required] PlayerResponseDto playerResponseDto)
        {
            try
            {
                if (playerResponseDto == null)
                {
                    return(BadRequest());
                }

                await _service.CreatePlayerResponse(playerResponseDto);

                return(CreatedAtRoute("default", playerResponseDto));
            }
            catch (Exception ex)
            {
                Log.Error(ex, ex.Message);
                return(BadRequest(ex.Message));
            }
        }
Esempio n. 10
0
        protected async Task <IEnumerable <PlayerResponseDto> > GetPlayersMockedAsync()
        {
            List <PlayerResponseDto> playerList = new List <PlayerResponseDto>();

            for (int i = 1; i < 4; i++)
            {
                var player = new PlayerResponseDto()

                {
                    Age       = i,
                    FirstName = "John" + i,
                    LastName  = "Doe" + i,
                    Alias     = "Dooezer" + i
                };
                playerList.Add(player);
            }

            return(await Task.FromResult(playerList));
        }
Esempio n. 11
0
        //
        //CREATE APIs
        //
        public async Task <bool> CreatePlayerResponse(PlayerResponseDto playerResponseDto)
        {
            var questionnaireResponses = playerResponseDto.Answers.Select(response => new QuestionnaireResponse()
            {
                QuestionnaireId = playerResponseDto.QuestionnaireId,
                UserId          = playerResponseDto.PlayerId,
                QuestionId      = response.QuestionId,
                AnswerDateTime  = response.AnswerDateTime,
                Value           = response.Answer.Value
            }).ToList();

            foreach (var response in questionnaireResponses)
            {
                //Insert into Message table
                await _db.InsertAsync(response);
            }

            return(true);
        }
Esempio n. 12
0
        public async Task <PlayerResponseDto> GetPlayerResponse(PlayerResponseDto playerQuestionnaire)
        {
            //Find all records belonging to this questionnaire
            var recs = await _db.FindAsync <QuestionnaireResponse>(query => query
                                                                   .Where($"{nameof(QuestionnaireResponse.UserId):C} = @playerId And {nameof(QuestionnaireResponse.QuestionnaireId):C} = @questionnaireId")
                                                                   .WithParameters(new
            {
                playerId        = playerQuestionnaire.PlayerId,
                questionnaireId = playerQuestionnaire.QuestionnaireId
            }));

            playerQuestionnaire.Answers = new List <QuestionResponseDto>();
            foreach (var response in recs)
            {
                //Map to the DTO table
                var responses = Mapper.Map <QuestionResponseDto>(recs);
                playerQuestionnaire.Answers.Add(responses);
            }

            return(playerQuestionnaire);
        }
        public async Task <IActionResult> CreatePlayerResponse([FromBody, Required] PlayerResponseDto playerResponseDto)
        {
            try
            {
                if (playerResponseDto == null)
                {
                    return(BadRequest());
                }

                if (await _service.CreatePlayerResponse(playerResponseDto))
                {
                    return(CreatedAtRoute("default", true));
                }

                return(BadRequest("Failed to update the database"));
            }
            catch (Exception ex)
            {
                Log.Error(ex, ex.Message);
                return(BadRequest(ex.Message));
            }
        }