diff --git a/WotBlitzStatistics.GraphQl/Mutation/WotBlitzStatisticsMutation.cs b/WotBlitzStatistics.GraphQl/Mutation/WotBlitzStatisticsMutation.cs
new file mode 100644
index 0000000..c7f4206
--- /dev/null
+++ b/WotBlitzStatistics.GraphQl/Mutation/WotBlitzStatisticsMutation.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Threading.Tasks;
+using WotBlitzStatistics.Logic;
+using WotBlitzStatisticsPro.Common.Model;
+
+namespace WotBlitzStatistics.GraphQl.Mutation
+{
+ ///
+ /// WotBlitzStatistics Mutations
+ ///
+ public class WotBlitzStatisticsMutation
+ {
+ private readonly IWargamingDictionaries _wargamingDictionaries;
+
+ public WotBlitzStatisticsMutation(IWargamingDictionaries wargamingDictionaries)
+ {
+ _wargamingDictionaries = wargamingDictionaries;
+ }
+
+ ///
+ /// Updates the necessary dictionaries in database.
+ ///
+ /// Determines what dictionaries should be updated.
+ /// Information about what was updated.
+ public Task UpdateDictionaries(
+ UpdateDictionariesRequest updateDictionariesRequest)
+ {
+ return _wargamingDictionaries.UpdateDictionaries(updateDictionariesRequest);
+ }
+ }
+}
\ No newline at end of file
diff --git a/WotBlitzStatistics.GraphQl/Query/WotBlitzStatisticsQuery.cs b/WotBlitzStatistics.GraphQl/Query/WotBlitzStatisticsQuery.cs
index 44c1060..420c2c8 100644
--- a/WotBlitzStatistics.GraphQl/Query/WotBlitzStatisticsQuery.cs
+++ b/WotBlitzStatistics.GraphQl/Query/WotBlitzStatisticsQuery.cs
@@ -7,6 +7,9 @@ namespace WotBlitzStatistics.GraphQl.Query
{
public class WotBlitzStatisticsQuery
{
+ // 571050560 - mboga Eu
+ // 90277267 - Mboga Ru
+
private readonly IWargamingSearch _wargamingSearcher;
public WotBlitzStatisticsQuery(IWargamingSearch wargamingSearcher)
diff --git a/WotBlitzStatistics.GraphQl/Startup.cs b/WotBlitzStatistics.GraphQl/Startup.cs
index eb5d480..c6a238c 100644
--- a/WotBlitzStatistics.GraphQl/Startup.cs
+++ b/WotBlitzStatistics.GraphQl/Startup.cs
@@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
+using WotBlitzStatistics.GraphQl.Mutation;
using WotBlitzStatistics.GraphQl.ObjectTypes;
using WotBlitzStatistics.GraphQl.Query;
using WotBlitzStatistics.Logic;
@@ -49,7 +50,7 @@ namespace WotBlitzStatistics.GraphQl
.AddAuthorizeDirectiveType()
.AddQueryType()
- //.AddMutationType()
+ .AddMutationType()
//.AddSubscriptionType()
.AddType()
.AddType()
diff --git a/WotBlitzStatistics.Logic/IWargamingDictionaries.cs b/WotBlitzStatistics.Logic/IWargamingDictionaries.cs
new file mode 100644
index 0000000..6e3a9cb
--- /dev/null
+++ b/WotBlitzStatistics.Logic/IWargamingDictionaries.cs
@@ -0,0 +1,11 @@
+using System.Threading.Tasks;
+using WotBlitzStatisticsPro.Common.Model;
+
+namespace WotBlitzStatistics.Logic
+{
+ public interface IWargamingDictionaries
+ {
+ Task UpdateDictionaries(
+ UpdateDictionariesRequest updateDictionariesRequest);
+ }
+}
\ No newline at end of file
diff --git a/WotBlitzStatistics.Logic/WargamingDictionaries.cs b/WotBlitzStatistics.Logic/WargamingDictionaries.cs
new file mode 100644
index 0000000..e46c2d1
--- /dev/null
+++ b/WotBlitzStatistics.Logic/WargamingDictionaries.cs
@@ -0,0 +1,25 @@
+using System.Threading.Tasks;
+using WotBlitzStatisticsPro.Common.Model;
+
+namespace WotBlitzStatistics.Logic
+{
+ public class WargamingDictionaries: IWargamingDictionaries
+ {
+ public Task UpdateDictionaries(UpdateDictionariesRequest updateDictionariesRequest)
+ {
+ if ((updateDictionariesRequest.DictionaryTypes & DictionaryType.StaticDictionaries) != 0)
+ {
+ // Update static
+ }
+ if ((updateDictionariesRequest.DictionaryTypes & DictionaryType.Achievements) != 0)
+ {
+ // Update achievements
+ }
+ if ((updateDictionariesRequest.DictionaryTypes & DictionaryType.Vehicles) != 0)
+ {
+ // Update vehicles
+ }
+ throw new System.NotImplementedException();
+ }
+ }
+}
\ No newline at end of file
diff --git a/WotBlitzStatistics.Logic/WotBlitzStatisticsLogicInstaller.cs b/WotBlitzStatistics.Logic/WotBlitzStatisticsLogicInstaller.cs
index ea0f9e9..bd79401 100644
--- a/WotBlitzStatistics.Logic/WotBlitzStatisticsLogicInstaller.cs
+++ b/WotBlitzStatistics.Logic/WotBlitzStatisticsLogicInstaller.cs
@@ -11,6 +11,7 @@ namespace WotBlitzStatistics.Logic
services.AddAutoMapper(typeof(WotBlitzStatisticsLogicInstaller));
services.AddHttpClient();
services.AddTransient();
+ services.AddTransient();
}
}
}
\ No newline at end of file
diff --git a/WotBlitzStatisticsPro.Common/Model/DictionaryType.cs b/WotBlitzStatisticsPro.Common/Model/DictionaryType.cs
new file mode 100644
index 0000000..4057087
--- /dev/null
+++ b/WotBlitzStatisticsPro.Common/Model/DictionaryType.cs
@@ -0,0 +1,32 @@
+using System;
+
+namespace WotBlitzStatisticsPro.Common.Model
+{
+ ///
+ /// List of dictionaries
+ ///
+ [Flags]
+ public enum DictionaryType
+ {
+ ///
+ /// Static dictionaries - Languages, VehicleNations, VehicleTypes, AchievementSections, ClanRoles
+ ///
+ StaticDictionaries = 1,
+ ///
+ /// Achievements
+ ///
+ Achievements = 2,
+ ///
+ /// Vehicles encyclopedia
+ ///
+ Vehicles = 4,
+ ///
+ /// Only vehicles and Achievements
+ ///
+ AchievementsAndVehicles = Achievements | Vehicles,
+ ///
+ /// All dictionaries
+ ///
+ All = StaticDictionaries | Achievements | Vehicles
+ }
+}
\ No newline at end of file
diff --git a/WotBlitzStatisticsPro.Common/Model/MarkOfMastery.cs b/WotBlitzStatisticsPro.Common/Model/MarkOfMastery.cs
index a329182..88f5392 100644
--- a/WotBlitzStatisticsPro.Common/Model/MarkOfMastery.cs
+++ b/WotBlitzStatisticsPro.Common/Model/MarkOfMastery.cs
@@ -1,11 +1,29 @@
namespace WotBlitzStatisticsPro.Common.Model
{
+ ///
+ /// Mastery
+ ///
public enum MarkOfMastery
{
+ ///
+ /// No mastery
+ ///
None = 0,
+ ///
+ /// Third mark of mastery
+ ///
Rank3 = 1,
+ ///
+ /// Second mark of mastery
+ ///
Rank2 = 2,
+ ///
+ /// First mark of mastery
+ ///
Rank1 = 3,
+ ///
+ /// Master mark
+ ///
Master = 4
}
}
diff --git a/WotBlitzStatisticsPro.Common/Model/UpdateDictionariesRequest.cs b/WotBlitzStatisticsPro.Common/Model/UpdateDictionariesRequest.cs
new file mode 100644
index 0000000..a958892
--- /dev/null
+++ b/WotBlitzStatisticsPro.Common/Model/UpdateDictionariesRequest.cs
@@ -0,0 +1,13 @@
+namespace WotBlitzStatisticsPro.Common.Model
+{
+ ///
+ /// Request for update dictionaries mutation
+ ///
+ public class UpdateDictionariesRequest
+ {
+ ///
+ /// Determines what dictionaries should be updated. Usage: StaticDictionaries | Achievements | Vehicles
+ ///
+ public DictionaryType DictionaryTypes { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/WotBlitzStatisticsPro.Common/Model/UpdateDictionariesResponseItem.cs b/WotBlitzStatisticsPro.Common/Model/UpdateDictionariesResponseItem.cs
new file mode 100644
index 0000000..8c31278
--- /dev/null
+++ b/WotBlitzStatisticsPro.Common/Model/UpdateDictionariesResponseItem.cs
@@ -0,0 +1,18 @@
+namespace WotBlitzStatisticsPro.Common.Model
+{
+ ///
+ /// Represents the response of the Update dictionaries mutation
+ ///
+ public class UpdateDictionariesResponseItem
+ {
+ ///
+ /// Type of updated dictionary
+ ///
+ public DictionaryType DictionaryType { get; set; }
+
+ ///
+ /// A bit summary about what have been updated
+ ///
+ public string Description { get; set; }
+ }
+}
\ No newline at end of file