Some errors fix

This commit is contained in:
Mikhail Shabanov committed 2020-12-27 17:20:57 +01:00
1 parent 7ec01f0c58
commit ccc5c768b3
7 files changed
+58 -13

No files matched your search

@@ -16,12 +16,12 @@ namespace WotBlitzStatisticsPro.Common.Model
///<summary>
/// Account creation date
///</summary>
public DateTime CreatedAt { get; set; }
public DateTime CreatedAt { get; set; } = new DateTime(1970, 1, 1);
///<summary>
/// Last battle time
///</summary>
public DateTime LastBattleTime { get; set; }
public DateTime LastBattleTime { get; set; } = new DateTime(1970, 1, 1);
///<summary>
/// Player's nick
@@ -7,6 +7,6 @@ namespace WotBlitzStatisticsPro.Logic.Dictionaries
/// </summary>
/// <param name="dictionaryType">Dictionary type for resolving service.</param>
/// <returns>Updater service.</returns>
public delegate IDictionaryUpdater DictionariesUpdaterResolver(DictionaryType dictionaryType);
public delegate IDictionaryUpdater? DictionariesUpdaterResolver(DictionaryType dictionaryType);
}
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using AutoMapper;
using WotBlitzStatisticsPro.Common.Dictionaries;
using WotBlitzStatisticsPro.DataAccess.Model;
@@ -26,9 +27,9 @@ namespace WotBlitzStatisticsPro.Logic.Mappers
.ForMember(d => d.NormalImage,
o => o.MapFrom(s => s.Images == null ? string.Empty : s.Images["normal"]))
.ForMember(d => d.PriceCredit,
o => o.MapFrom(s => s.Cost == null ? string.Empty : s.Cost["price_credit"]))
o => o.MapFrom(s => s.Cost == null ? decimal.Zero : Convert.ToDecimal(s.Cost["price_credit"])))
.ForMember(d => d.PriceGold,
o => o.MapFrom(s => s.Cost == null ? string.Empty : s.Cost["price_gold"]))
o => o.MapFrom(s => s.Cost == null ? decimal.Zero : Convert.ToDecimal(s.Cost["price_gold"])))
.ForMember(d => d.NexTanksInTree,
o =>
o.MapFrom(s => s.NextTanks))
@@ -1,5 +1,6 @@
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using WotBlitzStatisticsPro.Common.Model;
using WotBlitzStatisticsPro.Logic.AccountInformationPipeline;
using WotBlitzStatisticsPro.Logic.AccountInformationPipeline.OperationContext;
@@ -11,15 +12,21 @@ namespace WotBlitzStatisticsPro.Logic
public class WargamingAccounts: IWargamingAccounts
{
private readonly IOperationFactory _operationFactory;
private readonly ILogger<WargamingAccounts> _logger;
public WargamingAccounts(IOperationFactory operationFactory)
public WargamingAccounts(IOperationFactory operationFactory, ILogger<WargamingAccounts> logger)
{
_operationFactory = operationFactory;
_logger = logger;
}
public async Task<AccountInfoResponse> GatherAccountInformation(RealmType realm, long accountId, RequestLanguage requestLanguage)
public async Task<AccountInfoResponse> GatherAccountInformation(RealmType realm, long accountId,
RequestLanguage requestLanguage)
{
var contextData = new AccountInformationPipelineContextData();
try
{
var context = new OperationContext(new AccountRequest(accountId, realm, requestLanguage));
context.AddOrReplace(contextData);
var pipeline = new Pipeline<IOperationContext>(_operationFactory);
@@ -38,12 +45,23 @@ namespace WotBlitzStatisticsPro.Logic
.ConfigureAwait(false);
}
}
catch (Exception e)
{
_logger.LogError(e, "GatherAccountInformation error");
throw;
}
return contextData?.Response ?? new AccountInfoResponse();
}
public async Task<AccountInfoResponse> GatherAndSaveAccountInformation(RealmType realm, long accountId, RequestLanguage requestLanguage)
{
var contextData = new AccountInformationPipelineContextData();
try
{
var context = new OperationContext(new AccountRequest(accountId, realm, requestLanguage));
context.AddOrReplace(contextData);
var pipeline = new Pipeline<IOperationContext>(_operationFactory);
@@ -64,13 +82,21 @@ namespace WotBlitzStatisticsPro.Logic
.Invoke(context, null)
.ConfigureAwait(false);
}
}
catch (Exception e)
{
_logger.LogError(e, "GatherAndSaveAccountInformation error");
throw;
}
return contextData?.Response ?? new AccountInfoResponse();
}
public async Task<AccountInfoHistoryResponse> GetAccountInfoHistory(RealmType realm, long accountId, DateTime startDate, RequestLanguage requestLanguage)
{
var contextData = new AccountHistoryInformationPipelineContextData(startDate);
try
{
var context = new OperationContext(new AccountRequest(accountId, realm, requestLanguage));
context.AddOrReplace(contextData);
var pipeline = new Pipeline<IOperationContext>(_operationFactory);
@@ -92,7 +118,12 @@ namespace WotBlitzStatisticsPro.Logic
.Invoke(context, null)
.ConfigureAwait(false);
}
}
catch (Exception e)
{
_logger.LogError(e, "GetAccountInfoHistory error");
throw;
}
return contextData?.Response ?? new AccountInfoHistoryResponse();
}
}
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using WotBlitzStatisticsPro.Common.Model;
using WotBlitzStatisticsPro.Logic.Dictionaries;
@@ -9,17 +10,21 @@ namespace WotBlitzStatisticsPro.Logic
public class WargamingDictionaries: IWargamingDictionaries
{
private readonly DictionariesUpdaterResolver _dictionaryUpdaterFactoryMethod;
private readonly ILogger<WargamingDictionaries> _logger;
public WargamingDictionaries(DictionariesUpdaterResolver dictionaryUpdaterFactoryMethod)
public WargamingDictionaries(DictionariesUpdaterResolver dictionaryUpdaterFactoryMethod, ILogger<WargamingDictionaries> logger)
{
_dictionaryUpdaterFactoryMethod = dictionaryUpdaterFactoryMethod;
_logger = logger;
}
public async Task<UpdateDictionariesResponseItem[]> UpdateDictionaries(UpdateDictionariesRequest updateDictionariesRequest)
{
var response = new List<UpdateDictionariesResponseItem>();
foreach (var dictionaryType in (DictionaryType[])Enum.GetValues(typeof(DictionaryType)))
try
{
foreach (var dictionaryType in (DictionaryType[]) Enum.GetValues(typeof(DictionaryType)))
{
if ((updateDictionariesRequest.DictionaryTypes & dictionaryType) != 0)
{
@@ -30,6 +35,12 @@ namespace WotBlitzStatisticsPro.Logic
}
}
}
}
catch (Exception e)
{
_logger.LogError(e, "UpdateDictionaries error");
throw;
}
return response.ToArray();
}
@@ -49,7 +49,7 @@ namespace WotBlitzStatisticsPro.Logic
DictionaryType.StaticDictionaries => serviceProvider.GetService<StaticDictionariesUpdater>()!,
DictionaryType.Achievements => serviceProvider.GetService<AchievementsDictionaryUpdater>()!,
DictionaryType.Vehicles => serviceProvider.GetService<VehiclesDictionaryUpdater>()!,
_ => throw new ApplicationException($"Unknown dictionary type '{dictionaryType}'")
_ => null
};
});
}
@@ -1,5 +1,6 @@
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Moq;
using NUnit.Framework;
using WotBlitzStatisticsPro.Common.Model;
@@ -40,7 +41,8 @@ namespace WotBlitzStatisticsPro.Tests.DictionariesTests
var services = serviceProvider.BuildServiceProvider();
_wargamingDictionaries = new WargamingDictionaries(services.GetService<DictionariesUpdaterResolver>());
_wargamingDictionaries = new WargamingDictionaries(services.GetService<DictionariesUpdaterResolver>(),
(new Mock<ILogger<WargamingDictionaries>>()).Object);
}
[Test]