private static void EnvialEmailFilaEspera(Usuario usuario)
        {
            var template = new ManterTemplate().ObterTemplatePorID((int)enumTemplate.FilaEspera);

            template.TextoTemplate = template.TextoTemplate.Replace("#ALUNO", usuario.NomeExibicao);

            EmailUtil.Instancia.EnviarEmail(usuario.Email, template.Assunto, template.TextoTemplate);
        }
示例#2
0
        private void btnGravar_Click(Object sender, System.EventArgs e)
        {
            var listaTemplateDoBancoDeDados = ListarTodos();

            try
            {
                var listaTemplateAlterada = new List <Template>();

                foreach (Control controle in Panel1.Controls)
                {
                    if (controle.GetType().Name.Trim().ToLower().Equals("ckeditorcontrol"))
                    {
                        var ckControl = (CKEditorControl)controle;

                        var idTextBox = int.Parse(controle.ID.Split('_')[1]);

                        var template = ObterObjetoTemplate(idTextBox, listaTemplateDoBancoDeDados);

                        var assunto = (TextBox)Panel1.FindControl("txt_assunto_" + idTextBox);

                        if (assunto != null)
                        {
                            template.Assunto = assunto.Text;
                        }

                        if (!string.IsNullOrWhiteSpace(ckControl.Text))
                        {
                            template.TextoTemplate = ckControl.Text;
                            listaTemplateAlterada.Add(template);
                        }
                    }
                }

                var manterTemplate = new ManterTemplate();
                //Salva as informações obtidas, dinamicamente.
                manterTemplate.IncluirTemplate(listaTemplateAlterada);

                WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Informações sobre os Templates do Sistema Alterados com Sucesso !");
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }
示例#3
0
        private string ObterMensagem(Turma turma, Usuario usuario)
        {
            // Obtendo template
            var template    = new ManterTemplate().ObterTemplatePorID((int)enumTemplate.QuestionarioEficacia);
            var confSistema = new ManterConfiguracaoSistema().ObterConfiguracaoSistemaPorID((int)enumConfiguracaoSistema.EnderecoPortal30);

            var sid  = usuario.SID_Usuario;
            var link = "";

            var linkRedirect = string.Format("minhasinscricoes/questionario/eficacia/turma/{0}", turma.ID);

            link = !string.IsNullOrEmpty(sid) ? string.Format("{0}networkLoginAuto/{1}/{2}",
                                                              confSistema.Registro,
                                                              System.Web.HttpContext.Current.Server.UrlEncode(Base64Encode(InfraEstrutura.Core.Helper.CriptografiaHelper.Criptografar(sid)).ToString()),
                                                              Base64Encode(linkRedirect)) :  confSistema.Registro + linkRedirect;

            var texto = template.TextoTemplate;

            texto = texto.Replace("#ALUNO", usuario.Nome);
            texto = texto.Replace("#SOLUCAOEDUCACIONAL", turma.NomeSolucaoEducacional);
            texto = texto.Replace("#LINK", link);

            return(texto);
        }
示例#4
0
        private void ValidarAvaliacao(bool aprovar)
        {
            try
            {
                var turma = ObterTurma();

                var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

                if (UsuarioPodeValidarAvaliacao(turma, usuarioLogado))
                {
                    var avaliacao = turma.Avaliacoes.FirstOrDefault();

                    if (avaliacao != null)
                    {
                        var manterMatriculaOferta = new ManterMatriculaOferta();
                        var manterAvaliacao       = new ManterAvaliacao();

                        var emailsAlunos = new List <string>();

                        // Alterar status das matrículas.
                        foreach (var respostaId in avaliacao.Respostas.Where(x => x.Questao.Tipo == enumTipoQuestao.Resultado).Select(x => x.ID))
                        {
                            // Busca a resposta denovo do banco pois o NHibernate tá pirando com o Lazy.
                            var resposta = manterAvaliacao.ObterQuestaoRespostaPorId(respostaId);

                            var matricula = resposta.MatriculaTurma.MatriculaOferta;

                            // Adicionar emails para envio posterior.
                            if (aprovar && !string.IsNullOrWhiteSpace(matricula.Usuario.Email))
                            {
                                emailsAlunos.Add(matricula.Usuario.Email);
                            }

                            if (resposta.StatusMatricula != null)
                            {
                                matricula.StatusMatricula = (enumStatusMatricula)resposta.StatusMatricula.ID;

                                manterMatriculaOferta.Salvar(matricula);
                            }
                        }

                        // Mandar e-mail aos alunos caso a avaliação seja aprovada.
                        if (aprovar)
                        {
                            var manterEmail = new ManterEmail();

                            var template = new ManterTemplate().ObterTemplatePorID((int)enumTemplate.ResultadoAvaliacao);

                            var thread = new Thread(() =>
                            {
                                foreach (var email in emailsAlunos)
                                {
                                    manterEmail.EnviarEmail(email, template.Assunto ?? template.DescricaoTemplate, template.TextoTemplate);
                                }
                            })
                            {
                                IsBackground = true
                            };

                            thread.Start();
                        }

                        // Finalizar status da avaliação e setar o usuário que analisou.
                        avaliacao.Status   = aprovar ? enumStatusAvaliacao.Aprovada : enumStatusAvaliacao.AguardandoResposta;
                        avaliacao.Analista = usuarioLogado;

                        manterAvaliacao.Salvar(avaliacao);

                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso,
                                                     "Avaliação " + (!aprovar ? "não" : "") + " aprovada com sucesso",
                                                     "GerenciamentoMatricula.aspx?oferta=" + turma.Oferta.ID);
                        return;
                    }
                }
            }
            catch (Exception)
            {
                // ignored.
            }

            WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                         "Houve um erro na validação da avaliação. Tente novamente.");
        }
示例#5
0
        protected void btnEnviarAvaliacao_OnClick(object sender, EventArgs e)
        {
            if (BloquearCampos)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Não é possível alterar esta avaliação, pois ela está bloqueada.");
                return;
            }

            // Salvar os dados da tela antes de enviar, só para se certificar.
            btnSalvar_OnClick(null, null);

            // O evento de salvar persiste a avaliação salva na variável AvaliacaoSalva.
            var avaliacao = AvaliacaoSalva;

            var manterAvaliacao = new ManterAvaliacao();

            var qtQuestoes = manterAvaliacao.ObterQuestoes().Count();

            var qtMatriculas = ObterTurma().ListaMatriculas.Count();

            var manterUsuario = new ManterUsuario();

            var usuarioLogado = manterUsuario.ObterUsuarioLogado();

            if (avaliacao.Status == enumStatusAvaliacao.AguardandoResposta)
            {
                if (avaliacao.IsRespondido(qtQuestoes, qtMatriculas) && usuarioLogado.IsConsultorEducacional())
                {
                    var template = new ManterTemplate().ObterTemplatePorID((int)enumTemplate.AvaliacaoGestor);

                    if (template == null)
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                     "Não foi possível enviar e-mail ao gestor. Tente novamente.");
                        return;
                    }

                    // Obter todos os gestores da UF do usuário logado.
                    var usuarioFiltro = new classes.Usuario
                    {
                        ListaPerfil =
                            new List <classes.UsuarioPerfil>
                        {
                            new classes.UsuarioPerfil {
                                Perfil = new classes.Perfil {
                                    ID = (int)enumPerfil.GestorUC
                                }
                            }
                        },
                        UF = new classes.Uf {
                            ID = usuarioLogado.UF.ID
                        }
                    };

                    var gestores = manterUsuario.ObterPorFiltro(usuarioFiltro)
                                   .Where(x => x.Email != null && x.Email != "")
                                   // Selecionar somente os campos que interessam.
                                   .Select(x => new classes.Usuario {
                        Email = x.Email, Nome = x.Nome
                    })
                                   .ToList();

                    // Caso não haja gestores para atualizar, notifica o usuário e impede a alteração.
                    if (!gestores.Any())
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                     "Não há gestor na UF " + usuarioLogado.UF.Sigla + " para validar a avaliação dos alunos.");
                        return;
                    }

                    var manterEmail = new ManterEmail();

                    var textoTemplate = template.TextoTemplate;


                    // Reza a lenda que cada oferta desses cursos só possui uma turma. Vamos torcer para isso ser verdade.
                    var turma = avaliacao.Turma;

                    textoTemplate =
                        textoTemplate
                        // Substituir o nome da solução duas vezes porque tem duas tags de solução.
                        .Replace("#SOLUCAO", turma.Oferta.SolucaoEducacional.Nome)
                        .Replace("#SOLUCAO", turma.Oferta.SolucaoEducacional.Nome)
                        .Replace("#OFERTA", turma.Oferta.Nome)
                        .Replace("#TURMA", turma != null ? turma.Nome : "")
                        .Replace("#CONSULTOR",
                                 turma != null && turma.ConsultorEducacional != null
                                    ? turma.ConsultorEducacional.Nome
                                    : "");

                    // Executa o envio de e-mails via Threading para deixar o fluxo mais rápido.
                    var thread = new Thread(() =>
                    {
                        foreach (var gestor in gestores)
                        {
                            try
                            {
                                var templateFinal = textoTemplate.Replace("#GESTOR", gestor.Nome);

                                manterEmail.EnviarEmail(gestor.Email, template.Assunto ?? template.DescricaoTemplate, templateFinal);
                            }
                            catch (Exception)
                            {
                                // Ignored.
                            }
                        }
                    })
                    {
                        IsBackground = true
                    };

                    thread.Start();

                    avaliacao.Status = enumStatusAvaliacao.AguardandoGestor;

                    manterAvaliacao.Salvar(avaliacao);

                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso,
                                                 "Avaliação enviada ao gestor e aguardando análise.",
                                                 "GerenciamentoMatricula.aspx?oferta=" + avaliacao.Turma.Oferta.ID);
                }
                else
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Você precisa responder todas as questões antes de enviar sua avaliação ao Gestor.");
                }
            }
        }