using System.Security.Claims; namespace WhatApi.Middleware; public class UserLastSeenMiddleware(RequestDelegate next) { public async Task InvokeAsync(HttpContext context, AppDatabase db) { 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); } }