Пример #1
0
        public async Task <IActionResult> GetPersonalSetting(string battleTag)
        {
            var setting = await _personalSettingsRepository.Load(battleTag);

            if (setting == null)
            {
                var player = await _playerRepository.LoadPlayerProfile(battleTag);

                return(Ok(new PersonalSetting(battleTag)
                {
                    Players = new List <PlayerOverallStats> {
                        player
                    }
                }));
            }
            return(Ok(setting));
        }
        public async Task <IActionResult> GetPlayer([FromRoute] string battleTag)
        {
            var playersClan = await _clanRepository.LoadMemberShip(battleTag);

            var settings = await _personalSettingsRepository.Load(battleTag);

            return(Ok(new ChatDetailsDto(playersClan?.ClanId, settings?.ProfilePicture)));
        }
Пример #3
0
        public async Task UpdateLocation(PlayerMMrChange player)
        {
            if (!string.IsNullOrEmpty(player.country))
            {
                var setting = await _personalSettingsRepository.Load(player.battleTag) ?? new PersonalSetting(player.battleTag);

                setting.Location = player.country;

                await _personalSettingsRepository.Save(setting);
            }
        }
Пример #4
0
        public async Task <IActionResult> GetPlayer([FromRoute] string battleTag, [FromQuery] string authorization)
        {
            var player = await _playerRepository.LoadPlayerProfile(battleTag);

            if (player == null && authorization != null)
            {
                var user = _authenticationService.GetUserByToken(authorization);
                if (user == null)
                {
                    return(Unauthorized("Sorry Hackerboi"));
                }

                player = PlayerOverallStats.Create(battleTag);
            }

            // Akas are stored in cache - preferences for showing akas are stored in DB
            var settings = await _personalSettingsRepository.Load(battleTag);

            player.PlayerAkaData = _playerAkaProvider.GetAkaDataByPreferences(battleTag, settings);

            await _playerRepository.UpsertPlayer(player);

            return(Ok(player));
        }
Пример #5
0
        public async Task <bool> UpdatePicture(string battleTag, SetPictureCommand command)
        {
            var setting = await _personalSettingsRepository.Load(battleTag);

            if (setting == null)
            {
                var playerProfile = await _playerRepository.LoadPlayerProfile(battleTag);

                setting = new PersonalSetting(battleTag, new List <PlayerOverallStats> {
                    playerProfile
                });
            }

            var result = setting.SetProfilePicture(command);

            if (!result)
            {
                return(false);
            }

            await _personalSettingsRepository.Save(setting);

            return(true);
        }
Пример #6
0
        public async Task Update()
        {
            var nextEvents = await _eventRepository.LoadStartedMatches();

            while (nextEvents.Any())
            {
                foreach (var nextEvent in nextEvents)
                {
                    if (nextEvent.match.gameMode != CommonValueObjects.GameMode.CUSTOM)
                    {
                        var matchup = OnGoingMatchup.Create(nextEvent);

                        foreach (var team in matchup.Teams)
                        {
                            foreach (var player in team.Players)
                            {
                                var foundMatchForPlayer = await _matchRepository.LoadOnGoingMatchForPlayer(player.BattleTag);

                                if (foundMatchForPlayer != null)
                                {
                                    await _matchRepository.DeleteOnGoingMatch(foundMatchForPlayer.MatchId);
                                }

                                var personalSettings = await _personalSettingsRepository.Load(player.BattleTag);

                                if (personalSettings != null)
                                {
                                    player.CountryCode = personalSettings.CountryCode;
                                }
                            }
                        }

                        await _matchRepository.InsertOnGoingMatch(matchup);
                    }

                    await _eventRepository.DeleteStartedEvent(nextEvent.Id);
                }

                nextEvents = await _eventRepository.LoadStartedMatches();
            }
        }