public async Task <RequestInfo> Handle(DeletarPublicadorCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var publicador = _db.Publicadores.Find(request.PublicadorId);
                if (publicador == null)
                {
                    throw new NaoEncontradoException(nameof(Publicador), request.PublicadorId);
                }

                _db.Publicadores.Remove(publicador);

                await _db.SaveChangesAsync(cancellationToken);

                _info.Sucess();
            }
            catch (NaoEncontradoException ex)
            {
                _info.AddFailure("Publicador não encontrada", ex);
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }
            return(_info);
        }
示例#2
0
        public async Task <RequestInfo> Handle(DeletarLicaoCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var licao = _db.Licoes.Find(request.Id);

                if (licao == null)
                {
                    throw new NaoEncontradoException(nameof(Licao), request.Id);
                }

                _db.Licoes.Remove(licao);

                await _db.SaveChangesAsync(cancellationToken);

                _info.Sucess();
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao salvar dados no banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }

            return(_info);
        }
示例#3
0
        public async Task <RequestInfo> Handle(CriarTerritorioCommand request, CancellationToken cancellationToken)
        {
            try {
                var territorio = new Territorio
                {
                    TerritorioId = request.TerritorioId,
                    Local        = request.Local,
                    Descricao    = request.Descricao,
                    UrlImagem    = request.UrlImagem
                };

                _db.Territorios.Add(territorio);
                await _db.SaveChangesAsync(cancellationToken);

                _info.AddExtra("id", territorio.TerritorioId);
                _info.Sucess();
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }
            return(_info);
        }
示例#4
0
        public async Task <RequestInfo> Handle(AtualizarTerritorioCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var territorio = _db.Territorios.Find(request.TerritorioId);

                if (territorio == null)
                {
                    throw new NaoEncontradoException(nameof(Territorio), request.TerritorioId);
                }

                territorio.Descricao = request.Descricao;
                territorio.Local     = request.Local;
                territorio.UrlImagem = request.UrlImagem;

                _db.Territorios.Update(territorio);
                await _db.SaveChangesAsync(cancellationToken);

                _info.AddExtra("id", territorio.TerritorioId);
                _info.Sucess();
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }
            return(_info);
        }
示例#5
0
        public async Task <RequestInfo> Handle(CancelarDesignacaoCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var designacao = _db.Designacoes.Find(request.Id);

                if (designacao == null)
                {
                    throw new NaoEncontradoException(nameof(Designacao), request.Id);
                }

                _db.Designacoes.Remove(designacao);
                await _db.SaveChangesAsync(cancellationToken);

                _info.Sucess();
            }
            catch (NaoEncontradoException ex)
            {
                _info.AddFailure("Designacao não encontrada", ex);
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }

            return(_info);
        }
示例#6
0
        public async Task <RequestInfo> Handle(CriarLicaoCommand request, CancellationToken cancellationToken)
        {
            try
            {
                _db.Licoes.Add(new Licao()
                {
                    LicaoId     = request.Id,
                    TituloLicao = request.Titulo.Trim()
                });

                await _db.SaveChangesAsync(cancellationToken);

                _info.Sucess();
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }

            return(_info);
        }
        /// <summary>
        /// Tratamento do comando DeletarAlunoCommand
        /// </summary>
        /// <param name="request">Um objeto que implementa "MediatR.IRequest"</param>
        /// <param name="cancellationToken">Token para cancelamento da thread</param>
        /// <returns></returns>
        public async Task <RequestInfo> Handle(DeletarAlunoCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var aluno = await _db.Alunos.FindAsync(request.AlunoId);

                if (aluno == null)
                {
                    throw new NaoEncontradoException(nameof(Sheekr.Domain.Entities.Aluno), request.AlunoId);
                }

                _db.Alunos.Remove(aluno);
                await _db.SaveChangesAsync(cancellationToken);

                info.Sucess();
            }
            catch (NaoEncontradoException ex)
            {
                info.AddFailure("Entidade não encontrada dentro do banco de dados", ex);
            }
            catch (DbException ex)
            {
                info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                info.AddFailure($"Erro! Conferir descrição. ", ex);
            }

            return(info);
        }
        public async Task <RequestInfo> Handle(CriarPublicadorCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var publicador = new Publicador()
                {
                    PrimeiroNome = request.PrimeiroNome.Trim(),
                    UltimoNome   = request.UltimoNome.Trim(),
                    Email        = (request.Email != null) ? request.Email.Trim() : null,
                    Telefone     = (request.Telefone != null) ? request.Telefone.Trim() : null,
                    Sexo         = request.Sexo,
                    Privilegio   = request.Privilegio
                };
                _db.Publicadores.Add(publicador);
                await _db.SaveChangesAsync(cancellationToken);

                _info.AddExtra("id", publicador.PublicadorId);
                _info.Sucess();
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }
            return(_info);
        }
        public async Task <RequestInfo> Handle(DesignarCommand request, CancellationToken cancellationToken)
        {
            try
            {
                _db.Designacoes.Add(new Designacao()
                {
                    LicaoId          = request.LicaoId,
                    AlunoPrincipalId = request.AlunoPrincipalId,
                    AlunoAjudanteId  = request.AlunoAjudanteId,
                    Data             = request.Data,
                    Tipo             = request.Tipo,
                    Local            = request.Local
                });

                await _db.SaveChangesAsync(cancellationToken);

                _info.Sucess();
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }

            return(_info);
        }
示例#10
0
        public async Task <RequestInfo> Handle(AtualizarLicaoCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var licao = _db.Licoes.Find(request.Id);

                if (licao == null || licao.LicaoId != request.Id)
                {
                    throw new NaoEncontradoException(nameof(Licao), request.Id);
                }

                licao.LicaoId     = request.Id;
                licao.TituloLicao = request.Titulo.Trim();

                _db.Licoes.Update(licao);
                await _db.SaveChangesAsync(cancellationToken);

                _info.Sucess();
            }
            catch (NaoEncontradoException ex)
            {
                _info.AddFailure("Lição não encontrada", ex);
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }

            return(_info);
        }
示例#11
0
        public async Task <bool> CreateUserAsync(Usuario user, string password, Role role = Role.NaoAutorizado)
        {
            var salt = BC.GenerateSalt(_workFactor);
            var hash = BC.HashPassword(password, salt);

            user.HashedPassword = Encoding.ASCII.GetBytes(hash);
            user.Salt           = Encoding.ASCII.GetBytes(salt);
            user.Role           = role;

            _db.Usuarios.Add(user);

            return(await _db.SaveChangesAsync() == 1);
        }
        /// <summary>
        /// Tratamento do comando AtualizarAlunoCommand
        /// </summary>
        /// <param name="request">Um objeto que implementa "MediatR.IRequest"</param>
        /// <param name="cancellationToken">Token para cancelamento da thread</param>
        /// <returns></returns>
        public async Task <RequestInfo> Handle(AtualizarAlunoCommand request, CancellationToken cancellationToken)
        {
            try
            {
                if (await _db.Publicadores.FindAsync(request.PublicadorId) == null)
                {
                    throw new NaoEncontradoException(nameof(Publicador), request.PublicadorId);
                }

                var aluno = await _db.Alunos.FindAsync(request.AlunoId);

                if (aluno == null)
                {
                    throw new NaoEncontradoException(nameof(Sheekr.Domain.Entities.Aluno), request.AlunoId);
                }

                aluno.PublicadorId    = request.PublicadorId;
                aluno.FazDemonstracao = request.FazDemonstracao;
                aluno.FazLeitura      = request.FazLeitura;
                aluno.FazDiscurso     = request.FazDiscurso;

                _db.Alunos.Update(aluno);

                await _db.SaveChangesAsync(cancellationToken);
            }
            catch (NaoEncontradoException ex)
            {
                info.AddFailure("Não encontrado um publicador com a chave fornecida. É obrigatório informar um publicador já cadastrado", ex);
            }
            catch (DbException ex)
            {
                info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                info.AddFailure($"Erro! Conferir descrição. ", ex);
            }
            return(info);
        }
        public async Task <RequestInfo> Handle(AtualizarPublicadorCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var publicador = await _db.Publicadores.FindAsync(request.PublicadorId);

                if (publicador == null)
                {
                    throw new NaoEncontradoException(nameof(Publicador), request.PublicadorId);
                }

                publicador.PrimeiroNome = request.PrimeiroNome;
                publicador.UltimoNome   = request.UltimoNome;
                publicador.Email        = (request.Email != null) ? request.Email.Trim() : null;
                publicador.Telefone     = (request.Telefone != null) ? request.Telefone.Trim() : null;
                publicador.Sexo         = request.Sexo;
                publicador.Privilegio   = request.Privilegio;

                _db.Publicadores.Update(publicador);

                await _db.SaveChangesAsync(cancellationToken);

                _info.Sucess();
            }
            catch (NaoEncontradoException ex)
            {
                _info.AddFailure("Publicador não encontrada", ex);
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }
            return(_info);
        }
        public async Task <RequestInfo> Handle(AtualizarDesignacaoCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var designacao = await _db.Designacoes.FindAsync(request.DesignacaoId);

                if (designacao == null || designacao.DesignacaoId != request.DesignacaoId)
                {
                    throw new NaoEncontradoException(nameof(Designacao), request.DesignacaoId);
                }

                designacao.DesignacaoId     = request.DesignacaoId;
                designacao.AlunoPrincipalId = request.AlunoPrincipalId;
                designacao.AlunoAjudanteId  = request.AlunoAjudanteId;
                designacao.LicaoId          = request.LicaoId;
                designacao.Local            = request.Local;
                designacao.Tipo             = request.Tipo;
                designacao.Data             = request.Data;

                _db.Designacoes.Update(designacao);
                await _db.SaveChangesAsync(cancellationToken);

                _info.Sucess();
            }
            catch (NaoEncontradoException ex)
            {
                _info.AddFailure("Designacao não encontrada", ex);
            }
            catch (DbException ex)
            {
                _info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                _info.AddFailure($"Erro! Conferir descrição. ", ex);
            }
            return(_info);
        }
示例#15
0
        /// <summary>
        /// Tratamento do comando CriarAlunoCommand
        /// </summary>
        /// <param name="request">Um objeto que implementa "MediatR.IRequest"</param>
        /// <param name="cancellationToken">Token para cancelamento da thread</param>
        /// <returns></returns>
        public async Task <RequestInfo> Handle(CriarAlunoCommand request, CancellationToken cancellationToken)
        {
            try
            {
                if (await _db.Publicadores.FindAsync(request.PublicadorId) == null)
                {
                    throw new NaoEncontradoException(nameof(Publicador), request.PublicadorId);
                }

                _db.Alunos.Add(new Aluno()
                {
                    PublicadorId    = request.PublicadorId,
                    FazLeitura      = request.FazLeitura,
                    FazDemonstracao = request.FazDemonstracao,
                    FazDiscurso     = request.FazDiscurso
                });

                await _db.SaveChangesAsync(cancellationToken);

                info.Sucess();
            }
            catch (NaoEncontradoException ex)
            {
                info.AddFailure("Não encontrado um publicador com a chave fornecida. É obrigatório informar um publicador já cadastrado", ex);
            }
            catch (DbException ex)
            {
                info.AddFailure("Erro ocorrido ao fazer conexão com banco de dados", ex);
            }
            catch (Exception ex)
            {
                info.AddFailure($"Erro! Conferir descrição. ", ex);
            }

            return(info);
        }