public virtual IList <TEntidade> ObterTodos()
        {
            var listaDeEntidadeDabase = _baseRepository.ObterTodos();

            ValidadorRegra.Novo().Quando(listaDeEntidadeDabase.Count <= 0, "Não existe dados na base").DispararExcecaoSeExistir();

            return(listaDeEntidadeDabase);
        }
        public virtual TEntidade ObterPorId(int id)
        {
            var entidadeVindoBanco = _baseRepository.ObterPorId(id);

            ValidadorRegra.Novo().Quando(entidadeVindoBanco == null, "Não existe na base com esse id").DispararExcecaoSeExistir();

            return(entidadeVindoBanco);
        }
예제 #3
0
        public override void Salvar(Like like)
        {
            var esseLikeJaFoiDado = JaFoiLiked(like);

            ValidadorRegra.Novo().Quando(esseLikeJaFoiDado, "Não pode dar mais de um like para uma mesma postagem!").DispararExcecaoSeExistir();

            base.Salvar(like);
        }
        public List <Postagem> ObterPostagensPeloEmail(string email)
        {
            ValidadorRegra.Novo().Quando(string.IsNullOrEmpty(email), "Email inválido").DispararExcecaoSeExistir();

            var listPostagens = _postagemRepository.ObterPostagensPeloEmail(email);

            return(listPostagens);
        }
예제 #5
0
        public Like(Usuario usuario, List <LikePostagem> likePostagens)
        {
            ValidadorRegra.Novo().Quando(usuario == null, "Usuario inválido para o like")
            .Quando(likePostagens == null, "Há uma ou mais postagens inválidas")
            .Quando(likePostagens != null && likePostagens.Any(x => x == null), "Há uma ou mais postagens inválidas").DispararExcecaoSeExistir();

            Usuario       = usuario;
            LikePostagens = likePostagens;
        }
예제 #6
0
        public override void Salvar(Usuario usuario)
        {
            var usuarioExistente = _usuarioRepositorio.ObterPorEmail(usuario.Email);

            ValidadorRegra.Novo()
            .Quando(usuarioExistente != null,
                    "Já existe usuário com esse email").DispararExcecaoSeExistir();

            _usuarioRepositorio.Salvar(usuario);
        }
예제 #7
0
        public Comentario(Usuario usuario, string texto, Postagem postagem)
        {
            ValidadorRegra.Novo().Quando(usuario == null, "Usuário é nulo")
            .Quando(string.IsNullOrEmpty(texto), "Texto é inválido")
            .Quando(postagem == null, "Postagem é nula");

            Usuario  = usuario;
            Texto    = texto;
            Postagem = postagem;
        }
        public void AlterarSenha(string senha)
        {
            ValidadorRegra.Novo()
            .Quando(senha.Contains(Nome),
                    "Senha não pode conter seu nome")
            .Quando(string.IsNullOrEmpty(senha) || senha.Length < 5,
                    "Senha inválida - Deve ter no minimo 5 caracteres");

            Senha = senha;
        }
예제 #9
0
        public Perfil(Usuario usuario, string interesse)
        {
            ValidadorRegra.Novo()
            .Quando(usuario == null,
                    "Usuario relacionado com esse perfil é inválido")
            .Quando(string.IsNullOrEmpty(interesse),
                    "Interesse inválido").DispararExcecaoSeExistir();

            Usuario   = usuario;
            Interesse = interesse;
        }
예제 #10
0
        public Usuario Entrar(string email, string senha)
        {
            ValidadorRegra.Novo().Quando(string.IsNullOrEmpty(email), "Email Invalido")
            .Quando(string.IsNullOrEmpty(senha), "Senha inválida").DispararExcecaoSeExistir();

            var usuarioDobanco = _usuarioRepositorio.Entrar(email, senha);

            ValidadorRegra.Novo().Quando(usuarioDobanco == null, "Não existe esse usuário no sitesma").DispararExcecaoSeExistir();

            return(usuarioDobanco);
        }
        public UsuarioAmigo(Usuario usuario, List <Usuario> amigos)
        {
            ValidadorRegra.Novo().Quando(usuario == null, "O usuario é nulo")
            .Quando(amigos != null && ExisteAmigosDuplicados(amigos),
                    "Lista amigos com duplicidade")
            .Quando(usuario != null && usuario != null && amigos.Any(x => x.Email.Equals(usuario.Email) == true),
                    "Usuario está se adicionando na própria  lista amigo").DispararExcecaoSeExistir();

            Usuario = usuario;
            Amigos  = amigos;
        }
예제 #12
0
        public override void Atualizar(Usuario usuario)
        {
            var usuarioDoBanco = _usuarioRepositorio.ObterPorEmail(usuario.Email);

            ValidadorRegra.Novo().Quando(usuarioDoBanco == null, "Não existe esse usuário no sitesma").DispararExcecaoSeExistir();


            usuarioDoBanco.AlterarNascimento(usuario.Nascimento);
            usuarioDoBanco.AlterarSenha(usuario.Senha);

            _usuarioRepositorio.Atualizar(usuarioDoBanco);
        }
        public Postagem(Usuario usuario, string texto)
        {
            ValidadorRegra.Novo()
            .Quando(string.IsNullOrEmpty(texto) || texto.Length < 4,
                    "Texto da postagem inválido")
            .Quando(usuario == null,
                    "Usuário Invalido para a postagem").DispararExcecaoSeExistir();

            Usuario        = usuario;
            Texto          = texto;
            DataPublicacao = DateTime.Now;
        }
예제 #14
0
        public Curso(string nome, double cargaHoraria, ECursoPublicoAlvo publicoAlvo, double valor, string descricao)
        {
            ValidadorRegra.Novo()
            .Quando(String.IsNullOrEmpty(nome), Resource.NomeInvalido)
            .Quando(cargaHoraria < 1, Resource.CargaHorariaInvalida)
            .Quando(valor < 1, Resource.ValorInvalido)
            .DispararException();

            Nome         = nome;
            CargaHoraria = cargaHoraria;
            PublicoAlvo  = publicoAlvo;
            Valor        = valor;
            Descricao    = descricao;
        }
예제 #15
0
        public Usuario(string nome, string email, DateTime nascimento, string senha)
        {
            ValidadorRegra.Novo()
            .Quando(string.IsNullOrEmpty(nome),
                    "Nome inválido - Campo Vazio")
            .Quando(string.IsNullOrEmpty(email),
                    "Email inválido - Campo vazio")
            .RegExpQuando(email, "[a-zA-Z0-9]+@[a-zA-Z0-9]{3,10}\\.com",
                          "Formato email inválido")
            .Quando(string.IsNullOrEmpty(senha) || senha.Length < 5,
                    "Senha inválida - Deve ter no minimo 5 caracteres")
            .Quando(ObterIdade(nascimento) < 18, "Idade não permitida - Somente 18+")
            .Quando(nome != null && senha != null && senha.Contains(nome), "Senha não pode conter seu nome").DispararExcecaoSeExistir();

            Nome       = nome;
            Email      = email;
            Nascimento = nascimento;
            Senha      = senha;
            Idade      = ObterIdade(nascimento);
        }
예제 #16
0
        public void Armazenar(CursoDto cursoDto)
        {
            var cursoJaSalvo = _cursoRepository.ObterPeloNome(cursoDto.Nome);

            ValidadorRegra.Novo()
            .Quando(cursoJaSalvo != null && cursoJaSalvo.Id != cursoDto.Id, Resource.NomeCursoJaExiste)
            .Quando(!Enum.TryParse <ECursoPublicoAlvo>(cursoDto.PublicoAlvo, out var publicoAlvo), Resource.PublicoAlvoInvalido)
            .DispararException();

            var curso = new Curso(cursoDto.Nome, cursoDto.CargaHoraria, publicoAlvo, cursoDto.Valor, cursoDto.Descricao);

            if (cursoDto.Id > 0)
            {
                curso = _cursoRepository.ObterPorId(cursoDto.Id);
                curso.AlterarNome(cursoDto.Nome);
                curso.AlterarValor(cursoDto.Valor);
                curso.AlterarCargaHoraria(cursoDto.CargaHoraria);
            }

            if (cursoDto.Id == 0)
            {
                _cursoRepository.Adicionar(curso);
            }
        }
예제 #17
0
 public void AlterarNascimento(DateTime nascimento)
 {
     ValidadorRegra.Novo().Quando(ObterIdade(nascimento) < 18, "Idade não permitida - Somente 18+");
     Nascimento = nascimento;
 }
예제 #18
0
        public void AlterarValor(double valor)
        {
            ValidadorRegra.Novo().Quando(valor < 1, Resource.ValorInvalido).DispararException();

            Valor = valor;
        }
예제 #19
0
        public void AlterarCargaHoraria(double cargaHoraria)
        {
            ValidadorRegra.Novo().Quando(cargaHoraria < 1, Resource.CargaHorariaInvalida).DispararException();

            CargaHoraria = cargaHoraria;
        }
예제 #20
0
        public void AlterarNome(string nome)
        {
            ValidadorRegra.Novo().Quando(String.IsNullOrEmpty(nome), Resource.NomeInvalido).DispararException();

            Nome = nome;
        }
        public virtual void Salvar(TEntidade e)
        {
            ValidadorRegra.Novo().Quando(e == null, "Objeto inválido").DispararExcecaoSeExistir();

            _baseRepository.Salvar(e);
        }