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); }
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])); }
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; } } } } }