public LinUserAddResourceValidator(LinContext linContext) { ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure; RuleFor(x => x.Username) .NotEmpty() .WithName("用户名") .WithMessage(FluentValidatorMessage.EmptyMessage) .Length(2, 10) .WithMessage(FluentValidatorMessage.MinLengthAndMaxLengthMessage) .Must(x => !linContext.LinUsers.Any(b => b.Username == x)) .WithMessage(FluentValidatorMessage.ExistedMessage); RuleFor(x => x).SetValidator(new PasswordValidator()); RuleFor(x => x.GroupId) .NotEmpty() .WithName("分组id") .WithMessage(FluentValidatorMessage.EmptyMessage) .Must(x => linContext.LinGroups.Any(b => b.Id == x)) .WithMessage(FluentValidatorMessage.NotExistedMessage); RuleFor(x => x.Email) .EmailAddress() .WithName("电子邮箱") .WithMessage(FluentValidatorMessage.RequiredMessage) .Must(x => string.IsNullOrWhiteSpace(x) || !linContext.LinUsers.Any(b => b.Email == x)) .WithMessage(FluentValidatorMessage.ExistedMessage); }
public BookAddOrUpdateResourceValidator(LinContext linContext) { ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure; RuleFor(x => x.Title) .NotEmpty() .WithName("图书名") .WithMessage(FluentValidatorMessage.EmptyMessage) .MaximumLength(50) .WithMessage(FluentValidatorMessage.MaxLengthMessage) .Must(x => !linContext.Books.Any(b => b.Title == x)) .WithMessage(FluentValidatorMessage.ExistedMessage); RuleFor(x => x.Author) .NotEmpty() .WithName("图书作者") .WithMessage(FluentValidatorMessage.EmptyMessage) .MaximumLength(30) .WithMessage(FluentValidatorMessage.MaxLengthMessage); RuleFor(x => x.Summary) .NotEmpty() .WithName("图书综述") .WithMessage(FluentValidatorMessage.EmptyMessage) .MaximumLength(1000) .WithMessage(FluentValidatorMessage.MaxLengthMessage); RuleFor(x => x.Image) .NotEmpty() .WithName("图书插图") .WithMessage(FluentValidatorMessage.EmptyMessage) .MaximumLength(50) .WithMessage(FluentValidatorMessage.MaxLengthMessage); }
public CurrentUser(IHttpContextAccessor httpContextAccessor, LinContext linContext) { if (httpContextAccessor.HttpContext == null) { return; } var claims = httpContextAccessor.HttpContext.User.Claims; var uid = claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value; if (!int.TryParse(uid, out var id)) { return; } var user = linContext.LinUsers .Include(u => u.LinGroup) .ThenInclude(g => g.LinAuths) .FirstOrDefault(u => u.Id == id); if (user == null) { return; } Init(user); }
public LinGroupAddResourceValidator(LinContext linContext) : base(linContext) { ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure; RuleFor(x => x.Auths) .NotEmpty() .WithName("权限字段数组") .WithMessage(FluentValidatorMessage.EmptyMessage); }
public LinUserLoginResourceValidator(LinContext linContext) { ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure; RuleFor(x => x.Username) .NotEmpty() .WithName("用户名") .WithMessage(FluentValidatorMessage.EmptyMessage) .Must(x => linContext.LinUsers.Any(b => b.Username == x)) .WithMessage(FluentValidatorMessage.NotExistedMessage); RuleFor(x => x.Password) .NotEmpty() .WithName("密码") .WithMessage(FluentValidatorMessage.EmptyMessage); }
public LinUserUpdateByAdminResourceValidator(LinContext linContext) { ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure; RuleFor(x => x.Email) .EmailAddress() .WithName("电子邮箱") .WithMessage(FluentValidatorMessage.RequiredMessage); RuleFor(x => x.GroupId) .NotEmpty() .WithName("分组id") .WithMessage(FluentValidatorMessage.EmptyMessage) .Must(x => linContext.LinGroups.Any(b => b.Id == x)) .WithMessage(FluentValidatorMessage.NotExistedMessage); }
public LinGroupAddOrUpdateResourceValidator(LinContext linContext) { ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure; RuleFor(x => x.Name) .NotEmpty() .WithName("分组名称") .WithMessage(FluentValidatorMessage.EmptyMessage) .MaximumLength(60) .WithMessage(FluentValidatorMessage.MaxLengthMessage) .Must(x => !linContext.LinGroups.Any(g => g.Name == x)) .WithMessage(FluentValidatorMessage.ExistedMessage); RuleFor(x => x.Info) .MaximumLength(255) .WithName("分组详情") .WithMessage(FluentValidatorMessage.MaxLengthMessage); }
public LinUserUpdateResourceValidator(LinContext linContext, ICurrentUser currentUser) { ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure; RuleFor(x => x.Email) .EmailAddress() .WithName("电子邮箱") .WithMessage(FluentValidatorMessage.RequiredMessage) .Must(x => string.IsNullOrWhiteSpace(x) || !linContext.LinUsers.Any(b => b.Email == x && b.Email != currentUser.Email)) .WithMessage(FluentValidatorMessage.ExistedMessage); RuleFor(x => x.Nickname) .Length(2, 10) .WithName("昵称") .WithMessage(FluentValidatorMessage.MinLengthAndMaxLengthMessage); RuleFor(x => x.Avatar) .MaximumLength(255) .WithName("头像") .WithMessage(FluentValidatorMessage.MaxLengthMessage); }
public LinLogRepository(LinContext linContext) { _linContext = linContext; }
public BookRepository(LinContext linContext) { _linContext = linContext; }
public LinAdminRepository(LinContext linContext) { _linContext = linContext; }
public LinLogger(IHttpContextAccessor httpContextAccessor, LinContext linContext, IUnitOfWork unitOfWork) { _httpContextAccessor = httpContextAccessor; _linContext = linContext; _unitOfWork = unitOfWork; }
public LinUserRepository(LinContext linContext) { _linContext = linContext; }
public LinFileRepository(LinContext linContext) { _linContext = linContext; }
public LinGroupUpdateResourceValidator(LinContext linContext) : base(linContext) { }