Files
WotBlitzStatisticsBlazor/WotBlitzStatisticsPro.Logic/WargamingClans.cs
T

48 lines
1.7 KiB
C#
Raw Normal View History

2021-03-19 19:49:58 +01:00
using System;
using System.Threading.Tasks;
2021-03-22 14:58:13 +01:00
using AutoMapper;
2021-03-19 19:49:58 +01:00
using WotBlitzStatisticsPro.Common.Model;
2021-03-22 14:58:13 +01:00
using WotBlitzStatisticsPro.DataAccess;
using WotBlitzStatisticsPro.WgApiClient;
using WotBlitzStatisticsPro.WgApiClient.Model;
2021-03-19 19:49:58 +01:00
namespace WotBlitzStatisticsPro.Logic
{
public class WargamingClans: IWargamingClans
{
2021-03-22 14:58:13 +01:00
private readonly IDictionariesDataAccessor _dictionariesDataAccessor;
private readonly IWargamingApiClient _wargamingApiClient;
private readonly IMapper _mapper;
2021-03-19 19:49:58 +01:00
2021-03-22 14:58:13 +01:00
public WargamingClans(
IDictionariesDataAccessor dictionariesDataAccessor,
IWargamingApiClient wargamingApiClient,
IMapper mapper)
2021-03-19 19:49:58 +01:00
{
2021-03-22 14:58:13 +01:00
_dictionariesDataAccessor = dictionariesDataAccessor;
_wargamingApiClient = wargamingApiClient;
_mapper = mapper;
}
public async Task<ClanInfoResponse?> GelClanInfoByAccount(long accountId, RealmAndLanguage queryParams)
{
var clanRoles = await _dictionariesDataAccessor.GetClanRoles(queryParams.Language);
var accountClanInfo =
await _wargamingApiClient.GetPlayerClanInfo(accountId, queryParams.Realm, queryParams.Language);
if (accountClanInfo?.ClanId == null)
{
return null;
}
var result = _mapper.Map<ClanAccountInfo, ClanInfoResponse>(accountClanInfo,
opt => opt.Items["roles"] = clanRoles);
var clanInfo = await _wargamingApiClient.GetClanInfo(accountClanInfo.ClanId.Value, queryParams.Realm,
queryParams.Language);
_mapper.Map(clanInfo, result);
return result;
2021-03-19 19:49:58 +01:00
}
}
}