using Microsoft.Extensions.Caching.Memory; namespace WebVentaCoche.Services { public class VerificationService { private readonly IMemoryCache _cache; public VerificationService(IMemoryCache cache) { _cache = cache; } public void SaveVerificationCode(string email, int code, string token, TimeSpan expiration) { var cacheKey = GetCacheKey(email); var data = (Code: code, Token: token, Expiration: DateTime.UtcNow.Add(expiration)); _cache.Set(cacheKey, data, expiration); } public (int Code, string Token, DateTime Expiration)? GetVerificationCode(string email) { var cacheKey = GetCacheKey(email); if (_cache.TryGetValue(cacheKey, out (int Code, string Token, DateTime Expiration) data)) { return data; } return null; } public void RemoveVerificationCode(string email) { var cacheKey = GetCacheKey(email); _cache.Remove(cacheKey); } private string GetCacheKey(string email) { return $"Verification_{email}"; } } }