Skip to content

Attributes & DI snippets

On API actions / controllers

  1. Anonymous access (no token):
c#
[AllowAnonymous]
  1. HTTP verb & route:
c#
[HttpPost("mdmzhdangerSubCount")]
  1. Skip response wrapping (default stack may wrap results):
c#
[NonUnify]
  1. Disable audit logging for this endpoint:
c#
[SuppressMonitor]
  1. Display name (e.g. Swagger):
c#
[DisplayName("Swagger login check")]

On parameters

c#

[FromBody]

[FromQuery]

[Required]

Dependency injection

Current user:

c#
UserManager _userManager;

Cache:

c#
SysCacheService sysCacheService

HTTP context:

c#
IHttpContextAccessor _httpContextAccessor

Example service:

c#
/// <summary>
/// Login / auth service
/// </summary>
[ApiDescriptionSettings(Order = 500)]
public class SysAuthService : IDynamicApiController, ITransient
{
    
    private readonly UserManager _userManager;
    private readonly SqlSugarRepository<SysUser> _sysUserRep;
    private readonly IHttpContextAccessor _httpContextAccessor;
    private readonly SysMenuService _sysMenuService;
    private readonly SysOnlineUserService _sysOnlineUserService;
    private readonly SysConfigService _sysConfigService;
    private readonly ICaptcha _captcha;
    private readonly SysCacheService _sysCacheService;
    private MatchUser matchUser= new MatchUser();
    public SysAuthService(UserManager userManager,
        SqlSugarRepository<SysUser> sysUserRep,
        IHttpContextAccessor httpContextAccessor,
        SysMenuService sysMenuService,
        SysOnlineUserService sysOnlineUserService,
        SysConfigService sysConfigService,
        ICaptcha captcha,
        SysCacheService sysCacheService)
    {
        _userManager = userManager;
        _sysUserRep = sysUserRep;
        _httpContextAccessor = httpContextAccessor;
        _sysMenuService = sysMenuService;
        _sysOnlineUserService = sysOnlineUserService;
        _sysConfigService = sysConfigService;
        _captcha = captcha;
        _sysCacheService = sysCacheService;
    }

Helpers

User-friendly error:

c#
throw Oops.Oh("The captcha is missing or expired. Request a new one.");

Log every SQL from a kit to the console:

c#
kit.println();