public async Task Criar(UsuarioDto usuarioDto)
        {
            var usuarioCadastrado = await _usuarioRepository.ObterAsync(usuarioDto.Email, usuarioDto.Matricula, usuarioDto.Documento);

            ValidarUsuarioCadastrado(usuarioDto, usuarioCadastrado);
            if (Invalid)
            {
                return;
            }

            var endereco = new Endereco(usuarioDto.Endereco.Logradouro, usuarioDto.Endereco.Numero, usuarioDto.Endereco.Bairro, usuarioDto.Endereco.Cep,
                                        usuarioDto.Endereco.Cidade, usuarioDto.Endereco.UF, usuarioDto.Endereco.Complemento, usuarioDto.Endereco.PontoReferencia);

            var usuario = new Usuario(usuarioDto.Matricula, usuarioDto.Email, usuarioDto.Nome, usuarioDto.Perfil, endereco, usuarioDto.Telefone, usuarioDto.DataNascimento, usuarioDto.Documento);

            try
            {
                await _usuarioRepository.CriarAsync(usuario);
            }
            catch (Exception ex)
            {
                AddNotification("CadastrarUsuario", MensagemValidacao.ContacteSuporte);
                return;
            }


            _emailService.AdicionarDestinatario(usuario.Email, usuario.Nome);
            await _emailService.EnviarEmailCadastroUsuario(usuario);
        }
Beispiel #2
0
        public async Task AprovarAgendamento(AgendamentoAprovacaoDto aprovacaoDto, Guid aprovadorId)
        {
            var agendamento = await _agendamentoRepository.ObterAsync(aprovacaoDto.AgendamentoId);

            var aprovador = await _usuarioService.Obter(aprovadorId);

            ValidarAprovadorAgendamento(agendamento, aprovador);
            if (Invalid)
            {
                return;
            }

            agendamento.AtualizarAgendamento(aprovador.Id, aprovacaoDto.Status, aprovacaoDto.Justificativa);

            await _agendamentoRepository.EditarAsync(agendamento);

            _emailService.AdicionarDestinatario(agendamento.Usuario.Email, agendamento.Usuario.Nome);
            await _emailService.EnviarEmailAprovacaoAgendamento(agendamento);
        }