Ditionaries Mutation beginning

This commit is contained in:
Mikhail Shabanov committed 2020-05-21 17:53:01 +02:00
1 parent 5b88704edf
commit 3f4fdadb65
10 files changed
+154 -1

No files matched your search

@@ -0,0 +1,31 @@
using System;
using System.Threading.Tasks;
using WotBlitzStatistics.Logic;
using WotBlitzStatisticsPro.Common.Model;
namespace WotBlitzStatistics.GraphQl.Mutation
{
/// <summary>
/// WotBlitzStatistics Mutations
/// </summary>
public class WotBlitzStatisticsMutation
{
private readonly IWargamingDictionaries _wargamingDictionaries;
public WotBlitzStatisticsMutation(IWargamingDictionaries wargamingDictionaries)
{
_wargamingDictionaries = wargamingDictionaries;
}
/// <summary>
/// Updates the necessary dictionaries in database.
/// </summary>
/// <param name="updateDictionariesRequest">Determines what dictionaries should be updated.</param>
/// <returns>Information about what was updated.</returns>
public Task<UpdateDictionariesResponseItem[]> UpdateDictionaries(
UpdateDictionariesRequest updateDictionariesRequest)
{
return _wargamingDictionaries.UpdateDictionaries(updateDictionariesRequest);
}
}
}
@@ -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)
+2 -1
View File
@@ -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<WotBlitzStatisticsQuery>()
//.AddMutationType<MutationType>()
.AddMutationType<WotBlitzStatisticsMutation>()
//.AddSubscriptionType<SubscriptionType>()
.AddType<AccountsSearchItemObjectType>()
.AddType<AccountsSearchObjectType>()
@@ -0,0 +1,11 @@
using System.Threading.Tasks;
using WotBlitzStatisticsPro.Common.Model;
namespace WotBlitzStatistics.Logic
{
public interface IWargamingDictionaries
{
Task<UpdateDictionariesResponseItem[]> UpdateDictionaries(
UpdateDictionariesRequest updateDictionariesRequest);
}
}
@@ -0,0 +1,25 @@
using System.Threading.Tasks;
using WotBlitzStatisticsPro.Common.Model;
namespace WotBlitzStatistics.Logic
{
public class WargamingDictionaries: IWargamingDictionaries
{
public Task<UpdateDictionariesResponseItem[]> 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();
}
}
}
@@ -11,6 +11,7 @@ namespace WotBlitzStatistics.Logic
services.AddAutoMapper(typeof(WotBlitzStatisticsLogicInstaller));
services.AddHttpClient<IWargamingApiClient, WargamingApiClient>();
services.AddTransient<IWargamingSearch, WargamingSearch>();
services.AddTransient<IWargamingDictionaries, WargamingDictionaries>();
}
}
}
@@ -0,0 +1,32 @@
using System;
namespace WotBlitzStatisticsPro.Common.Model
{
/// <summary>
/// List of dictionaries
/// </summary>
[Flags]
public enum DictionaryType
{
/// <summary>
/// Static dictionaries - Languages, VehicleNations, VehicleTypes, AchievementSections, ClanRoles
/// </summary>
StaticDictionaries = 1,
/// <summary>
/// Achievements
/// </summary>
Achievements = 2,
/// <summary>
/// Vehicles encyclopedia
/// </summary>
Vehicles = 4,
/// <summary>
/// Only vehicles and Achievements
/// </summary>
AchievementsAndVehicles = Achievements | Vehicles,
/// <summary>
/// All dictionaries
/// </summary>
All = StaticDictionaries | Achievements | Vehicles
}
}
@@ -1,11 +1,29 @@
namespace WotBlitzStatisticsPro.Common.Model
{
/// <summary>
/// Mastery
/// </summary>
public enum MarkOfMastery
{
/// <summary>
/// No mastery
/// </summary>
None = 0,
/// <summary>
/// Third mark of mastery
/// </summary>
Rank3 = 1,
/// <summary>
/// Second mark of mastery
/// </summary>
Rank2 = 2,
/// <summary>
/// First mark of mastery
/// </summary>
Rank1 = 3,
/// <summary>
/// Master mark
/// </summary>
Master = 4
}
}
@@ -0,0 +1,13 @@
namespace WotBlitzStatisticsPro.Common.Model
{
/// <summary>
/// Request for update dictionaries mutation
/// </summary>
public class UpdateDictionariesRequest
{
/// <summary>
/// Determines what dictionaries should be updated. Usage: StaticDictionaries | Achievements | Vehicles
/// </summary>
public DictionaryType DictionaryTypes { get; set; }
}
}
@@ -0,0 +1,18 @@
namespace WotBlitzStatisticsPro.Common.Model
{
/// <summary>
/// Represents the response of the Update dictionaries mutation
/// </summary>
public class UpdateDictionariesResponseItem
{
/// <summary>
/// Type of updated dictionary
/// </summary>
public DictionaryType DictionaryType { get; set; }
/// <summary>
/// A bit summary about what have been updated
/// </summary>
public string Description { get; set; }
}
}