1
0
mirror of synced 2024-12-19 01:35:53 +01:00
GC-local-server-rewrite/Application/Jobs/MaintainNullValuesJob.cs

42 lines
1.6 KiB
C#
Raw Normal View History

2023-02-16 08:26:13 +01:00
using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.Logging;
using Quartz;
namespace Application.Jobs;
2023-02-22 18:15:53 +01:00
public class MaintainNullValuesJob : IJob
2023-02-16 08:26:13 +01:00
{
2023-02-22 18:15:53 +01:00
private readonly ILogger<MaintainNullValuesJob> logger;
2023-02-16 08:26:13 +01:00
private readonly ICardDbContext cardDbContext;
2023-02-22 18:15:53 +01:00
public static readonly JobKey KEY = new("MaintainNullValuesJob");
2023-02-16 08:26:13 +01:00
2023-02-22 18:15:53 +01:00
public MaintainNullValuesJob(ILogger<MaintainNullValuesJob> logger, ICardDbContext cardDbContext)
2023-02-16 08:26:13 +01:00
{
this.logger = logger;
this.cardDbContext = cardDbContext;
}
[SuppressMessage("ReSharper.DPA", "DPA0007: Large number of DB records",
Justification = "All details might be read")]
2023-02-16 09:04:38 +01:00
[SuppressMessage("ReSharper.DPA", "DPA0006: Large number of DB commands")]
2023-02-16 08:26:13 +01:00
public async Task Execute(IJobExecutionContext context)
{
logger.LogInformation("Starting changing null values in card detail table");
2023-02-16 09:04:38 +01:00
var details = await cardDbContext.CardDetails.Where(detail => detail.LastPlayTenpoId == null ||
2023-02-22 18:15:53 +01:00
detail.LastPlayTenpoId == "GC local server"
|| detail.LastPlayTime == null).ToListAsync();
details.ForEach(detail =>
{
detail.LastPlayTenpoId = "1337";
detail.LastPlayTime = DateTime.MinValue;
});
2023-02-16 08:26:13 +01:00
cardDbContext.CardDetails.UpdateRange(details);
var count = await cardDbContext.SaveChangesAsync(new CancellationToken());
logger.LogInformation("Updated {Count} entries in card detail table", count);
}
}