示例#1
0
        public ClienteDadosInserirValidos(IUser user, ListNotificacoes <Notificacao> notificacoes,
                                          ResourcesManageMemory resourcesManageMemory)
            : base(user, notificacoes)
        {
            _resourcesManageMemory = resourcesManageMemory;
            AdicionarListaResources(_resourcesManageMemory.ObterResources(null, new List <Resources.Models.Resources <string> >()
            {
                new Resources <string> {
                    ResourceValue = Resources.Enuns.ResourceValueEnum.CPFInvalido
                },
                new Resources <string> {
                    ResourceValue = Resources.Enuns.ResourceValueEnum.DescricaoNomeRequerido
                },
                new Resources <string> {
                    ResourceValue = Resources.Enuns.ResourceValueEnum.SobreNomeRequerido
                },
                new Resources <string> {
                    ResourceValue = Resources.Enuns.ResourceValueEnum.Maiorde12
                }
            }));

            RuleFor(x => x.CPF).Custom(FluentValidationCommons.ECpf(Res.ObterResourceMessageClass(null, Resources.Enuns.ResourceValueEnum.CPFInvalido)));

            RuleFor(x => x.Nome).Custom(FluentValidationCommons.Nome(Res.ObterResourceMessageClass(null, Resources.Enuns.ResourceValueEnum.DescricaoNomeRequerido)));

            RuleFor(x => x.SobreNome).Custom(FluentValidationCommons.SobreNome(Res.ObterResourceMessageClass(null, Resources.Enuns.ResourceValueEnum.SobreNomeRequerido)));

            RuleFor(x => x.DataNascimento).Custom(FluentValidationCommons.Maior12(Res.ObterResourceMessageClass(null, Resources.Enuns.ResourceValueEnum.Maiorde12)));
        }
        void AplicarRegras()
        {
            RuleFor(x => x.DataNascimento).Custom(FluentValidationCommons.Maior18(Res.ObterResourceMessageClass(null, Resources.Enuns.ResourceValueEnum.Maiorde18)));

            RuleFor(x => x.Nome).Custom(FluentValidationCommons.Nome(Res.ObterResourceMessageClass(null, Resources.Enuns.ResourceValueEnum.DescricaoNomeRequerido)));

            RuleFor(x => x.SobreNome).Custom(FluentValidationCommons.Nome(Res.ObterResourceMessageClass(null, Resources.Enuns.ResourceValueEnum.SobreNomeRequerido)));

            RuleFor(x => x.Email).EmailAddress().WithMessage(Res.ObterResourceMessage(null, Resources.Enuns.ResourceValueEnum.EmailInvalido));

            RuleFor(x => x).Must(x => x.ConfirmarSenha.Equals(x.Senha))
            .WithMessage(Res.ObterResourceMessage(Resources.Enuns.ModulosEnum.Usuario, Resources.Enuns.ResourceValueEnum.UsuarioSenhaConfirmNaoBatem));

            RuleFor(x => x.CPF).Custom(FluentValidationCommons.ECpf(Res.ObterResourceMessageClass(null, Resources.Enuns.ResourceValueEnum.CPFInvalido)));

            RuleFor(x => x.Senha).Custom((senha, context) =>
            {
                ForcaDaSenha[] forcaDaSenhas = { ForcaDaSenha.Aceitavel, ForcaDaSenha.Forte, ForcaDaSenha.Segura };

                if (string.IsNullOrEmpty(senha))
                {
                    context.AddFailure(new ValidationFailureCustom(null, null, new Erro(Res.ObterResourceMessageClass(Resources.Enuns.ModulosEnum.Usuario, Resources.Enuns.ResourceValueEnum.UsuarioSenhaInvalida))));
                    return;
                }

                var forcaSenha = new ChecaForcaSenha(senha);

                if (!forcaDaSenhas.Contains(forcaSenha.ForcaDaSenha))
                {
                    var res      = Res.ObterResourceMessageClass(Resources.Enuns.ModulosEnum.Usuario, Resources.Enuns.ResourceValueEnum.UsuarioForcaSenhaInvalida);
                    res.Mensagem = string.Format(res.Mensagem, forcaSenha.ForcaDaSenha);
                    context.AddFailure(new ValidationFailureCustom(null, null, new Erro(res)));
                }
                return;
            });
        }