public interface IUserService {
Task<User> Get(Guid id, CancellationToken cancellationToken);
}
public class CachedUserService : IUserService {
...
public async Task<User> Get(Guid id, CancellationToken cancellationToken) {
if (_cache.TryGetValue(id, out User cachedUser))
return cachedUser;
var request = new UserByIdRequest(id);
var user = await _mediator.Send(request);
return user;
}
}
public class Sample {
private readonly IUserService _userService;
public Sample(IUserService userService) =>
_userService = userService;
// terrible example
public async Task PrintUsername(Guid userId) {
User user = await _userService.Get(userId);
if (user is null) {
Console.WriteLine($"User `{userId}` not found.");
return;
}
Console.WriteLine($"User `{userId}` has a username of `{user.Username ?? "null"}`.");
}
}
public interface IUserService {
Task<User> Get(Guid id, CancellationToken cancellationToken);
}
public class CachedUserService : IUserService {
...
public async Task<User> Get(Guid id, CancellationToken cancellationToken) {
if (_cache.TryGetValue(id, out User cachedUser))
return cachedUser;
var request = new UserByIdRequest(id);
var user = await _mediator.Send(request);
return user;
}
}
public class Sample {
private readonly IUserService _userService;
public Sample(IUserService userService) =>
_userService = userService;
// terrible example
public async Task PrintUsername(Guid userId) {
User user = await _userService.Get(userId);
if (user is null) {
Console.WriteLine($"User `{userId}` not found.");
return;
}
Console.WriteLine($"User `{userId}` has a username of `{user.Username ?? "null"}`.");
}
}