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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        public LinGroupAddResourceValidator(LinContext linContext) : base(linContext)
        {
            ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure;

            RuleFor(x => x.Auths)
            .NotEmpty()
            .WithName("权限字段数组")
            .WithMessage(FluentValidatorMessage.EmptyMessage);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
 public LinLogRepository(LinContext linContext)
 {
     _linContext = linContext;
 }
Ejemplo n.º 10
0
 public BookRepository(LinContext linContext)
 {
     _linContext = linContext;
 }
 public LinAdminRepository(LinContext linContext)
 {
     _linContext = linContext;
 }
Ejemplo n.º 12
0
 public LinLogger(IHttpContextAccessor httpContextAccessor, LinContext linContext, IUnitOfWork unitOfWork)
 {
     _httpContextAccessor = httpContextAccessor;
     _linContext          = linContext;
     _unitOfWork          = unitOfWork;
 }
Ejemplo n.º 13
0
 public LinUserRepository(LinContext linContext)
 {
     _linContext = linContext;
 }
Ejemplo n.º 14
0
 public LinFileRepository(LinContext linContext)
 {
     _linContext = linContext;
 }
 public LinGroupUpdateResourceValidator(LinContext linContext) : base(linContext)
 {
 }