public async Task <RetornoControllerViewModel <ExibicaoMensagemViewModel, List <Guid> > > AdicionarCliente(ClienteAdicionarViewModel clienteAdicionar, Guid idOrganizacao) { RetornoControllerViewModel <ExibicaoMensagemViewModel, List <Guid> > retornoController = new RetornoControllerViewModel <ExibicaoMensagemViewModel, List <Guid> >(); var pessoa = await _unitOfWork.GetRepositoryAsync <Pessoa>().GetOne(x => x.Id == clienteAdicionar.IdPessoa && x.Organizacoes.Any(y => y.IdOrganizacao == idOrganizacao && y.IdPessoa == x.Id)); if (pessoa == null) { ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "Pessoa inválida", MensagemCurta = "Pessoa inválida", Detalhes = "Pessoa não foi encontrada.", StatusCode = StatusCodes.Status400BadRequest }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } Cliente cliente = new Cliente() { Nome = clienteAdicionar.Nome, DataCriacao = DateTime.Now, DataEdicao = DateTime.Now, IdOrganizacao = idOrganizacao }; var existeCliente = await _unitOfWork.GetRepositoryAsync <Cliente>().GetOne(x => x.Id == clienteAdicionar.IdCliente && x.IdOrganizacao == idOrganizacao); if (existeCliente == null) { await _unitOfWork.GetRepositoryAsync <Cliente>().Insert(cliente); PessoaCliente pessoaCliente = new PessoaCliente() { Cliente = cliente, Pessoa = pessoa, DataInicio = clienteAdicionar.DataInicio, DataFim = clienteAdicionar.DataFim, Status = true, DataCriacao = DateTime.Now, DataEdicao = DateTime.Now, IdOrganizacao = idOrganizacao }; await _unitOfWork.GetRepositoryAsync <PessoaCliente>().Insert(pessoaCliente); } else { var existeRelacao = await _unitOfWork.GetRepositoryAsync <PessoaCliente>() .GetOne(x => x.IdPessoa == clienteAdicionar.IdPessoa && x.IdCliente == existeCliente.Id && x.IdOrganizacao == idOrganizacao); if (existeRelacao == null) { PessoaCliente pessoaCliente = new PessoaCliente() { Cliente = existeCliente, Pessoa = pessoa, DataInicio = clienteAdicionar.DataInicio, DataFim = clienteAdicionar.DataFim, Status = true, DataCriacao = DateTime.Now, DataEdicao = DateTime.Now, IdOrganizacao = idOrganizacao }; await _unitOfWork.GetRepositoryAsync <PessoaCliente>().Insert(pessoaCliente); await _unitOfWork.SaveAsync(); } else { return(null); } } await _unitOfWork.SaveAsync(); retornoController.Objeto = new List <Guid>() { { pessoa.Id }, { cliente.Id } }; return(retornoController); }
public async Task <InserirSenhaResultadoViewModel> TrocarSenha(Guid idRecuperarSenha, string novaSenha) { var senha = _recuperarSenhaRepository.GetSingleOrDefault(x => x.Id == idRecuperarSenha); InserirSenhaResultadoViewModel inserirSenhaResultado = new InserirSenhaResultadoViewModel(); if (senha == null) { ExibicaoMensagemViewModel exibicaoMensagemErro = new ExibicaoMensagemViewModel() { Cabecalho = "Recuperação de senha não está válida.", MensagemCurta = "Recuperação de senha não está válida.", Detalhes = "A solicitação de senha não foi encontrada.", StatusCode = StatusCodes.Status204NoContent }; inserirSenhaResultado.Resultado = false; inserirSenhaResultado.ExibicaoMensagem = exibicaoMensagemErro; return(inserirSenhaResultado); } if (!senha.Ativo) { ExibicaoMensagemViewModel exibicaoMensagemErro = new ExibicaoMensagemViewModel() { Cabecalho = "Recuperação de senha não está válida.", MensagemCurta = "Recuperação de senha não está válida.", Detalhes = "A solicitação de senha não está ativa.", StatusCode = StatusCodes.Status400BadRequest }; inserirSenhaResultado.Resultado = false; inserirSenhaResultado.ExibicaoMensagem = exibicaoMensagemErro; return(inserirSenhaResultado); } if (senha.DataExpiracao < DateTime.Now) { ExibicaoMensagemViewModel exibicaoMensagemErro = new ExibicaoMensagemViewModel() { Cabecalho = "Recuperação de senha expirada.", MensagemCurta = "Recuperação de senha expirada.", Detalhes = "A solicitação de senha está expirada.", StatusCode = StatusCodes.Status404NotFound }; inserirSenhaResultado.Resultado = false; inserirSenhaResultado.ExibicaoMensagem = exibicaoMensagemErro; return(inserirSenhaResultado); } var usuario = _usuarioRepository.GetSingleOrDefault(x => x.Login == senha.Pessoa.Email); usuario.Senha = CriptoHashSha256.GetSha256Hash(novaSenha); senha.Ativo = false; _usuarioRepository.Update(usuario); _recuperarSenhaRepository.Update(senha); _usuarioRepository.Save(); _recuperarSenhaRepository.Save(); ExibicaoMensagemViewModel exibicaoMensagemSucesso = new ExibicaoMensagemViewModel() { Cabecalho = "Alteração de senha concluida", MensagemCurta = "Alteração de senha concluída", Detalhes = "Sua nova senha foi inserida com sucesso.", StatusCode = StatusCodes.Status200OK }; inserirSenhaResultado.Resultado = true; inserirSenhaResultado.ExibicaoMensagem = exibicaoMensagemSucesso; return(inserirSenhaResultado); }
public async Task <RetornoControllerViewModel <ExibicaoMensagemViewModel, InserirSenhaResultadoViewModel> > ValidarRestaurarSenha(SenhasHashsViewModel senhasHashs) { RetornoControllerViewModel <ExibicaoMensagemViewModel, InserirSenhaResultadoViewModel> retornoController = new RetornoControllerViewModel <ExibicaoMensagemViewModel, InserirSenhaResultadoViewModel>(); if (senhasHashs.Senha != senhasHashs.ConfirmarSenha) { ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "Solicitação inválida", MensagemCurta = "Solicitação inválida", Detalhes = "Senha e Confirmação de Senha não estão iguais.", StatusCode = StatusCodes.Status400BadRequest }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } if (string.IsNullOrEmpty(senhasHashs.IdRecuperarSenhaHash) || string.IsNullOrEmpty(senhasHashs.TokenHash)) { ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "Solicitação inválida", MensagemCurta = "Solicitação inválida", Detalhes = "Acesse a página de login e solicte a criação de um novo usuário.", StatusCode = StatusCodes.Status404NotFound }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } try { var idRecuperarSenhaHashStr = Base64.Decode(senhasHashs.IdRecuperarSenhaHash, true); var tokenStr = Base64.Decode(senhasHashs.TokenHash, true); Guid idRecuperarSenha; if (!Guid.TryParse(idRecuperarSenhaHashStr, out idRecuperarSenha)) { ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "Solicitação inválida", MensagemCurta = "Solicitação inválida", Detalhes = "Acesse a página de login e solicte a criação de um novo usuário.", StatusCode = StatusCodes.Status400BadRequest }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } var recuperarSenha = await _unitOfWork.GetRepositoryAsync <RecuperarSenha>().GetOne(x => x.Id == idRecuperarSenha && x.Token == tokenStr); if (recuperarSenha == null) { ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "Solicitação inválida", MensagemCurta = "Solicitação inválida", Detalhes = "Acesse a página de login e solicte a criação de um novo usuário.", StatusCode = StatusCodes.Status204NoContent }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } var usuario = _usuarioRepository.GetSingleOrDefault(x => x.Login == recuperarSenha.Pessoa.Email); if (usuario == null || string.IsNullOrEmpty(usuario.Senha)) { ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "Solicitação inválida", MensagemCurta = "Solicitação inválida", Detalhes = "Não foi cadastrada uma senha inicial.", StatusCode = StatusCodes.Status400BadRequest }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } if (recuperarSenha.Ativo == false || recuperarSenha.DataExpiracao < DateTime.Now) { ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "Solicitação inválida", MensagemCurta = "Solicitação inválida", Detalhes = "Acesse a página de login e solicte a criação de um novo usuário.", StatusCode = StatusCodes.Status404NotFound }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } retornoController.Objeto = await TrocarSenha(recuperarSenha.Id, senhasHashs.Senha); return(retornoController); } catch (Exception e) { ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "Ocorreu um erro", MensagemCurta = "Ocorreu um erro", Detalhes = e.Message, StatusCode = StatusCodes.Status400BadRequest }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } }
public async Task <RetornoControllerViewModel <ExibicaoMensagemViewModel, Guid> > RecuperarSenha(RecebeEmailViewModel email) { var pessoa = _pessoaRepository.GetSingleOrDefault(x => x.Email == email.Email && x.Status); var usuarioPessoa = _usuarioRepository.GetSingleOrDefault(x => x.Login == email.Email && x.Ativo); RetornoControllerViewModel <ExibicaoMensagemViewModel, Guid> retornoController = new RetornoControllerViewModel <ExibicaoMensagemViewModel, Guid>(); if (pessoa == null) { ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "E-mail inválido", MensagemCurta = "E-mail inválido", Detalhes = "Este e-mail já está sendo utilizado.", StatusCode = StatusCodes.Status400BadRequest }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } if (usuarioPessoa != null && usuarioPessoa.Senha == null) { //var ultimoConvite = _conviteRepository.Find(x => x.Email == pessoa.Email).OrderByDescending(x => x.DataCriacao).FirstOrDefault(); //var convite = await _pessoaService.CriarConvite(pessoa, pessoa.Id, ultimoConvite.IdOrganizacao); //var linkConvite = await _envioEmailService.GerarLink(convite.ConvitesHistorico.FirstOrDefault().Id, // convite.ConvitesHistorico.FirstOrDefault().Token, "registro-pessoa"); //var envioConvite = await _envioEmailService.EnvioConvite(convite, linkConvite); ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "E-mail não ativado", MensagemCurta = "Processo de Ativação de Cadastro em andamento", Detalhes = "Este e-mail não foi ativado por um convite", StatusCode = StatusCodes.Status200OK }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } //criar resetarPassword var recuperarSenha = await CriarRegRecuperarSenha(pessoa); if (recuperarSenha == null) { ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel { Cabecalho = "Erro ao criar registro Recuperar Senha", MensagemCurta = "Erro ao criar registro Recuperar Senha", Detalhes = "Não foi possível criar registro para Recuperar Senha.", StatusCode = StatusCodes.Status204NoContent }; retornoController.ExibicaoMensagem = exibicaoMensagem; return(retornoController); } //pegar link do convite //var linkRecuperarSenha = await _envioEmailService.GerarLink(recuperarSenha.Id, // recuperarSenha.Token, "recupera-senha"); ////emailService //var envioRecuperarSenha = await _envioEmailService.EnvioRecuperarSenha(recuperarSenha, linkRecuperarSenha); //if (envioRecuperarSenha.Resposta == false) //{ //ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel //{ // Cabecalho = "Erro ao enviar convite", // MensagemCurta = "Erro ao enviar convite", // Detalhes = envioRecuperarSenha.Mensagem, // StatusCode = StatusCodes.Status500InternalServerError //}; retornoController.ExibicaoMensagem = new ExibicaoMensagemViewModel(); //exibicaoMensagem; // recuperarSenha.NotificacaoFoiEnviada = envioRecuperarSenha.Resposta; // recuperarSenha.MensagemResultadoNotificacao = envioRecuperarSenha.Mensagem; //return retornoController; //} //recuperarSenha.NotificacaoFoiEnviada = envioRecuperarSenha.Resposta; //recuperarSenha.MensagemResultadoNotificacao = envioRecuperarSenha.Mensagem; await _unitOfWork.SaveAsync(); retornoController.Objeto = recuperarSenha.Id; return(retornoController); }