예제 #1
0
        public async Task <string> CadastrarNovoUsuario(ModeloDeCadastroDeUsuario modelo)
        {
            var usuarioComMesmoLogin = this._servicoExternoDePersistencia.RepositorioDeUsuarios.PegarAtivoPorLogin(modelo.Email);

            if (usuarioComMesmoLogin != null)
            {
                throw new ExcecaoDeAplicacao("Já existe um usuário com o mesmo login");
            }

            var batalhao = this._servicoExternoDePersistencia.RepositorioDeBatalhoes.PegarPorId(modelo.Batalhao);

            var senha     = new Senha(modelo.Senha, _servicoDeGeracaoDeHashSha.GerarHash);
            var novologin = new LoginUsuario(modelo.Email);

            var novoUsuario = new Usuario(new Nome(modelo.Nome), novologin, senha, batalhao, modelo.Matricula);

            var modeloDeEmail = this._servicoDeMontagemDeEmails.MontarEmailBoasVindas(novoUsuario);

            await this._servicoDeEnvioDeEmails.EnvioDeEmail(novoUsuario, modeloDeEmail.Titulo, modeloDeEmail.Mensagem);

            this._servicoExternoDePersistencia.RepositorioDeUsuarios.Inserir(novoUsuario);
            this._servicoExternoDePersistencia.Persistir();

            return("Usuário cadastrado com sucesso.");
        }
예제 #2
0
        public ActionResult Cadastrar()
        {
            var modelo = new ModeloDeCadastroDeUsuario();

            modelo.Batalhoes = ListaDeItensDeDominio.DaClasseComOpcaoParametro <Batalhao>(nameof(Batalhao.Sigla), nameof(Batalhao.Id),
                                                                                          () => this._servicoDeGestaoDeBatalhoes.RetonarTodosOsBatalhoesAtivos(), "Selecione o batalhão");

            return(View(modelo));
        }
예제 #3
0
        public async Task <ActionResult> Cadastrar(string nome, string email, string senha, string matricula, int?batalhao)
        {
            try
            {
                var modelo  = new ModeloDeCadastroDeUsuario(nome, email, senha, matricula, batalhao.HasValue ? batalhao.Value : 0);
                var retorno = await this._servicoDeGestaoDeUsuarios.CadastrarNovoUsuario(modelo);

                this.AdicionarMensagemDeSucesso(retorno);
                ViewBag.Mensagem = "Usuário cadastrado com sucesso. Você receberá um email com as orientações.";

                modelo.Batalhoes = ListaDeItensDeDominio.DaClasseComOpcaoParametro <Batalhao>(nameof(Batalhao.Sigla), nameof(Batalhao.Id),
                                                                                              () => this._servicoDeGestaoDeBatalhoes.RetonarTodosOsBatalhoesAtivos(), "Selecione o batalhão");

                return(View(modelo));
            }
            catch (Exception ex)
            {
                this.AdicionarMensagemDeErro(ex.Message);
                ViewBag.Mensagem = $"{ex.Message}. Se já realizou o cadastro, aguarde validação do administrador.";
            }

            return(View(new ModeloDeCadastroDeUsuario()));
        }