summaryrefslogtreecommitdiffstats
path: root/api/WhatApi/Middleware/UserLastSeenMiddleware.cs
blob: e52f890921b9363a9dbde68674101ea2ea747ff2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System.Security.Claims;

namespace WhatApi.Middleware;

public class UserLastSeenMiddleware(RequestDelegate next, Database db)
{
    public async Task InvokeAsync(HttpContext context) {
        var userIdString = context.User.FindFirstValue(ClaimTypes.NameIdentifier);
        if (Guid.TryParse(userIdString, out var userId)) {
            var user = await db.Users.FirstOrDefaultAsync(c => c.Id == userId);
            if (user is not null) {
                user.LastSeen = DateTimeOffset.UtcNow;
                await db.SaveChangesAsync();
            }
        }
        await next(context);
    }
}