Esempio n. 1
0
        // 1 - Gerar uma nova senha para o associado
        // 2 - Atualizar a senha no banco de dados
        // 3 - Chamar o serviço de envio de e-mail para comunicar a nova senha para o associado
        public UtilRetorno enviarLinkSenha(int idAssociado, string linkRecuperacao = "")
        {
            var query = this.db.Associado.Where(x => x.id == idAssociado && x.dtExclusao == null);

            query = query.condicoesSeguranca();

            Associado OAssociado = query.Select(x => new{
                x.id,
                x.idOrganizacao,
                x.ativo,
                Pessoa = new{
                    x.Pessoa.nome,
                    listaEmails = x.Pessoa.listaEmails.Where(e => e.email != null && e.dtExclusao == null)
                }
            }).FirstOrDefault().ToJsonObject <Associado>();

            if (OAssociado == null)
            {
                return(UtilRetorno.newInstance(true, "O cadastro informado não foi localizado."));
            }

            if (OAssociado.ativo == "N")
            {
                return(UtilRetorno.newInstance(true, "O cadastro está desativado e não pode receber uma nova senha."));
            }

            /*if (OAssociado.Pessoa.login.isEmpty()) {
             * return UtilRetorno.newInstance(true, "O Associado não possui um login.");
             * }*/

            var listaEmails = OAssociado.Pessoa.ToEmailList();

            if (!listaEmails.Any())
            {
                return(UtilRetorno.newInstance(true, "Não pode ser localizado nenhum e-mail para o reenvio da senha."));
            }

            IEnvioLinkSenha EnvioEmail = EnvioLinkSenha.factory(OAssociado.idOrganizacao, listaEmails, null);

            EnvioEmail.enviar(OAssociado, linkRecuperacao);

            return(UtilRetorno.newInstance(false, "Foi enviado um link para o e-mail de cadastro, através dele será possível criar uma nova senha."));
        }
        // 1 - Gerar uma nova senha para o não associado
        // 2 - Atualizar a senha no banco de dados
        // 3 - Chamar o serviço de envio de e-mail para comunicar a nova senha para o não associado
        public UtilRetorno enviarLinkSenha(int idAssociado)
        {
            Associado OAssociado = this.db.Associado.FirstOrDefault(x => x.id == idAssociado && x.dtExclusao == null);

            if (OAssociado == null)
            {
                return(UtilRetorno.newInstance(true, "O cadastro informado não foi localizado."));
            }

            if (OAssociado.ativo == "N")
            {
                return(UtilRetorno.newInstance(true, "O Não Associado está desativado e não pode receber uma nova senha."));
            }

            IEnvioLinkSenha EnvioEmail = EnvioLinkSenha.factory(OAssociado.idOrganizacao, OAssociado.Pessoa.emailPrincipal().ToOneList(), null);

            EnvioEmail.enviar(OAssociado);

            return(UtilRetorno.newInstance(false, "Foi enviado um link para o e-mail do não associado, através dele será possível criar uma nova senha."));
        }