mirror of
https://github.com/DrMboga/WotBlitzStatisticsBlazor.git
synced 2026-10-21 02:17:20 +02:00
Mongo db saving
This commit is contained in:
1 parent
36be21e61c
commit
71c0240437
18 files changed
+217
-22
No files matched your search
@@ -5,6 +5,7 @@ using System.Threading.Tasks;
|
||||
using AutoMapper;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
using WotBlitzStatisticsPro.Common.Model;
|
||||
using WotBlitzStatisticsPro.DataAccess;
|
||||
using WotBlitzStatisticsPro.WgApiClient;
|
||||
using WotBlitzStatisticsPro.WgApiClient.Model;
|
||||
|
||||
@@ -13,13 +14,16 @@ namespace WotBlitzStatisticsPro.Logic.Dictionaries
|
||||
public class StaticDictionariesUpdater : IDictionaryUpdater
|
||||
{
|
||||
private readonly IWargamingDictionariesApiClient _wargamingDictionariesApiClient;
|
||||
private readonly IDictionariesDataAccessor _dataAccessor;
|
||||
private readonly IMapper _mapper;
|
||||
|
||||
public StaticDictionariesUpdater(
|
||||
IWargamingDictionariesApiClient wargamingDictionariesApiClient,
|
||||
IDictionariesDataAccessor dataAccessor,
|
||||
IMapper mapper)
|
||||
{
|
||||
_wargamingDictionariesApiClient = wargamingDictionariesApiClient;
|
||||
_dataAccessor = dataAccessor;
|
||||
_mapper = mapper;
|
||||
}
|
||||
public async Task<UpdateDictionariesResponseItem> Update()
|
||||
@@ -31,11 +35,20 @@ namespace WotBlitzStatisticsPro.Logic.Dictionaries
|
||||
clanRoles,
|
||||
achievementsSections) = await GetAndMapDictionaries();
|
||||
|
||||
// ToDo: Save dictionary to Mongo
|
||||
await _dataAccessor.UpdateLanguages(languages);
|
||||
await _dataAccessor.UpdateNations(nations);
|
||||
await _dataAccessor.UpdateVehicleTypes(vehicleTypes);
|
||||
await _dataAccessor.UpdateClanRoles(clanRoles);
|
||||
await _dataAccessor.UpdateAchievementsSections(achievementsSections);
|
||||
|
||||
// ToDo: create unit tests
|
||||
|
||||
throw new System.NotImplementedException();
|
||||
return new UpdateDictionariesResponseItem
|
||||
{
|
||||
DictionaryType = DictionaryType.StaticDictionaries,
|
||||
Description =
|
||||
$"Updated {languages.Count} items in Languages dictionary; {nations.Count} items in Nations dictionary; {vehicleTypes.Count} items in VehicleTypes dictionary; {clanRoles.Count} items in ClanRoles dictionary; {achievementsSections.Count} items in AchievementsSections dictionary"
|
||||
};
|
||||
}
|
||||
|
||||
private async Task<(
|
||||
@@ -86,12 +99,13 @@ namespace WotBlitzStatisticsPro.Logic.Dictionaries
|
||||
{
|
||||
destinationItem = new NationDictionary
|
||||
{
|
||||
NationId = source.Key, NationNames = new Dictionary<RequestLanguage, string>()
|
||||
NationId = source.Key, NationNames = new List<LocalizableString>()
|
||||
};
|
||||
destinationDictionary.Add(destinationItem);
|
||||
}
|
||||
|
||||
destinationItem.NationNames[requestLanguage] = source.Value;
|
||||
destinationItem.NationNames.Add(
|
||||
new LocalizableString {Language = requestLanguage, Value = source.Value});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,12 +121,13 @@ namespace WotBlitzStatisticsPro.Logic.Dictionaries
|
||||
{
|
||||
destinationItem = new VehicleTypeDictionary
|
||||
{
|
||||
VehicleTypeId = source.Key, VehicleTypeNames = new Dictionary<RequestLanguage, string>()
|
||||
VehicleTypeId = source.Key, VehicleTypeNames = new List<LocalizableString>()
|
||||
};
|
||||
destinationDictionary.Add(destinationItem);
|
||||
}
|
||||
|
||||
destinationItem.VehicleTypeNames[requestLanguage] = source.Value;
|
||||
destinationItem.VehicleTypeNames.Add(
|
||||
new LocalizableString { Language = requestLanguage, Value = source.Value });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,12 +143,13 @@ namespace WotBlitzStatisticsPro.Logic.Dictionaries
|
||||
{
|
||||
destinationItem = new ClanRoleDictionary
|
||||
{
|
||||
ClanRoleId = source.Key, ClanRoleNames = new Dictionary<RequestLanguage, string>()
|
||||
ClanRoleId = source.Key, ClanRoleNames = new List<LocalizableString>()
|
||||
};
|
||||
destinationDictionary.Add(destinationItem);
|
||||
}
|
||||
|
||||
destinationItem.ClanRoleNames[requestLanguage] = source.Value;
|
||||
destinationItem.ClanRoleNames.Add(
|
||||
new LocalizableString { Language = requestLanguage, Value = source.Value });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,12 +168,13 @@ namespace WotBlitzStatisticsPro.Logic.Dictionaries
|
||||
{
|
||||
AchievementSectionId = section.Key,
|
||||
Order = Convert.ToInt32(section.Value.Order),
|
||||
AchievementSectionNames = new Dictionary<RequestLanguage, string>()
|
||||
AchievementSectionNames = new List<LocalizableString>()
|
||||
};
|
||||
destinationDictionary.Add(destinationItem);
|
||||
}
|
||||
|
||||
destinationItem.AchievementSectionNames[requestLanguage] = section.Value.Name;
|
||||
destinationItem.AchievementSectionNames.Add(
|
||||
new LocalizableString { Language = requestLanguage, Value = section.Value.Name });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,10 @@ namespace WotBlitzStatisticsPro.Logic
|
||||
if ((updateDictionariesRequest.DictionaryTypes & dictionaryType) != 0)
|
||||
{
|
||||
var dictionaryUpdater = _dictionaryUpdaterFactoryMethod(dictionaryType);
|
||||
response.Add(await dictionaryUpdater.Update());
|
||||
if (dictionaryUpdater != null)
|
||||
{
|
||||
response.Add(await dictionaryUpdater.Update());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using AutoMapper;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using WotBlitzStatisticsPro.Common.Model;
|
||||
using WotBlitzStatisticsPro.DataAccess;
|
||||
using WotBlitzStatisticsPro.Logic.Dictionaries;
|
||||
using WotBlitzStatisticsPro.WgApiClient;
|
||||
|
||||
@@ -14,6 +15,7 @@ namespace WotBlitzStatisticsPro.Logic
|
||||
public static void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
ConfigureDictionariesFactory(services);
|
||||
WotBlitzStatisticsDataAccessInstaller.ConfigureServices(services);
|
||||
services.AddAutoMapper(typeof(WotBlitzStatisticsLogicInstaller));
|
||||
services.AddHttpClient<IWargamingApiClient, WargamingApiClient>();
|
||||
services.AddHttpClient<IWargamingDictionariesApiClient, WargamingApiClient>();
|
||||
@@ -38,8 +40,7 @@ namespace WotBlitzStatisticsPro.Logic
|
||||
case DictionaryType.Vehicles:
|
||||
return serviceProvider.GetService<VehiclesDictionaryUpdater>();
|
||||
default:
|
||||
throw new KeyNotFoundException(
|
||||
$"Unable to find service for dictionary type '{dictionaryType}'");
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\WotBlitzStatisticsPro.Common\WotBlitzStatisticsPro.Common.csproj" />
|
||||
<ProjectReference Include="..\WotBlitzStatisticsPro.DataAccess\WotBlitzStatisticsPro.DataAccess.csproj" />
|
||||
<ProjectReference Include="..\WotBlitzStatisticsPro.WgApiClient\WotBlitzStatisticsPro.WgApiClient.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
Reference in new issue
Block a user