1
0
mirror of synced 2024-12-20 02:05:52 +01:00
GC-local-server-rewrite/Application/Jobs/MaintainTenpoIdJob.cs
2023-02-16 15:26:13 +08:00

37 lines
1.3 KiB
C#

using System.Diagnostics.CodeAnalysis;
using Application.Interfaces;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Quartz;
namespace Application.Jobs;
public class MaintainTenpoIdJob : IJob
{
private readonly ILogger<MaintainTenpoIdJob> logger;
private readonly ICardDbContext cardDbContext;
public static readonly JobKey KEY = new("MaintainTenpoIdJob");
public MaintainTenpoIdJob(ILogger<MaintainTenpoIdJob> logger, ICardDbContext cardDbContext)
{
this.logger = logger;
this.cardDbContext = cardDbContext;
}
[SuppressMessage("ReSharper.DPA", "DPA0007: Large number of DB records",
Justification = "All details might be read")]
public async Task Execute(IJobExecutionContext context)
{
logger.LogInformation("Starting changing null values in card detail table");
var details = await cardDbContext.CardDetails.Where(detail => detail.LastPlayTenpoId == null).ToListAsync();
details.ForEach(detail => detail.LastPlayTenpoId="1337");
cardDbContext.CardDetails.UpdateRange(details);
var count = await cardDbContext.SaveChangesAsync(new CancellationToken());
logger.LogInformation("Updated {Count} entries in card detail table", count);
}
}