Files
demo-contact/ui/Sufi.Demo.PeopleDirectory.UI/Server/Controllers/BaseApiController.cs
2026-02-03 10:44:31 +08:00

27 lines
831 B
C#

using MediatR;
using Microsoft.AspNetCore.Mvc;
namespace Sufi.Demo.PeopleDirectory.UI.Server.Controllers
{
/// <summary>
/// Represent the base controller class.
/// </summary>
/// <typeparam name="T"></typeparam>
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
public abstract class BaseApiController<T> : ControllerBase
{
private IMediator? _mediatorInstance;
private ILogger<T>? _loggerInstance;
/// <summary>
/// Gets the mediator for requests/responses.
/// </summary>
protected IMediator Mediator => _mediatorInstance ??= HttpContext.RequestServices.GetRequiredService<IMediator>();
/// <summary>
/// Gets the logger for current controller.
/// </summary>
protected ILogger<T> Logger => _loggerInstance ??= HttpContext.RequestServices.GetRequiredService<ILogger<T>>();
}
}