mirror of
https://github.com/DrMboga/WotBlitzStatisticsBlazor.git
synced 2026-10-21 10:27:18 +02:00
Dictionaries DB structure refactored
This commit is contained in:
1 parent
9b80314b92
commit
6c10c6c654
25 files changed
+251
-117
No files matched your search
@@ -1,8 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using MongoDB.Driver;
|
||||
using WotBlitzStatisticsPro.Common;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
using WotBlitzStatisticsPro.DataAccess.Model;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess
|
||||
{
|
||||
@@ -24,63 +26,70 @@ namespace WotBlitzStatisticsPro.DataAccess
|
||||
_database = client.GetDatabase(settings.DatabaseName);
|
||||
}
|
||||
|
||||
public async Task UpdateLanguages(List<LanguageDictionary> languages)
|
||||
public async Task UpdateLanguages(List<ILanguageDictionary> languages)
|
||||
{
|
||||
var dbLanguages = _database.GetCollection<LanguageDictionary>(LanguagesCollectionName);
|
||||
var dbLanguages = _database.GetCollection<ILanguageDictionary>(LanguagesCollectionName);
|
||||
|
||||
await dbLanguages.DeleteManyAsync(Builders<LanguageDictionary>.Filter.Empty);
|
||||
await dbLanguages.DeleteManyAsync(Builders<ILanguageDictionary>.Filter.Empty);
|
||||
await dbLanguages.InsertManyAsync(languages);
|
||||
}
|
||||
|
||||
public async Task UpdateNations(List<NationDictionary> nations)
|
||||
public async Task UpdateNations(List<INationDictionary> nations)
|
||||
{
|
||||
var dbNations = _database.GetCollection<NationDictionary>(NationsCollectionName);
|
||||
var dbNations = _database.GetCollection<INationDictionary>(NationsCollectionName);
|
||||
|
||||
await dbNations.DeleteManyAsync(Builders<NationDictionary>.Filter.Empty);
|
||||
await dbNations.DeleteManyAsync(Builders<INationDictionary>.Filter.Empty);
|
||||
await dbNations.InsertManyAsync(nations);
|
||||
}
|
||||
|
||||
public async Task UpdateVehicleTypes(List<VehicleTypeDictionary> vehicleTypes)
|
||||
public async Task UpdateVehicleTypes(List<IVehicleTypeDictionary> vehicleTypes)
|
||||
{
|
||||
var dbVehicleTypes = _database.GetCollection<VehicleTypeDictionary>(VehicleTypesCollectionName);
|
||||
var dbVehicleTypes = _database.GetCollection<IVehicleTypeDictionary>(VehicleTypesCollectionName);
|
||||
|
||||
await dbVehicleTypes.DeleteManyAsync(Builders<VehicleTypeDictionary>.Filter.Empty);
|
||||
await dbVehicleTypes.DeleteManyAsync(Builders<IVehicleTypeDictionary>.Filter.Empty);
|
||||
await dbVehicleTypes.InsertManyAsync(vehicleTypes);
|
||||
}
|
||||
|
||||
public async Task UpdateClanRoles(List<ClanRoleDictionary> clanRoles)
|
||||
public async Task UpdateClanRoles(List<IClanRoleDictionary> clanRoles)
|
||||
{
|
||||
var dbClanRoles = _database.GetCollection<ClanRoleDictionary>(ClanRolesCollectionName);
|
||||
var dbClanRoles = _database.GetCollection<IClanRoleDictionary>(ClanRolesCollectionName);
|
||||
|
||||
await dbClanRoles.DeleteManyAsync(Builders<ClanRoleDictionary>.Filter.Empty);
|
||||
await dbClanRoles.DeleteManyAsync(Builders<IClanRoleDictionary>.Filter.Empty);
|
||||
await dbClanRoles.InsertManyAsync(clanRoles);
|
||||
}
|
||||
|
||||
public async Task UpdateAchievementsSections(List<AchievementSectionDictionary> achievementSections)
|
||||
public async Task UpdateAchievementsSections(List<IAchievementSectionDictionary> achievementSections)
|
||||
{
|
||||
var dbAchievementSections =
|
||||
_database.GetCollection<AchievementSectionDictionary>(AchievementsSectionsCollectionName);
|
||||
_database.GetCollection<IAchievementSectionDictionary>(AchievementsSectionsCollectionName);
|
||||
|
||||
await dbAchievementSections.DeleteManyAsync(Builders<AchievementSectionDictionary>.Filter.Empty);
|
||||
await dbAchievementSections.DeleteManyAsync(Builders<IAchievementSectionDictionary>.Filter.Empty);
|
||||
await dbAchievementSections.InsertManyAsync(achievementSections);
|
||||
}
|
||||
|
||||
public async Task UpdateAchievements(List<AchievementDictionary> achievementDictionary)
|
||||
public async Task UpdateAchievements(List<IAchievementDictionary> achievementDictionary)
|
||||
{
|
||||
var dbAchievementSections =
|
||||
_database.GetCollection<AchievementDictionary>(AchievementsCollectionName);
|
||||
_database.GetCollection<IAchievementDictionary>(AchievementsCollectionName);
|
||||
|
||||
await dbAchievementSections.DeleteManyAsync(Builders<AchievementDictionary>.Filter.Empty);
|
||||
await dbAchievementSections.DeleteManyAsync(Builders<IAchievementDictionary>.Filter.Empty);
|
||||
await dbAchievementSections.InsertManyAsync(achievementDictionary);
|
||||
}
|
||||
|
||||
public async Task UpdateVehicles(List<VehiclesDictionary> vehiclesDictionary)
|
||||
public async Task UpdateVehicles(List<IVehiclesDictionary> vehiclesDictionary)
|
||||
{
|
||||
var dbVehicles =
|
||||
_database.GetCollection<VehiclesDictionary>(VehiclesCollectionName);
|
||||
_database.GetCollection<IVehiclesDictionary>(VehiclesCollectionName);
|
||||
|
||||
await dbVehicles.DeleteManyAsync(Builders<VehiclesDictionary>.Filter.Empty);
|
||||
await dbVehicles.DeleteManyAsync(Builders<IVehiclesDictionary>.Filter.Empty);
|
||||
await dbVehicles.InsertManyAsync(vehiclesDictionary);
|
||||
}
|
||||
|
||||
public async Task<List<ILanguageDictionary>> ReadLanguages()
|
||||
{
|
||||
var collection = await _database.GetCollection<ILanguageDictionary>(LanguagesCollectionName)
|
||||
.FindAsync(Builders<ILanguageDictionary>.Filter.Empty);
|
||||
return collection.ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,18 +6,20 @@ namespace WotBlitzStatisticsPro.DataAccess
|
||||
{
|
||||
public interface IDictionariesDataAccessor
|
||||
{
|
||||
Task UpdateLanguages(List<LanguageDictionary> languages);
|
||||
Task UpdateLanguages(List<ILanguageDictionary> languages);
|
||||
|
||||
Task UpdateNations(List<NationDictionary> nations);
|
||||
Task UpdateNations(List<INationDictionary> nations);
|
||||
|
||||
Task UpdateVehicleTypes(List<VehicleTypeDictionary> vehicleTypes);
|
||||
Task UpdateVehicleTypes(List<IVehicleTypeDictionary> vehicleTypes);
|
||||
|
||||
Task UpdateClanRoles(List<ClanRoleDictionary> clanRoles);
|
||||
Task UpdateClanRoles(List<IClanRoleDictionary> clanRoles);
|
||||
|
||||
Task UpdateAchievementsSections(List<AchievementSectionDictionary> achievementSections);
|
||||
Task UpdateAchievementsSections(List<IAchievementSectionDictionary> achievementSections);
|
||||
|
||||
Task UpdateAchievements(List<AchievementDictionary> achievementDictionary);
|
||||
Task UpdateAchievements(List<IAchievementDictionary> achievementDictionary);
|
||||
|
||||
Task UpdateVehicles(List<VehiclesDictionary> vehiclesDictionary);
|
||||
Task UpdateVehicles(List<IVehiclesDictionary> vehiclesDictionary);
|
||||
|
||||
Task<List<ILanguageDictionary>> ReadLanguages();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using System.Collections.Generic;
|
||||
using MongoDB.Bson.Serialization.Attributes;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess.Model
|
||||
{
|
||||
public class AchievementDictionary : IAchievementDictionary
|
||||
{
|
||||
[BsonId]
|
||||
public string AchievementId { get; set; }
|
||||
public List<LocalizableString> Condition { get; set; }
|
||||
public List<LocalizableString> Description { get; set; }
|
||||
public List<LocalizableString> HeroInfo { get; set; }
|
||||
public string Image { get; set; }
|
||||
public string ImageBig { get; set; }
|
||||
public List<LocalizableString> Name { get; set; }
|
||||
public long? Order { get; set; }
|
||||
public bool Outdated { get; set; }
|
||||
public string SectionId { get; set; }
|
||||
public long? SectionOrder { get; set; }
|
||||
public string Type { get; set; }
|
||||
public List<AchievementOption> Options { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System.Collections.Generic;
|
||||
using MongoDB.Bson.Serialization.Attributes;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess.Model
|
||||
{
|
||||
public class AchievementSectionDictionary: IAchievementSectionDictionary
|
||||
{
|
||||
[BsonId]
|
||||
public string AchievementSectionId { get; set; }
|
||||
public int Order { get; set; }
|
||||
public List<LocalizableString> AchievementSectionNames { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System.Collections.Generic;
|
||||
using MongoDB.Bson.Serialization.Attributes;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess.Model
|
||||
{
|
||||
public class ClanRoleDictionary : IClanRoleDictionary
|
||||
{
|
||||
[BsonId]
|
||||
public string ClanRoleId { get; set; }
|
||||
public List<LocalizableString> ClanRoleNames { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using MongoDB.Bson.Serialization.Attributes;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess.Model
|
||||
{
|
||||
public class LanguageDictionary: ILanguageDictionary
|
||||
{
|
||||
[BsonId]
|
||||
public string LanguageId { get; set; }
|
||||
|
||||
public string LanguageName { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System.Collections.Generic;
|
||||
using MongoDB.Bson.Serialization.Attributes;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess.Model
|
||||
{
|
||||
public class NationDictionary : INationDictionary
|
||||
{
|
||||
[BsonId]
|
||||
public string NationId { get; set; }
|
||||
public List<LocalizableString> NationNames { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System.Collections.Generic;
|
||||
using MongoDB.Bson.Serialization.Attributes;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess.Model
|
||||
{
|
||||
public class VehicleTypeDictionary : IVehicleTypeDictionary
|
||||
{
|
||||
[BsonId]
|
||||
public string VehicleTypeId { get; set; }
|
||||
public List<LocalizableString> VehicleTypeNames { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using System.Collections.Generic;
|
||||
using MongoDB.Bson.Serialization.Attributes;
|
||||
using WotBlitzStatisticsPro.Common.Dictionaries;
|
||||
|
||||
namespace WotBlitzStatisticsPro.DataAccess.Model
|
||||
{
|
||||
public class VehiclesDictionary : IVehiclesDictionary
|
||||
{
|
||||
[BsonId]
|
||||
public long TankId { get; set; }
|
||||
public List<LocalizableString> Name { get; set; }
|
||||
public List<LocalizableString> Description { get; set; }
|
||||
public bool IsPremium { get; set; }
|
||||
public string TypeId { get; set; }
|
||||
public string NationId { get; set; }
|
||||
public int Tier { get; set; }
|
||||
public string PreviewImage { get; set; }
|
||||
public string NormalImage { get; set; }
|
||||
public decimal PriceCredit { get; set; }
|
||||
public decimal PriceGold { get; set; }
|
||||
public List<VehiclePriceInXp> NexTanksInTree { get; set; }
|
||||
public List<VehiclePriceInXp> PriceXp { get; set; }
|
||||
public int[] Engines { get; set; }
|
||||
public int[] Guns { get; set; }
|
||||
public int[] Suspensions { get; set; }
|
||||
public int[] Turrets { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user