public async Task <UserDto> GetUser(string chatApiKey, string battleTag)
        {
            var user = await LoadFirst <ChatUser>(c => c.ApiKey == chatApiKey);

            var userClan = await LoadFirst <ClanMembership>(c => c.Id == battleTag);

            var userSettings = await LoadFirst <PersonalSetting>(c => c.Id == battleTag);

            if (user != null)
            {
                return(new UserDto(
                           user.Name,
                           user.BattleTag,
                           userClan?.ClanId,
                           userSettings?.ProfilePicture ?? ProfilePicture.Default(),
                           true));
            }
            user = new ChatUser(battleTag);
            return(new UserDto(
                       user.Name,
                       user.BattleTag,
                       userClan?.ClanId,
                       userSettings?.ProfilePicture ?? ProfilePicture.Default(),
                       false));
        }
        public UserDto(
            string name,
            string battleTag,
            string clanTag,
            PersonalSetting personalSettings)
        {
            Name           = name;
            BattleTag      = battleTag;
            ClanTag        = clanTag;
            ProfilePicture = personalSettings?.ProfilePicture ?? ProfilePicture.Default();

            if (personalSettings != null)
            {
                Alias = personalSettings.ChatAlias;
                Color = personalSettings.ChatColor;
            }
        }