Chore: Some API fixes

This commit is contained in:
Mikhail Shabanov committed 2021-02-26 16:56:39 +01:00
1 parent f2f0b4e195
commit d0bee3a055
5 files changed
+36 -9

No files matched your search

@@ -149,9 +149,19 @@ namespace WotBlitzStatisticsPro.Common.Model
public decimal AvgXp => Battles == 0 ? 0m : (decimal)Xp / Battles; public decimal AvgXp => Battles == 0 ? 0m : (decimal)Xp / Battles;
/// <summary> /// <summary>
/// All player's tanks /// Damage coefficient
/// </summary> /// </summary>
public List<TankInfoResponse>? Tanks { get; set; } public decimal DamageCoefficient => DamageReceived == 0 ? 0m : (decimal) DamageDealt / DamageReceived;
/// <summary>
/// Rate of survival
/// </summary>
public decimal SurvivalRate => Battles == 0 ? 0m : (decimal) 100 * SurvivedBattles / Battles;
/// <summary>
/// All player's tanks
/// </summary>
public List<TankInfoResponse>? Tanks { get; set; }
} }
} }
@@ -147,6 +147,17 @@ namespace WotBlitzStatisticsPro.Common.Model
/// </summary> /// </summary>
public decimal AvgXp => (decimal) Xp / Battles; public decimal AvgXp => (decimal) Xp / Battles;
/// <summary>
/// Damage coefficient
/// </summary>
public decimal DamageCoefficient => DamageReceived == 0 ? 0m : (decimal)DamageDealt / DamageReceived;
/// <summary>
/// Rate of survival
/// </summary>
public decimal SurvivalRate => (decimal)100 * SurvivedBattles / Battles;
/// <summary> /// <summary>
/// Tank name /// Tank name
/// </summary> /// </summary>
@@ -18,5 +18,7 @@ namespace WotBlitzStatisticsPro.Logic.AccountInformationPipeline
public AccountInfo? DbAccountInfo { get; set; } public AccountInfo? DbAccountInfo { get; set; }
// ToDo: In the future, there should be the way to skip some operations in the pipe. Now we use this dummy flag...
public bool NeedToSaveData { get; set; }
} }
} }
@@ -19,13 +19,10 @@ namespace WotBlitzStatisticsPro.Logic.AccountInformationPipeline.Operations
{ {
var contextData = context.Get<AccountInformationPipelineContextData>(); var contextData = context.Get<AccountInformationPipelineContextData>();
if (contextData.DbAccountInfo == null || contextData.NeedToSaveData = contextData.DbAccountInfo == null ||
contextData.DbAccountInfo.LastBattleTime < contextData.AccountInfo?.LastBattleTime) contextData.DbAccountInfo.LastBattleTime <
{ contextData.AccountInfo?.LastBattleTime;
if (next != null) return next.Invoke(context); return next != null ? next.Invoke(context) : Task.CompletedTask;
}
_logger.LogInformation($"Exiting without saving. Db LastBattleTime: {contextData.DbAccountInfo?.LastBattleTime}, WG LastBattleTime: {contextData.AccountInfo?.LastBattleTime}");
return Task.CompletedTask;
} }
} }
} }
@@ -26,6 +26,13 @@ namespace WotBlitzStatisticsPro.Logic.AccountInformationPipeline.Operations
{ {
var contextData = context.Get<AccountInformationPipelineContextData>(); var contextData = context.Get<AccountInformationPipelineContextData>();
if (!contextData.NeedToSaveData)
{
_logger.LogInformation($"Proceeding without saving. Db LastBattleTime: {contextData.DbAccountInfo?.LastBattleTime}, WG LastBattleTime: {contextData.AccountInfo?.LastBattleTime}");
if (next != null) await next.Invoke(context);
return;
}
if (contextData?.AccountInfo == null || if (contextData?.AccountInfo == null ||
contextData?.AccountInfoHistory == null || contextData?.AccountInfoHistory == null ||
contextData?.Tanks == null || contextData?.Tanks == null ||