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); }
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); } }
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); }
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."); }
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."); } } }