/// <summary>
        /// Uses both platform detection to find a player. Not as accurate or fast as providing a platform.
        /// </summary>
        /// <param name="username"></param>
        /// <returns>A <see cref="Player"/> if it was succesfully found, otherwise returns null.</returns>
        public async Task <Player> GetPlayerAsync(string username)
        {
            if (username.IsValidBattletag() && DetectedPlatforms.Contains(Platform.Pc))
            {
                return(await GetPlayerAsync(username, Platform.Pc));
            }
            if (!username.IsValidPsnId() && !username.IsValidXblId())
            {
                throw new ArgumentException("Not a valid XBL, PSN or Battlenet ID", nameof(username));
            }
            var player = new Player {
                Username = username
            };
            var result = await _profileClient.GetProfileDetectPlatform(player);

            return(await _profileParser.Parse(player, result));
        }