chore: graph ql errors more info. Plus vehicle dictionary mapping error fix

This commit is contained in:
Mikhail Shabanov committed 2022-08-20 17:16:57 +02:00
1 parent 7d524fcdcd
commit 416f631d3f
7 files changed
+20 -15

No files matched your search

@@ -92,7 +92,7 @@ namespace WotBlitzStatisticsPro.Blazor.Tests.Services
players.Should().NotBeNull();
players.Should().NotBeEmpty();
_findPlayersQueryMock.Verify(q => q.ExecuteAsync(expectedSearch, expectedRealm, It.IsAny<RequestLanguage>(), It.IsAny<CancellationToken>()), Times.Once);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
}
[Test]
@@ -107,7 +107,7 @@ namespace WotBlitzStatisticsPro.Blazor.Tests.Services
players.Should().BeNull();
_findPlayersQueryMock.Verify(q => q.ExecuteAsync(expectedSearch, expectedRealm, It.IsAny<RequestLanguage>(), It.IsAny<CancellationToken>()), Times.Once);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once);
}
@@ -123,7 +123,7 @@ namespace WotBlitzStatisticsPro.Blazor.Tests.Services
clans.Should().NotBeNull();
clans.Should().NotBeEmpty();
_findClanQueryMock.Verify(q => q.ExecuteAsync(expectedSearch, expectedRealm, It.IsAny<RequestLanguage>(), It.IsAny<CancellationToken>()), Times.Once);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
}
@@ -139,7 +139,7 @@ namespace WotBlitzStatisticsPro.Blazor.Tests.Services
players.Should().BeNull();
_findClanQueryMock.Verify(q => q.ExecuteAsync(expectedSearch, expectedRealm, It.IsAny<RequestLanguage>(), It.IsAny<CancellationToken>()), Times.Once);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once);
}
[Test]
@@ -156,7 +156,7 @@ namespace WotBlitzStatisticsPro.Blazor.Tests.Services
playerInfoResponse.achievementsBySection.Should().NotBeEmpty();
_playerQueryMock.Verify(q => q.ExecuteAsync(CurrentAccountId, expectedRealm, It.IsAny<RequestLanguage>(), It.IsAny<CancellationToken>()), Times.Once);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
}
[Test]
@@ -172,7 +172,7 @@ namespace WotBlitzStatisticsPro.Blazor.Tests.Services
playerInfoResponse.achievementsBySection.Should().BeNull();
_playerQueryMock.Verify(q => q.ExecuteAsync(CurrentAccountId, expectedRealm, It.IsAny<RequestLanguage>(), It.IsAny<CancellationToken>()), Times.Once);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
_notificationServiceMock.Verify(n => n.ReportError(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once);
}
private async Task SetUpFindPlayers()
@@ -57,7 +57,7 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
}
catch (System.Exception e)
{
Notifications.ReportError("Can not get data from backend", e.Message);
Notifications.ReportError("Can not get data from backend", e.Message, e.StackTrace);
}
}
}
@@ -76,7 +76,7 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
{
TreeItems.Clear();
Connections.Clear();
var vehiclesTree = VehiclesLibrary.Where(v => v.IsPremium == false).ToList();
var vehiclesTree = VehiclesLibrary?.Where(v => v != null && v.IsPremium == false).ToList();
for (int tier = 1; tier < 11; tier++)
{
var vehiclesByTier = vehiclesTree.Where(v => v.Tier == tier).ToList();
@@ -279,7 +279,7 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
}
catch (System.Exception e)
{
Notifications.ReportError("Can not get data from backend", e.Message);
Notifications.ReportError("Can not get data from backend", e.Message, e.StackTrace);
}
}
@@ -132,6 +132,10 @@ namespace WotBlitzStatisticsPro.Blazor.Services
{
messages.Add(message.ToString());
}
else
{
messages.Add(realError);
}
}
}
}
@@ -140,7 +144,7 @@ namespace WotBlitzStatisticsPro.Blazor.Services
if (messages.Count > 0)
{
_notificationsService.ReportError("Backend error",string.Join(";", messages));
_notificationsService.ReportError("Backend error",string.Join(";", messages), null);
}
}
}
@@ -14,6 +14,6 @@ namespace WotBlitzStatisticsPro.Blazor.Services
void ReportInfo(string summary, string message);
void ReportWarning(string summary, string message);
void ReportError(string summary, string message);
void ReportError(string summary, string message, string? stacktrace);
}
}
@@ -39,13 +39,14 @@ namespace WotBlitzStatisticsPro.Blazor.Services
_jsRuntime.InvokeVoidAsync("console.warn", summary, message);
}
public void ReportError(string summary, string message)
public void ReportError(string summary, string message, string? stacktrace)
{
Type = NotificationType.Error;
Message = message;
Summary = summary;
MessageArrived?.Invoke();
_jsRuntime.InvokeVoidAsync("console.error", summary, message);
Console.WriteLine(message);
_jsRuntime.InvokeVoidAsync("console.error", summary, string.IsNullOrEmpty(stacktrace) ? message : $"{message}; {stacktrace}");
}
}
}
@@ -42,10 +42,10 @@ namespace WotBlitzStatisticsPro.Logic.Mappers
CreateMap<IVehiclesDictionary, VehicleResponse>()
.ForMember(v => v.Name,
o => o.MapFrom((src, dest, destMember, context) =>
src.Name.FirstOrDefault(l => l.Language == (RequestLanguage) context.Items["language"])?.Value))
src.Name.FirstOrDefault(l => l.Language == (RequestLanguage) context.Items["language"])?.Value ?? string.Empty))
.ForMember(v => v.Description,
o => o.MapFrom((src, dest, destMember, context) =>
src.Description.FirstOrDefault(l => l.Language == (RequestLanguage) context.Items["language"])?.Value))
src.Description.FirstOrDefault(l => l.Language == (RequestLanguage) context.Items["language"])?.Value ?? string.Empty))
.ForMember(v => v.NexTanksInTree,
o => o.MapFrom(src => src.NexTanksInTree.Select(t => t.TankId).ToList()))
;