public Usuario Registrar(UsuarioModelo usuario) { var transacaoAbertaAqui = false; try { transacaoAbertaAqui = _unidadeDeTrabalho.IniciarTransacao(); var usuarioNovo = new Usuario(usuario.Nome, usuario.Email); usuarioNovo.AtribuirSenha(usuario.Senha, usuario.ConfirmacaoDaSenha); usuarioNovo.Validar(); usuarioNovo.Valido = false; // Todos os usuários precisam confirmar seu cadastro para poderem acessar o sistema. var repositorioDeUsuario = _unidadeDeTrabalho.ObterRepositorio<Usuario>(); repositorioDeUsuario.Incluir(usuarioNovo); _unidadeDeTrabalho.Salvar(); return usuarioNovo; } catch (Exception ex) { _unidadeDeTrabalho.DescartarTransacao(transacaoAbertaAqui); EmailHelper.EnviarEmail("*****@*****.**", "Erro", ex.GetBaseException().ToString()); throw new Exception("Erro ao tentar registrar este usuário."); } finally { _unidadeDeTrabalho.EfetivarTransacao(transacaoAbertaAqui); } }
public Usuario Autenticar(UsuarioModelo usuario) { var transacaoAbertaAqui = false; try { transacaoAbertaAqui = _unidadeDeTrabalho.IniciarTransacao(); var repositorioDeUsuario = _unidadeDeTrabalho.ObterRepositorio<Usuario>(); var usuarioAutenticado = repositorioDeUsuario.ObterPor(u => u.Email == usuario.Email).FirstOrDefault(); if (usuarioAutenticado != null) { usuarioAutenticado.VerificarSenha(usuario.Senha); return usuarioAutenticado; } } catch (Exception ex) { _unidadeDeTrabalho.DescartarTransacao(transacaoAbertaAqui); EmailHelper.EnviarEmail("*****@*****.**", "Erro", ex.GetBaseException().ToString()); throw new Exception("Erro ao tentar autenticar este usuário."); } finally { _unidadeDeTrabalho.EfetivarTransacao(transacaoAbertaAqui); } return null; }
public HttpResponseMessage Post(UsuarioModelo usuario) { if (usuario == null) return Request.CreateResponse(HttpStatusCode.BadRequest); try { var novoUsuario = _usuarioAplicacao.Registrar(new UsuarioModelo { Nome = usuario.Nome, Email = usuario.Email, Senha = usuario.Senha, ConfirmacaoDaSenha = usuario.ConfirmacaoDaSenha }); return Request.CreateResponse(HttpStatusCode.Created, novoUsuario); } catch (Exception ex) { return Request.CreateResponse(HttpStatusCode.InternalServerError, "Falha ao incluir tipo de inspeção"); } }