public async Task UpsertSpecialPortraits(PortraitsCommand command)
        {
            var settings = await _personalSettingsRepository.LoadMany(command.BnetTags.ToArray());

            var validPortraits = await _portraitRepository.LoadPortraitDefinitions();

            foreach (var playerSettings in settings)
            {
                var specialPortraitsList = new List <SpecialPicture>(playerSettings.SpecialPictures);
                foreach (var portraitId in command.Portraits)
                {
                    if (!specialPortraitsList.Exists(x => x.PictureId == portraitId) &&
                        validPortraits.Any(x => x.Id == portraitId.ToString()))
                    {
                        specialPortraitsList.Add(new SpecialPicture(portraitId, command.Tooltip));
                    }
                }
                playerSettings.UpdateSpecialPictures(specialPortraitsList.ToArray());
            }

            await _personalSettingsRepository.SaveMany(settings);
        }
Пример #2
0
        public async Task <IActionResult> GetPersonalSettings(string commaSeparatedBattleTags)
        {
            var splitBattleTags = commaSeparatedBattleTags.Split(new string[] { "," }, System.StringSplitOptions.RemoveEmptyEntries);

            var settings = await _personalSettingsRepository.LoadMany(splitBattleTags);

            if (settings != null)
            {
                return(Ok(settings.Select(x => new {
                    x.Id,
                    x.CountryCode,
                    x.Location,
                    x.ProfilePicture
                })));
            }

            return(Ok(new object[0]));
        }
Пример #3
0
        public async Task PopulatePlayerInfos(List <OnGoingMatchup> matches)
        {
            var battleTags       = matches.SelectMany(match => match.Teams).SelectMany(team => team.Players).Select(player => player.BattleTag);
            var personalSettings = await _personalSettingsRepository.LoadMany(battleTags.ToArray());

            foreach (var match in matches)
            {
                foreach (var team in match.Teams)
                {
                    foreach (var player in team.Players)
                    {
                        var settings = personalSettings.Find(s => s.Id == player.BattleTag && s.Twitch != null);

                        if (settings != null)
                        {
                            player.Twitch = settings.Twitch;
                        }
                    }
                }
            }
        }