mirror of
https://github.com/DrMboga/WotBlitzStatisticsBlazor.git
synced 2026-10-23 19:30:06 +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
@@ -0,0 +1,66 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using MongoDB.Driver;
|
||||
using WotBlitzStatisticsPro.Common;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess
|
||||
{
|
||||
public class DictionariesDataAccessor : IDictionariesDataAccessor
|
||||
{
|
||||
private const string LanguagesCollectionName = "dictionary-languages";
|
||||
private const string NationsCollectionName = "dictionary-natons";
|
||||
private const string VehicleTypesCollectionName = "dictionary-vehicle-types";
|
||||
private const string ClanRolesCollectionName = "dictionary-clan-roles";
|
||||
private const string AchievementsSectionsCollectionName = "dictionary-achievements-sections";
|
||||
|
||||
private readonly IMongoDatabase _database;
|
||||
|
||||
public DictionariesDataAccessor(IMongoSettings settings)
|
||||
{
|
||||
var client = new MongoClient(settings.ConnectionString);
|
||||
_database = client.GetDatabase(settings.DatabaseName);
|
||||
}
|
||||
|
||||
public async Task UpdateLanguages(List<LanguageDictionary> languages)
|
||||
{
|
||||
var dbLanguages = _database.GetCollection<LanguageDictionary>(LanguagesCollectionName);
|
||||
|
||||
await dbLanguages.DeleteManyAsync(Builders<LanguageDictionary>.Filter.Empty);
|
||||
await dbLanguages.InsertManyAsync(languages);
|
||||
}
|
||||
|
||||
public async Task UpdateNations(List<NationDictionary> nations)
|
||||
{
|
||||
var dbNations = _database.GetCollection<NationDictionary>(NationsCollectionName);
|
||||
|
||||
await dbNations.DeleteManyAsync(Builders<NationDictionary>.Filter.Empty);
|
||||
await dbNations.InsertManyAsync(nations);
|
||||
}
|
||||
|
||||
public async Task UpdateVehicleTypes(List<VehicleTypeDictionary> vehicleTypes)
|
||||
{
|
||||
var dbVehicleTypes = _database.GetCollection<VehicleTypeDictionary>(VehicleTypesCollectionName);
|
||||
|
||||
await dbVehicleTypes.DeleteManyAsync(Builders<VehicleTypeDictionary>.Filter.Empty);
|
||||
await dbVehicleTypes.InsertManyAsync(vehicleTypes);
|
||||
}
|
||||
|
||||
public async Task UpdateClanRoles(List<ClanRoleDictionary> clanRoles)
|
||||
{
|
||||
var dbClanRoles = _database.GetCollection<ClanRoleDictionary>(ClanRolesCollectionName);
|
||||
|
||||
await dbClanRoles.DeleteManyAsync(Builders<ClanRoleDictionary>.Filter.Empty);
|
||||
await dbClanRoles.InsertManyAsync(clanRoles);
|
||||
}
|
||||
|
||||
public async Task UpdateAchievementsSections(List<AchievementSectionDictionary> achievementSections)
|
||||
{
|
||||
var dbAchievementSections =
|
||||
_database.GetCollection<AchievementSectionDictionary>(AchievementsSectionsCollectionName);
|
||||
|
||||
await dbAchievementSections.DeleteManyAsync(Builders<AchievementSectionDictionary>.Filter.Empty);
|
||||
await dbAchievementSections.InsertManyAsync(achievementSections);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess
|
||||
{
|
||||
public interface IDictionariesDataAccessor
|
||||
{
|
||||
Task UpdateLanguages(List<LanguageDictionary> languages);
|
||||
|
||||
Task UpdateNations(List<NationDictionary> nations);
|
||||
|
||||
Task UpdateVehicleTypes(List<VehicleTypeDictionary> vehicleTypes);
|
||||
|
||||
Task UpdateClanRoles(List<ClanRoleDictionary> clanRoles);
|
||||
|
||||
Task UpdateAchievementsSections(List<AchievementSectionDictionary> achievementSections);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess
|
||||
{
|
||||
public static class WotBlitzStatisticsDataAccessInstaller
|
||||
{
|
||||
public static void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.AddTransient<IDictionariesDataAccessor, DictionariesDataAccessor>();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.4" />
|
||||
<PackageReference Include="MongoDB.Driver" Version="2.10.4" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\WotBlitzStatisticsPro.Common\WotBlitzStatisticsPro.Common.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
Reference in new issue
Block a user