feat: account info mock

This commit is contained in:
Mikhail Shabanov committed 2021-05-31 16:09:16 +02:00
1 parent 53fb441b93
commit 14f848ef54
3 files changed
+280 -6

No files matched your search

@@ -1,4 +1,6 @@
using System.Text.Json;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
namespace WotBlitzStatisticsPro.Blazor.Helpers
{
@@ -6,7 +8,7 @@ namespace WotBlitzStatisticsPro.Blazor.Helpers
{
public static string Json<T>(this T data)
{
return JsonSerializer.Serialize(data, new JsonSerializerOptions { WriteIndented = true });
return JsonSerializer.Serialize(data, new JsonSerializerOptions { WriteIndented = true, Encoder = JavaScriptEncoder.Create(UnicodeRanges.BasicLatin, UnicodeRanges.Cyrillic) });
}
}
}
+2 -2
View File
@@ -42,11 +42,11 @@ namespace WotBlitzStatisticsPro.Blazor
//var useMock = Environment.GetEnvironmentVariable("USE_GRAPH_QL_MOCK");
//if (useMock != null && useMock == "true")
//{
//builder.Services.AddTransient<IGraphQlBackendService, GraphQlBackendMockService>();
builder.Services.AddTransient<IGraphQlBackendService, GraphQlBackendMockService>();
//}
//else
//{
builder.Services.AddTransient<IGraphQlBackendService, GraphQlBackendService>();
//builder.Services.AddTransient<IGraphQlBackendService, GraphQlBackendService>();
//}
var host = builder.Build();
@@ -74,9 +74,122 @@ namespace WotBlitzStatisticsPro.Blazor.Services
return result;
}
public Task<IPlayer_AccountInfo> GetPlayerInfo(long accountId, RealmType realmType)
public async Task<IPlayer_AccountInfo> GetPlayerInfo(long accountId, RealmType realmType)
{
throw new NotImplementedException();
var faker = new Faker(FakerLanguage(GetLanguage()));
var tanksCount = faker.Random.Number(10, 280);
var isClanInfo = faker.Random.Bool();
IPlayer_AccountInfo_ClanInfo clanInfo = null;
if (isClanInfo)
{
var role = GetRandomClanRole(faker, GetLanguage());
clanInfo = new Player_AccountInfo_ClanInfo_ClanInfoResponse(
faker.Random.Long(100000, 999999),
faker.Date.Past(),
role.role,
role.roleName,
faker.Lorem.Word(),
faker.Date.Past(),
faker.Random.Long(100000, 999999),
faker.Internet.UserName(),
faker.Lorem.Sentence(),
faker.Lorem.Sentence(),
faker.Random.Long(100000, 999999),
faker.Internet.UserName(),
faker.Random.Number(1, 50),
faker.Lorem.Sentence(),
faker.Hacker.Abbreviation(),
faker.Date.Past()
);
}
var tanks = new List<IPlayer_AccountInfo_Tanks>();
for (int i = 0; i < tanksCount; i++)
{
var nation = GetRandomNation(faker, GetLanguage());
var vehicleType = GetRandomVehicleType(faker, GetLanguage());
tanks.Add(new Player_AccountInfo_Tanks_TankInfoResponse(
faker.Random.Long(100000, 999999),
faker.Random.Number(500),
faker.Date.Past(),
faker.PickRandom<MarkOfMastery>(),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Double(500D, 2000D),
faker.Random.Decimal(20M, 95M),
faker.Random.Decimal(300M, 4000M),
faker.Random.Decimal(100M, 2000M),
faker.Random.Decimal(0M, 3M),
faker.Random.Decimal(5M, 95M),
faker.Random.Decimal(0M, 7M),
faker.Name.LastName(),
nation.nation,
nation.nationName,
faker.Random.Number(10),
vehicleType.vehicleType,
vehicleType.vehicleTypeName,
faker.Random.Bool(),
GetRandomPreviewImage(faker),
GetRandomLargeImage(faker)
));
}
if (_needToWait)
{
await Task.Delay(1000);
}
return new Player_AccountInfo_AccountInfoResponse(
accountId,
faker.Date.Past(),
faker.Date.Past(),
faker.Internet.UserName(),
tanks[faker.Random.Number(1, tanks.Count)].TankId,
tanks[faker.Random.Number(1, tanks.Count)].TankId,
faker.Random.Long(1, 100000),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Long(1, 9999),
faker.Random.Double(500D, 2000D),
faker.Random.Decimal(20M, 95M),
faker.Random.Decimal(300M, 4000M),
faker.Random.Decimal(100M, 2000M),
faker.Random.Decimal(0M, 3M),
faker.Random.Decimal(5M, 95M),
faker.Random.Double(2D, 9D),
clanInfo,
tanks
);
}
private string FakerLanguage(RequestLanguage language)
@@ -106,5 +219,164 @@ namespace WotBlitzStatisticsPro.Blazor.Services
return RequestLanguage.En;
}
}
private (string role, string roleName) GetRandomClanRole(Faker faker, RequestLanguage language)
{
var roles = new string[] {"executive_officer", "private", "commander"};
var roleIndex = faker.Random.Number(0, 2);
var result = (roleIndex, language) switch
{
(0, RequestLanguage.Ru) => "Заместитель командующего",
(0, RequestLanguage.En) => "Executive Officer",
(0, RequestLanguage.De) => "Ausführender Offizier",
(1, RequestLanguage.Ru) => "Боец",
(1, RequestLanguage.En) => "Private",
(1, RequestLanguage.De) => "Gefreiter",
(2, RequestLanguage.Ru) => "Командующий",
(2, RequestLanguage.En) => "Commander",
(2, RequestLanguage.De) => "Kommandant",
_ => "Unknown"
};
return (roles[roleIndex], result);
}
private (string vehicleType, string vehicleTypeName) GetRandomVehicleType(Faker faker, RequestLanguage language)
{
var types = new string[] { "heavyTank", "AT-SPG", "mediumTank", "lightTank" };
var typeIndex = faker.Random.Number(0, 3);
var result = (roleIndex: typeIndex, language) switch
{
(0, RequestLanguage.Ru) => "Тяжёлый танк",
(0, RequestLanguage.En) => "Heavy Tank",
(0, RequestLanguage.De) => "Schwere Panzer",
(1, RequestLanguage.Ru) => "ПТ-САУ",
(1, RequestLanguage.En) => "Tank Destroyer",
(1, RequestLanguage.De) => "Jagdpanzer",
(2, RequestLanguage.Ru) => "Средний танк",
(2, RequestLanguage.En) => "Medium Tank",
(2, RequestLanguage.De) => "Mittlerer Panzer",
(3, RequestLanguage.Ru) => "Легкий танк",
(3, RequestLanguage.En) => "Light Tank",
(3, RequestLanguage.De) => "Leichter Panzer",
_ => "Unknown"
};
return (types[typeIndex], result);
}
private (string nation, string nationName) GetRandomNation(Faker faker, RequestLanguage language)
{
var nations = new string[] { "usa", "france", "ussr", "china", "uk", "japan", "germany", "other", "european" };
var nationIndex = faker.Random.Number(0, 8);
var result = (roleIndex: nationIndex, language) switch
{
(0, RequestLanguage.Ru) => "США",
(0, RequestLanguage.En) => "U.S.A.",
(0, RequestLanguage.De) => "USA",
(1, RequestLanguage.Ru) => "Франция",
(1, RequestLanguage.En) => "France",
(1, RequestLanguage.De) => "Frankreich",
(2, RequestLanguage.Ru) => "СССР",
(2, RequestLanguage.En) => "U.S.S.R.",
(2, RequestLanguage.De) => "UdSSR",
(3, RequestLanguage.Ru) => "Китай",
(3, RequestLanguage.En) => "China",
(3, RequestLanguage.De) => "China",
(4, RequestLanguage.Ru) => "Великобритания",
(4, RequestLanguage.En) => "U.K.",
(4, RequestLanguage.De) => "Großbritannien",
(5, RequestLanguage.Ru) => "Япония",
(5, RequestLanguage.En) => "Japan",
(5, RequestLanguage.De) => "Japan",
(6, RequestLanguage.Ru) => "Германия",
(6, RequestLanguage.En) => "Germany",
(6, RequestLanguage.De) => "Deutschland",
(7, RequestLanguage.Ru) => "Сборная нация",
(7, RequestLanguage.En) => "Hybrid nation",
(7, RequestLanguage.De) => "Hybridnation",
(8, RequestLanguage.Ru) => "Сборная Европы",
(8, RequestLanguage.En) => "European Nation",
(8, RequestLanguage.De) => "Europäische Nation",
_ => "Unknown"
};
return (nations[nationIndex], result);
}
private string GetRandomPreviewImage(Faker faker)
{
var images = new string[]
{
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/T-34.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/Ch12_111_1_2_3.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/VK3601H.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/AMX_50B.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/GB72_AT15.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/IS-4.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/T2_lt.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/D2.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/AMX40.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/T-34-85_Victory.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/IS.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/T32.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/F19_Lorraine40t.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/PzVIB_Tiger_II.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/AMX50_Foch.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/GAZ-74b.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/S17_EMIL_1952E2.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/Pz38_NA.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/M103.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/E50_Ausf_M.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/Oth17_BDT-5A.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/GB_Vickers_Light_105.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/GB23_Centurion.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/Bat_Chatillon25t.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/M4_Sherman.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/Ch23_112.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/JagdPz_E100.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd_thumbnail/T62A.png",
};
return images[faker.Random.Number(images.Length - 1)];
}
private string GetRandomLargeImage(Faker faker)
{
var images = new string[]
{
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/T-34.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/Ch12_111_1_2_3.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/VK3601H.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/AMX_50B.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/GB72_AT15.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/IS-4.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/T2_lt.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/D2.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/AMX40.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/T-34-85_Victory.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/IS.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/T32.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/F19_Lorraine40t.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/PzVIB_Tiger_II.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/AMX50_Foch.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/GAZ-74b.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/S17_EMIL_1952E2.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/Pz38_NA.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/M103.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/E50_Ausf_M.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/Oth17_BDT-5A.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/GB_Vickers_Light_105.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/GB23_Centurion.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/Bat_Chatillon25t.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/M4_Sherman.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/Ch23_112.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/JagdPz_E100.png",
"http://glossary-eu-static.gcdn.co/icons/wotb/current/uploaded/vehicles/hd/T62A.png",
};
return images[faker.Random.Number(images.Length - 1)];
}
}
}