Ex2 (integrado): decorator de cache para IWorkshopRepository + TTL por Options

This commit is contained in:
Arthur Faria
2025-10-14 19:44:18 -03:00
parent 047c1a7ddb
commit fc6f5fd1de
8 changed files with 222 additions and 2 deletions

View File

@@ -0,0 +1,23 @@
using System;
namespace CampusWorkshops.Api.Services;
/// <summary>
/// Singleton que recebe um Transient (IPerRequestClock).
/// Na prática, o Transient é resolvido uma única vez, na construção do Singleton,
/// e "vira" efetivamente singleton dentro dele.
/// </summary>
public sealed class ReportingSingleton
{
private readonly IPerRequestClock _clock;
public ReportingSingleton(IPerRequestClock clock)
{
_clock = clock;
}
public DateTimeOffset GetClockCreatedAt()
{
return _clock.CreatedAt;
}
}