Ensure game is updated when save path is added/updated/deleted
This commit is contained in:
parent
38db011de8
commit
6bcbc0e9e5
1 changed files with 39 additions and 3 deletions
|
|
@ -1,6 +1,7 @@
|
|||
using AutoMapper;
|
||||
using AutoMapper;
|
||||
using LANCommander.Server.Data;
|
||||
using LANCommander.Server.Data.Models;
|
||||
using LANCommander.Server.Services.Extensions;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
|
@ -18,18 +19,53 @@ namespace LANCommander.Server.Services
|
|||
{
|
||||
public override async Task<SavePath> AddAsync(SavePath entity)
|
||||
{
|
||||
return await base.AddAsync(entity, async context =>
|
||||
var added = await base.AddAsync(entity, async context =>
|
||||
{
|
||||
await context.UpdateRelationshipAsync(sp => sp.Game);
|
||||
});
|
||||
|
||||
await TouchGameAsync(added.GameId);
|
||||
|
||||
return added;
|
||||
}
|
||||
|
||||
public async override Task<SavePath> UpdateAsync(SavePath entity)
|
||||
{
|
||||
return await base.UpdateAsync(entity, async context =>
|
||||
var updated = await base.UpdateAsync(entity, async context =>
|
||||
{
|
||||
await context.UpdateRelationshipAsync(sp => sp.Game);
|
||||
});
|
||||
|
||||
await TouchGameAsync(updated.GameId);
|
||||
|
||||
return updated;
|
||||
}
|
||||
|
||||
public override async Task DeleteAsync(SavePath entity)
|
||||
{
|
||||
var gameId = entity.GameId;
|
||||
|
||||
await base.DeleteAsync(entity);
|
||||
|
||||
await TouchGameAsync(gameId);
|
||||
}
|
||||
|
||||
private async Task TouchGameAsync(Guid? gameId)
|
||||
{
|
||||
if (!gameId.HasValue)
|
||||
return;
|
||||
|
||||
await using var context = await contextFactory.CreateDbContextAsync();
|
||||
|
||||
var game = await context.Games.FirstOrDefaultAsync(g => g.Id == gameId.Value);
|
||||
|
||||
if (game != null)
|
||||
{
|
||||
game.UpdatedOn = DateTime.UtcNow;
|
||||
await context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
await cache.ExpireGameCacheAsync(gameId.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue