/// <summary> /// Executar uma consulta de relatório em threading e enviar para a tela de Solicitações de relatórios via FileServer. /// Este método é um wrap do método de datatable com menos parâmetros. /// </summary> /// <param name="dt">Objeto de dados do relatório</param> /// <param name="saida">Tipo de saída do relatório</param> /// <param name="items">Itens a serem exibidos pelo ReportViewer</param> /// <param name="nomeRelatorio">Nome do namespace do arquivo rpt do relatório</param> /// <param name="nomeAmigavel">Nome amigável do relatório</param> /// <param name="quantidadeRegistro">Quantidade de registros do relatório</param> /// <param name="totalizador">Objeto com totalizador</param> public static void ExecutarThreadSolicitacaoRelatorio(object dt, enumTipoSaidaRelatorio saida, ListItemCollection items, string nomeRelatorio, string nomeAmigavel, int quantidadeRegistro, object totalizador = null) { // Obter o caminho do arquivo com um nome aleatório. var caminhoDiretorioUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; var nomeAleatorioDoArquivoParaUploadCriptografado = WebFormHelper.ObterStringAleatoria(); var diretorioDeUploadComArquivo = string.Concat(caminhoDiretorioUpload, @"\", nomeAleatorioDoArquivoParaUploadCriptografado); ExecutarThreadSolicitacaoRelatorio( dt, saida, items, nomeRelatorio, nomeAmigavel, diretorioDeUploadComArquivo, nomeAleatorioDoArquivoParaUploadCriptografado, new ManterUsuario().ObterUsuarioLogado(), new ManterSolicitacaoRelatorio(), new ManterFileServer(), quantidadeRegistro, totalizador); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Seu relatório está sendo gerado e deve aparecer no menu de solicitações de relatórios em breve. O menu fica em \"SOLICITAÇÕES DE RELATÓRIOS > Histórico de solicitações\"."); }
protected void btnSalvar_Click1(object sender, EventArgs e) { string senhagerada; try { var userSalvar = ObterObjetoUsuario(); senhagerada = txtSenha.Text; if (string.IsNullOrEmpty(senhagerada)) { senhagerada = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.SenhaPadrao).Registro; } //userSalvar.SenhaLms = WebFormHelper.ObterHashMD5(senhagerada); userSalvar.Senha = CriptografiaHelper.Criptografar(senhagerada); var manterUsuario = new ManterUsuario(); manterUsuario.Salvar(userSalvar); manterUsuario.EnviarEmailBoasVindas(userSalvar); MatricularNovoUsuarioEmCursosObrigatorios(userSalvar); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); return; } WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Usuário cadastrado com sucesso!\nA senha gerada para o usuário criado foi: " + senhagerada + ".", "ListarUsuario.aspx"); }
/// <summary> /// Executar uma consulta de relatório em threading e enviar para a tela de Solicitações de relatórios via FileServer. /// Este método é um wrap do método para requisição em URL com menos parâmetros. /// </summary> /// <param name="requestUrl">URl da requisição</param> /// <param name="saida">Tipo de saída do relatório</param> /// <param name="nomeRelatorio">Nome técnico do relatório</param> /// <param name="nomeAmigavel">Nome amigável do relatório</param> /// <param name="quantidadeRegistro">Quantidade de registros do relatório</param> public static void ExecutarThreadSolicitacaoRelatorioRequisicao(string requestUrl, enumTipoSaidaRelatorio saida, string nomeRelatorio, string nomeAmigavel, int quantidadeRegistro) { // Obter o caminho do arquivo com um nome aleatório. var caminhoDiretorioUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; var nomeAleatorioDoArquivoParaUploadCriptografado = WebFormHelper.ObterStringAleatoria(); var diretorioDeUploadComArquivo = string.Concat(caminhoDiretorioUpload, @"\", nomeAleatorioDoArquivoParaUploadCriptografado); // Ler requisição a partir de uma URL informada. var webRequest = (HttpWebRequest)WebRequest.Create(requestUrl); ExecutarThreadSolicitacaoRelatorioRequisicao( webRequest, saida, nomeRelatorio, nomeAmigavel, diretorioDeUploadComArquivo, nomeAleatorioDoArquivoParaUploadCriptografado, new ManterUsuario().ObterUsuarioLogado(), new ManterSolicitacaoRelatorio(), new ManterFileServer(), quantidadeRegistro); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Seu relatório está sendo gerado e deve aparecer no menu de solicitações de relatórios em breve. O menu fica em \"SOLICITAÇÕES DE RELATÓRIOS > Histórico de solicitações\"."); }
public void GerarNotificacaoItemTrilha(TrilhaAtividadeFormativaParticipacao participacao) { string enderecoPortal = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoPortal).Registro; Notificacao notificacao = new Notificacao(); notificacao.Usuario = participacao.UsuarioTrilha.Usuario; notificacao.DataGeracao = DateTime.Now; notificacao.DataNotificacao = DateTime.Now; notificacao.TipoNotificacao = enumTipoNotificacao.Academico; notificacao.Visualizado = false; notificacao.Link = enderecoPortal + string.Format("trilhas/trilha/{0}/nivel/{1}", participacao.UsuarioTrilha.TrilhaNivel.Trilha.ID.ToString(), participacao.UsuarioTrilha.TrilhaNivel.ID); string nomeDoItem = participacao.TrilhaTopicoTematico.Nome; if (participacao.Autorizado.HasValue && participacao.Autorizado.Value) { notificacao.TextoNotificacao = string.Format("Parabéns, sua participação no sprint {0} da trilha {1} foi aprovada! Veja aqui o resultado", nomeDoItem, participacao.UsuarioTrilha.TrilhaNivel.Trilha.Nome); } else { notificacao.TextoNotificacao = string.Format("Sua participação no sprint {0} da trilha {1} precisa ser ajustada. Por favor, edite sua participação. clique aqu", nomeDoItem, participacao.UsuarioTrilha.TrilhaNivel.Trilha.Nome); } try { new BMNotificacao().Salvar(notificacao); } catch { throw new EmailException("Erro ao gerar notificação"); } }
public void CancelarMatriculaCapacitacao(int idMatriculaCapacitacao, AuthenticationRequest autenticacao) { MatriculaCapacitacao matriculaCapacitacao = new BMMatriculaCapacitacao().ObterPorId(idMatriculaCapacitacao); if (matriculaCapacitacao != null && matriculaCapacitacao.StatusMatricula == enumStatusMatricula.Inscrito) { TimeSpan diasMatriculados = Convert.ToDateTime(DateTime.Now) - Convert.ToDateTime(matriculaCapacitacao.DataInicio); if (diasMatriculados.Days > int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.DiasCancelamentoCurso).Registro)) { //Passou do Limite para cancelamento throw new AcademicoException("O prazo de cancelamento expirou"); } if (matriculaCapacitacao.ListaMatriculaTurmaCapacitacao != null && matriculaCapacitacao.ListaMatriculaTurmaCapacitacao.Count > 0) { // Embora esteja em uma lista ele sempre terá somente uma matrícula turma para cada matrícula capacitação por regra de negócio new BMMatriculaTurmaCapacitacao().ExcluirLista(matriculaCapacitacao.ListaMatriculaTurmaCapacitacao); matriculaCapacitacao.ListaMatriculaTurmaCapacitacao.Clear(); } matriculaCapacitacao.DataFim = DateTime.Now; matriculaCapacitacao.StatusMatricula = enumStatusMatricula.CanceladoAluno; matriculaCapacitacao.Auditoria = new Auditoria(autenticacao.Login); } else { throw new AcademicoException("Não foi encontrada nenhuma matrícula com cancelamento permitido"); } new BMMatriculaCapacitacao().Salvar(matriculaCapacitacao); }
private void BaixarArquivo() { int idItemTrilha = 0; if (ViewState["idItemTrilha"] != null) { //Obtém o Id do Item Trilha do viewstate idItemTrilha = (int)ViewState["idItemTrilha"]; } if (idItemTrilha > 0) { ItemTrilha itemTrilha = new ManterItemTrilha().ObterItemTrilhaPorID(idItemTrilha); if (itemTrilha != null) { string caminhoFisicoDoDiretorioDeUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; string caminhoLogicoDoArquivo = string.Concat(caminhoFisicoDoDiretorioDeUpload, "\\" + itemTrilha.FileServer.NomeDoArquivoNoServidor); if (!File.Exists(caminhoLogicoDoArquivo)) { throw new FileNotFoundException("Arquivo não encontrado no servidor!"); } Response.ContentType = itemTrilha.FileServer.TipoArquivo; Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", itemTrilha.FileServer.NomeDoArquivoOriginal)); HttpContext.Current.Response.WriteFile(caminhoLogicoDoArquivo); Response.End(); } } }
private void BaixarArquivo() { //Obtém o Id do Item Trilha participação do viewstate int iditemTrilhaTopicoTematico = ViewState["iditemTrilhaTopicoTematico"] == null ? 0 : (int)ViewState["iditemTrilhaTopicoTematico"]; if (iditemTrilhaTopicoTematico > 0) { TrilhaTopicoTematico itemTrilhaTopicoTematico = manterTrilhaTopicoTematico.ObterTrilhaTopicoTematicoPorID(iditemTrilhaTopicoTematico); if (itemTrilhaTopicoTematico != null) { string caminhoFisicoDoDiretorioDeUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; string caminhoLogicoDoArquivo = string.Concat(caminhoFisicoDoDiretorioDeUpload, @"\", itemTrilhaTopicoTematico.FileServer.NomeDoArquivoNoServidor); if (!File.Exists(caminhoLogicoDoArquivo)) { throw new FileNotFoundException("Arquivo não encontrado no servidor!"); } Response.ContentType = itemTrilhaTopicoTematico.FileServer.TipoArquivo; Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", itemTrilhaTopicoTematico.FileServer.NomeDoArquivoOriginal)); HttpContext.Current.Response.TransmitFile(caminhoLogicoDoArquivo); Response.End(); } } }
private FileServer ObterAnexo() { try { string caminhoDiretorioUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; string nomeAleatorioDoArquivoParaUploadCriptografado = WebFormHelper.ObterStringAleatoria(); string diretorioDeUploadComArquivo = string.Concat(caminhoDiretorioUpload, @"\", nomeAleatorioDoArquivoParaUploadCriptografado); try { //Salva o arquivo no caminho especificado fupldArquivoEnvio.PostedFile.SaveAs(diretorioDeUploadComArquivo); } catch { //Todo: -> Logar o Erro throw new AcademicoException("Ocorreu um erro ao Salvar o arquivo"); } FileServer retornoAnexo = new FileServer(); retornoAnexo = new FileServer(); retornoAnexo.NomeDoArquivoNoServidor = nomeAleatorioDoArquivoParaUploadCriptografado; retornoAnexo.NomeDoArquivoOriginal = fupldArquivoEnvio.FileName; retornoAnexo.TipoArquivo = fupldArquivoEnvio.PostedFile.ContentType; retornoAnexo.MediaServer = false; return(retornoAnexo); } catch { //Todo: -> Logar erro WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Erro ao salvar o anexo"); return(null); } }
private void BaixarArquivo() { int idtrilhaAtividadeInformativaParticipacao = 0; if (ViewState["idtrilhaAtividadeInformativaParticipacao"] != null) { //Obtém o Id da atividade formativa participação do viewstate idtrilhaAtividadeInformativaParticipacao = (int)ViewState["idtrilhaAtividadeInformativaParticipacao"]; } if (idtrilhaAtividadeInformativaParticipacao > 0) { classes.TrilhaAtividadeFormativaParticipacao trilhaAtividadeFormativaParticipacao = new ManterTrilhaAtividadeFormativaParticipacao().ObterTrilhaAtividadeFormativaParticipacaoPorID(idtrilhaAtividadeInformativaParticipacao); if (trilhaAtividadeFormativaParticipacao != null && trilhaAtividadeFormativaParticipacao.FileServer != null) { string caminhoFisicoDoDiretorioDeUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; //string caminhoLogicoDoDiretorioDeUpload = WebFormHelper.ObterCaminhoVirtualDoDiretorioDeUpload(caminhoFisicoDoDiretorioDeUpload); string caminhoLogicoDoArquivo = string.Concat(caminhoFisicoDoDiretorioDeUpload, "\\" + trilhaAtividadeFormativaParticipacao.FileServer.NomeDoArquivoNoServidor); if (!File.Exists(caminhoLogicoDoArquivo)) { throw new FileNotFoundException("Arquivo não encontrado no servidor!"); } Response.ContentType = trilhaAtividadeFormativaParticipacao.FileServer.TipoArquivo; Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", trilhaAtividadeFormativaParticipacao.FileServer.NomeDoArquivoOriginal)); HttpContext.Current.Response.TransmitFile(caminhoLogicoDoArquivo); Response.End(); } } }
public void SolicitarNovaProvaTrilha(int pUsuarioTrilha, AuthenticationRequest autenticacao) { var ut = BmUsuarioTrilha.ObterPorId(pUsuarioTrilha); if (ut == null) { throw new AcademicoException("Usuário não encontrado"); } if (ut.DataLiberacaoNovaProva.HasValue) { throw new AcademicoException(string.Format("Você poderá fazer nova prova a partir do dia {0}", ut.DataLiberacaoNovaProva.Value.ToString("dd/MM/yyyy"))); } int diasProrrogacao; if (!int.TryParse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.DiasCancelamentoCurso).Registro.ToString(), out diasProrrogacao)) { diasProrrogacao = 10; } ut.DataLiberacaoNovaProva = DateTime.Today.AddDays(diasProrrogacao); ut.NovaProvaLiberada = true; ut.Auditoria = new Auditoria(autenticacao.Login); ut.StatusMatricula = enumStatusMatricula.Inscrito; BmUsuarioTrilha.Salvar(ut); }
protected void Page_Load(object sender, EventArgs e) { var enderecoDashboardRedmine = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.DashboardRedmine).Registro; //HtmlIframe FrameDashboard = (HtmlIframe)Page.FindControl("FrameDashboard"); FrameDashboard.Attributes.Add("src", enderecoDashboardRedmine); }
public void CancelarMatriculaSolucaoEducacional(int idMatriculaOferta, AuthenticationRequest autenticacao) { MatriculaOferta matriculaOferta = new BMMatriculaOferta().ObterPorID(idMatriculaOferta); if (matriculaOferta != null) { TimeSpan diasMatriculados = Convert.ToDateTime(DateTime.Now) - Convert.ToDateTime(matriculaOferta.DataSolicitacao); if (diasMatriculados.Days > int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.DiasCancelamentoCurso).Registro)) { //Passou do Limite para cancelamento throw new AcademicoException("Prazo expirado para o cancelamento"); } if (matriculaOferta.MatriculaTurma != null) { //matriculaOferta.MatriculaTurma.StatusMatricula = enumStatusMatricula.CanceladoAluno; //matriculaOferta.MatriculaTurma.Auditoria = new Auditoria(autenticacao.Login); } matriculaOferta.StatusMatricula = enumStatusMatricula.CanceladoAluno; if (matriculaOferta.MatriculaTurma != null && matriculaOferta.MatriculaTurma.Count > 0) { matriculaOferta.MatriculaTurma.Clear(); } matriculaOferta.Auditoria = new Auditoria(autenticacao.Login); new BMMatriculaOferta().Salvar(matriculaOferta); } else { throw new AcademicoException("Matrícula não encontrada"); } }
private static bool UsuarioPossuiLimiteInscricoesSimultaneas(int usuarioId, ref DTODisponibilidadeSolucaoEducacional retorno) { var listaMatriculaOferta = new ManterMatriculaOferta().ObterPorUsuario(usuarioId).Select(x => new MatriculaOferta { ID = x.ID, StatusMatricula = x.StatusMatricula }); var cursosInscrito = listaMatriculaOferta.Count(x => x.StatusMatricula == enumStatusMatricula.Inscrito); int limteCursosSimultaneos; if ( int.TryParse( ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.CursosSimultaneos).Registro, out limteCursosSimultaneos)) { if (cursosInscrito < limteCursosSimultaneos) { return(false); } retorno.TextoDisponibilidade = string.Format("Você só pode realizar {0} em simultâneo.", limteCursosSimultaneos); retorno.CodigoDisponibilidade = (int)enumDisponibilidadeSolucaoEducacional.NaoPossuiDisponibilidade; return(true); } return(false); }
private FileServer salvaArquivoBase64Sprint(string imagem, string nomeOriginalArquivo, string tipoArquivo, string login) { FileServer fileServer = new FileServer(); MemoryStream memoryStream = CommonHelper.ObterMemoryStream(imagem, false); fileServer = CommonHelper.ObterObjetoFileServer(memoryStream); //Define o tipo de arquivo (/Quebra a string para obter o tipo do arquivo. Ex: bmp, jpeg, etc...) fileServer.TipoArquivo = tipoArquivo; fileServer.MediaServer = false; fileServer.NomeDoArquivoOriginal = nomeOriginalArquivo; fileServer.Auditoria = new Auditoria(login); //Salva a imagem no disco ConfiguracaoSistema caminhoParaDiretorioDeUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload); try { string caminhoCompletoComNomeDoArquivo = string.Concat(caminhoParaDiretorioDeUpload.Registro, "\\", fileServer.NomeDoArquivoNoServidor); //Salva a imagem no disco using (FileStream file = new FileStream(caminhoCompletoComNomeDoArquivo, FileMode.Create, FileAccess.Write)) { memoryStream.WriteTo(file); file.Close(); }; } catch (IOException ex) { throw ex; } return(fileServer); }
private void ValidarOfertaNormal(Oferta oferta, int idUsuario, List <int> pListaIdMetaIndividualAssociada, List <int> pListaIdMetaInstitucionalAssociada, AuthenticationRequest autenticacao) { int qtdInscritosNaOferta = oferta.ListaMatriculaOferta.Where(x => (x.StatusMatricula != enumStatusMatricula.CanceladoAdm && x.StatusMatricula != enumStatusMatricula.CanceladoAluno)) .Count(); Usuario usuario = new BMUsuario().ObterPorId(idUsuario); MatriculaOferta matriculaOferta = new MatriculaOferta() { Oferta = new BMOferta().ObterPorId(oferta.ID), Usuario = usuario, Auditoria = new Auditoria(autenticacao.Login), DataSolicitacao = DateTime.Now, UF = new BMUf().ObterPorId(usuario.UF.ID), NivelOcupacional = new BMNivelOcupacional().ObterPorID(usuario.NivelOcupacional.ID) }; if ((oferta.QuantidadeMaximaInscricoes > 0) && qtdInscritosNaOferta >= oferta.QuantidadeMaximaInscricoes) { if (oferta.FiladeEspera) { matriculaOferta.StatusMatricula = enumStatusMatricula.FilaEspera; } else { throw new AcademicoException("Erro: A quantidade máxima de alunos foi atingida"); } } else { matriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito; } BMMatriculaOferta bmMatriculaOferta = new BMMatriculaOferta(); bmMatriculaOferta.Salvar(matriculaOferta); qtdInscritosNaOferta++; //validando se a turma já está chegando ao limite. if (qtdInscritosNaOferta > (oferta.QuantidadeMaximaInscricoes - int.Parse( ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.LimiteAlertaInscricaoOferta) .Registro))) { EnviarEmailLimiteOferta(oferta, matriculaOferta); } ValidarMetaIndividual(idUsuario, oferta.SolucaoEducacional.ID, pListaIdMetaIndividualAssociada, autenticacao); ValidarMetaInstitucional(idUsuario, oferta.SolucaoEducacional.ID, pListaIdMetaInstitucionalAssociada, autenticacao); }
private static void EnviarArquivoParaRepositorio(MemoryStream memoryStream, string nomeArquivoNoServidor) { var caminhoDiretorioUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; var diretorioDeUploadComArquivo = string.Concat(caminhoDiretorioUpload, @"\", nomeArquivoNoServidor); File.WriteAllBytes(diretorioDeUploadComArquivo, memoryStream.ToArray()); }
//Trilha Game public dynamic CadastrarSolucaoTrilheiro(UsuarioTrilha usuarioTrilha, DTOSolucaoTrilheiro dtoSolucaoTrilheiro, UsuarioTrilha matricula) { FileServer fileServer = null; if (!string.IsNullOrEmpty(dtoSolucaoTrilheiro.Arquivo)) { //Fazer upload do arquivo var memoryStream = CommonHelper.ObterMemoryStream(dtoSolucaoTrilheiro.Arquivo); fileServer = CommonHelper.ObterObjetoFileServer(memoryStream); var caminhoDiretorioUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; // Escrever o arquivo na pasta. CommonHelper.EnviarArquivoParaRepositorio(caminhoDiretorioUpload, memoryStream, fileServer.NomeDoArquivoNoServidor); fileServer.TipoArquivo = CommonHelper.ObterTipoDoArquivo(dtoSolucaoTrilheiro.Arquivo); fileServer.MediaServer = true; fileServer.NomeDoArquivoOriginal = dtoSolucaoTrilheiro.NomeDoArquivoOriginal; fileServer.Auditoria = new Auditoria(matricula.Usuario.CPF); new BMFileServer().Salvar(fileServer); } //item Trilha var item = new ItemTrilha { ID = 0, DataCriacao = DateTime.Now, Nome = dtoSolucaoTrilheiro.Nome, Local = dtoSolucaoTrilheiro.Orientacao, LinkConteudo = dtoSolucaoTrilheiro.LinkConteudo, ReferenciaBibliografica = dtoSolucaoTrilheiro.ReferenciaBibliografica, QuantidadePontosParticipacao = 1, SolucaoEducacional = null, Missao = new ManterMissao().ObterPorID(dtoSolucaoTrilheiro.MissaoId), Usuario = usuarioTrilha.Usuario, FormaAquisicao = new ManterFormaAquisicao().ObterFormaAquisicaoPorID(dtoSolucaoTrilheiro.IdTipo), Ativo = true, Aprovado = enumStatusSolucaoEducacionalSugerida.Aprovado, FileServer = fileServer, CargaHoraria = dtoSolucaoTrilheiro.GetCargaHoriaEmMinutos() }; bmItemTrilha.Salvar(item); // Retorna os dados para re-inserção na tela. return(new DtoTrilhaSolucaoSebrae { Id = item.ID, Nome = item.Nome, FormaAquisicaoId = item.FormaAquisicao.ID, FormaAquisicao = item.FormaAquisicao.Nome, Orientacao = !string.IsNullOrWhiteSpace(item.Local) ? item.Local : "Sem Orientação" }); }
public void ProcessRequest(HttpContext context) { string Identificador; if (context.Request.QueryString["Identificador"] == null) { context.Response.ContentType = "text/plain"; context.Response.Write("Acesso negado!"); return; } Identificador = context.Request.QueryString["Identificador"].ToString(); if (!string.IsNullOrEmpty(Identificador)) { Type tipoArquivo; context.Response.Clear(); //FileServer fs = new FileServer(); //fs.NomeDoArquivoNoServidor = Identificador; //fs.MediaServer = false; //contentMediaServer = manterFileServer.ObterFileServerPorFiltro(fs).FirstOrDefault(); try { using (MemoryStream ms = new MemoryStream()) { using (FileStream file = new FileStream(string.Concat(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro, @"\", Identificador), FileMode.Open, FileAccess.Read)) { byte[] bytes = new byte[file.Length]; file.Read(bytes, 0, (int)file.Length); ms.Write(bytes, 0, (int)file.Length); tipoArquivo = file.GetType(); } // Removendo caracteres especiais que travam no chrome. //contentMediaServer.NomeDoArquivoOriginal = // RemoverCaracterEspecial(contentMediaServer.NomeDoArquivoOriginal); //context.Response.AddHeader("Content-Disposition", "attachment; filename=" + contentMediaServer.NomeDoArquivoOriginal); context.Response.ContentType = tipoArquivo.Name; context.Response.ContentEncoding = Encoding.UTF8; context.Response.BinaryWrite(ms.ToArray()); context.Response.Flush(); } } catch (Exception ex) { context.Response.ContentType = "text/plain"; context.Response.Write("Erro filetype 1 - " + ex.ToString()); return; } } }
private void ValidarArquivoDeEnvio(string nomeArquivo = "") { //Arquivo de Envio if (fupldArquivoEnvio != null && fupldArquivoEnvio.PostedFile != null && fupldArquivoEnvio.PostedFile.ContentLength > 0) { try { string nomeArquivoFinal = fupldArquivoEnvio.FileName; if (!string.IsNullOrEmpty(nomeArquivo)) { nomeArquivoFinal = nomeArquivo + "." + fupldArquivoEnvio.FileName.Split('.').Last(); } var caminhoDiretorioUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; var nomeAleatorioDoArquivoParaUploadCriptografado = WebFormHelper.ObterStringAleatoria(); var diretorioDeUploadComArquivo = string.Concat(caminhoDiretorioUpload, @"\", nomeAleatorioDoArquivoParaUploadCriptografado); try { //Salva o arquivo no caminho especificado fupldArquivoEnvio.PostedFile.SaveAs(diretorioDeUploadComArquivo); } catch { //Todo: -> Logar o Erro throw new AcademicoException("Ocorreu um erro ao Salvar o arquivo"); } _itemTrilhaEdicao.FileServer = new FileServer { NomeDoArquivoNoServidor = nomeAleatorioDoArquivoParaUploadCriptografado, NomeDoArquivoOriginal = nomeArquivoFinal, TipoArquivo = fupldArquivoEnvio.PostedFile.ContentType, MediaServer = false }; } catch (AcademicoException ex) { throw ex; } catch { //Todo: -> Logar erro throw new AcademicoException("Ocorreu um Erro ao Salvar o arquivo"); } } }
public void ValidarSeUsuarioJaEstaMatriculado(IList <MatriculaOferta> listaMatriculaOferta) { IList <MatriculaOferta> ListaMatriculaOferta = listaMatriculaOferta; int cursosEmAndamento = ListaMatriculaOferta.Where(x => x.StatusMatricula.Equals(enumStatusMatricula.Inscrito)).Count(); int limteCursosSimultaneos = int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.CursosSimultaneos).Registro); if (cursosEmAndamento >= limteCursosSimultaneos) { throw new AcademicoException(string.Format("Você já está matriculado em {0} ou mais soluções", limteCursosSimultaneos.ToString())); } }
public void CadastrarHistorico(ItemTrilhaParticipacao itemParticipacao, bool enviarEmail) { try { new BMItemTrilhaParticipacao().Salvar(itemParticipacao); } catch (Exception ex) { throw ex; } if (enviarEmail) { try { var template = TemplateUtil.ObterInformacoes(enumTemplate.MensagemMonitorTrilha); var mensagem = template.TextoTemplate; var nomeTrilha = itemParticipacao.UsuarioTrilha.TrilhaNivel.Trilha.Nome; var anexo = string.Empty; if (itemParticipacao.FileServer != null) { anexo = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoSGUS).Registro + "/ExibirFileServer.ashx?Identificador=" + itemParticipacao.FileServer.NomeDoArquivoNoServidor; } mensagem = mensagem.Replace("#NOMETRILHA", nomeTrilha) .Replace("#TRILHANIVEL", itemParticipacao.UsuarioTrilha.TrilhaNivel.Nome) .Replace("#TEXTOMONITOR", itemParticipacao.TextoParticipacao) .Replace("#TOPICOTEMATICO", itemParticipacao.ItemTrilha.Missao.PontoSebrae.Nome) .Replace("#ITEMAVALIADO", itemParticipacao.ItemTrilha.Nome) .Replace("#NOMEMONITOR", itemParticipacao.Monitor.Nome) .Replace("#EMAILMONITOR", itemParticipacao.Monitor.Email) .Replace("#NOME", itemParticipacao.UsuarioTrilha.Usuario.Nome) .Replace("#ANEXO", anexo); var destinatario = itemParticipacao.UsuarioTrilha.Usuario.Email; var assunto = "Analisamos sua participação na trilha " + nomeTrilha; EmailUtil.Instancia.EnviarEmail(destinatario, assunto, mensagem); } catch { throw new EmailException("Erro ao enviar o email"); } } }
public void ProcessRequest(HttpContext context) { int Identificador = 0; RequestContext requestContext = context.Request.RequestContext; // Utilizado para obter id de requests por querystring e por sistema de rotas if (!int.TryParse(requestContext.RouteData.Values["Id"] as string, out Identificador)) { if (context.Request.QueryString["Identificador"] == null || !int.TryParse(context.Request.QueryString["Identificador"].ToString(), out Identificador)) { context.Response.ContentType = "text/plain"; context.Response.Write("Acesso negado!"); return; } } if (Identificador > 0) { context.Response.Clear(); contentMediaServer = manterFileServer.ObterFileServerPorID(Identificador); if (contentMediaServer != null) { try { using (MemoryStream ms = new MemoryStream()) { using (FileStream file = new FileStream(string.Concat(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro, @"\", contentMediaServer.NomeDoArquivoNoServidor), FileMode.Open, FileAccess.Read)) { byte[] bytes = new byte[file.Length]; file.Read(bytes, 0, (int)file.Length); ms.Write(bytes, 0, (int)file.Length); } context.Response.AddHeader("Content-Disposition", "attachment; filename=" + contentMediaServer.NomeDoArquivoOriginal); context.Response.ContentType = contentMediaServer.TipoArquivo; context.Response.BinaryWrite(ms.ToArray()); context.Response.Flush(); } } catch (Exception ex) { context.Response.ContentType = "text/plain"; context.Response.Write("Erro filetype 1 - " + ex.ToString()); return; } } } }
public void GerarNotificacaoItemTrilha(ItemTrilhaParticipacao itemParticipacao) { var enderecoPortal = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoPortal).Registro; var notificacao = new Notificacao { Usuario = itemParticipacao.UsuarioTrilha.Usuario, UsuarioTrilha = itemParticipacao.UsuarioTrilha, DataGeracao = DateTime.Now, DataNotificacao = DateTime.Now, TipoNotificacao = enumTipoNotificacao.Academico, Visualizado = false, Link = enderecoPortal + string.Format("trilha/mapa/{0}", itemParticipacao.UsuarioTrilha.TrilhaNivel.ID) }; var nomeDoItem = itemParticipacao.ItemTrilha.Nome; var nomeTrilha = new ManterItemTrilha().ObterItemTrilhaPorID(itemParticipacao.ItemTrilha.ID) .Missao.PontoSebrae.TrilhaNivel.Trilha.Nome; if (itemParticipacao.Autorizado.HasValue && itemParticipacao.Autorizado.Value) { notificacao.TextoNotificacao = string.Format( "Parabéns, sua participação na Solução Sebrae {0} da trilha {1} foi aprovada!", nomeDoItem, nomeTrilha); } else { notificacao.TextoNotificacao = string.Format( "Sua participação na Solução Sebrae \"{0}\" na trilha {1} precisa ser ajustada. Por favor, edite sua participação. clique aqui", nomeDoItem, nomeTrilha); } try { new BMNotificacao().Salvar(notificacao); } catch { throw new EmailException("Erro ao gerar notificação"); } }
public IEnumerable <DTOEvento> ObterEventos() { try { var url = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.UrlCredenciamento).Registro; var json = JsonUtil.ObterJson(url + "evento/listartodos"); if (!string.IsNullOrEmpty(json)) { return(JsonConvert.DeserializeObject <List <DTOEvento> >(json).ToArray()); } return(new List <DTOEvento>()); } catch (System.Exception) { throw new AcademicoException("Não foi possível recuperar os eventos do sistema de credenciamento"); } }
public IEnumerable <DTOEvento> ObterPresencasEventoFinalizado(DateTime data) { try { var url = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.UrlCredenciamento).Registro; var json = JsonUtil.ObterJson(url + "evento/listarParticipacoesEmFinalizados/" + DateTime.Now.ToString("yyyy-MM-dd")); if (!string.IsNullOrEmpty(json)) { return(JsonConvert.DeserializeObject <List <DTOEvento> >(json).ToArray()); } return(null); } catch (System.Exception) { throw new AcademicoException("Não foi possível recuperar os eventos do sistema de credenciamento"); } }
public List <DTOProtocolo> AcompanharProtocolo(int numeroProtocolo) { var listaProtocolos = bmProtocolo.ObterTodosPorNumero(numeroProtocolo).ToList(); List <DTOProtocolo> dtoProtocolos = new List <DTOProtocolo>(); foreach (var protocolo in listaProtocolos) { var dtoProtocolo = new DTOProtocolo { ID = protocolo.ID, Numero = protocolo.Numero, DataEnvio = protocolo.DataEnvio.ToString("dd/MM/yyyy HH:mm:ss"), DataRecebimento = protocolo.DataRecebimento != null?protocolo.DataRecebimento.Value.ToString("dd/MM/yyyy HH:mm:ss") : "", Descricao = protocolo.Descricao, NomeRemetente = protocolo.Remetente != null ? protocolo.Remetente.Nome : "", NomeDestinatario = protocolo.Destinatario != null ? protocolo.Destinatario.Nome : "", AssinaturaRecebimento = protocolo.UsuarioAssinatura != null ? protocolo.UsuarioAssinatura.Nome : "", ID_UsuarioDestinatario = protocolo.Destinatario != null ? protocolo.Destinatario.ID : 0, ID_UsuarioRemetente = protocolo.Remetente != null ? protocolo.Remetente.ID : 0, Anexos = protocolo.Anexos.ToList().Select(a => new DTOFileServer { IdFileServer = a.FileServer.ID, FileServerLink = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoSGUS, null).Registro + string.Format(@"/ExibirFileServer.ashx?Identificador={1}", HttpContext.Current.Request.Url, a.FileServer.NomeDoArquivoNoServidor), NomeDoArquivoOriginal = a.FileServer.NomeDoArquivoOriginal, Usuario = a.Usuario.Nome, DataEnvio = a.FileServer.DataAlteracao?.ToString("dd/MM/yyyy") }).ToList(), Despacho = protocolo.Despacho, DespachoReencaminhamento = protocolo.DespachoReencaminhamento, ProtocoloPai = protocolo.ProtocoloPai?.ID, Arquivado = protocolo.Arquivado }; dtoProtocolos.Add(dtoProtocolo); } return(dtoProtocolos.OrderByDescending(x => x.Numero).ToList()); }
/// <summary> /// Método usado para notificar o destinatário caso aconteça o envio de um protocolo. /// </summary> /// <param name="remetente"></param> /// <param name="destinatario"></param> public void NotificarDestinatario(Usuario remetente, Usuario destinatario, Protocolo protocolo) { if (destinatario != null) { if (string.IsNullOrEmpty(destinatario.Email)) { throw new AcademicoException("Email não cadastrado"); } Template email = TemplateUtil.ObterInformacoes(enumTemplate.NotificacaoEnvioProtocolo); var documentos = protocolo.Anexos.Select(x => x.FileServer.NomeDoArquivoOriginal); var nomesDocumentos = string.Join(", ", documentos); var endereco = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoPortal30, null).Registro; email.TextoTemplate = email.TextoTemplate .Replace("#NUMEROPROTOCOLO", protocolo.Numero.ToString()) .Replace("#DOCUMENTO ", nomesDocumentos) .Replace("#DESCRIMINACAO", protocolo.Descricao) .Replace("#LINKACESSO", endereco + "protocolos/detalhes/" + protocolo.Numero.ToString()); EmailUtil.Instancia.EnviarEmail(destinatario.Email, email.Assunto, email.TextoTemplate); } }
private void NotificarUsuariosQueDesejamReceberNotificacaoOferta(Oferta oferta) { if (oferta.TipoOferta.Equals(enumTipoOferta.Exclusiva)) { return; } IList <Usuario> ListaUsuariosQueDesejamReceberNotificacaoOferta = new BMUsuario().ObterUsuariosQueDesejamReceberNotificacaoOferta(); if (ListaUsuariosQueDesejamReceberNotificacaoOferta != null && ListaUsuariosQueDesejamReceberNotificacaoOferta.Count > 0) { BMNotificacao notificacaoBM = new BMNotificacao(); Notificacao notificacao = null; foreach (Usuario u in ListaUsuariosQueDesejamReceberNotificacaoOferta) { notificacao = new Notificacao() { DataGeracao = DateTime.Now, DataNotificacao = DateTime.Now, Usuario = new BMUsuario().ObterPorId(u.ID), TextoNotificacao = "Há vaga para o curso de seu interesse", }; if (oferta.SolucaoEducacional.IdNode > 0) { notificacao.Link = string.Concat(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoPortal).Registro, string.Format("/Inscricoes/Inscricao/{0}", oferta.SolucaoEducacional.IdNode)); } else { notificacao.Link = string.Concat(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoPortal).Registro, "/Inscricoes/"); } } } }
public void AtualizaNodeDrupal(CategoriaConteudo registro, string url) { try { if (!(registro.IdNode > 0)) { return; } string sbTodasTaxonomias = this.PrepararEntradaDeDadosParaOServicoDrupal(registro); int idNodePai = 0; if (registro.CategoriaConteudoPai != null && registro.CategoriaConteudoPai.ID > 0 && !registro.CategoriaConteudoPai.IdNode.HasValue) { throw new AlertException("Dados salvaos no banco de dados. Não foi possível enviar os dados para o Portal. Favor publicar a categoria pai primeiro"); } if (registro.CategoriaConteudoPai != null && registro.CategoriaConteudoPai.IdNode.HasValue) { idNodePai = registro.CategoriaConteudoPai.IdNode.Value; } bool ativo = true; string linkParaImagem = string.Empty; //if (registro.Imagem != null && registro..ID > 0) //{ // ConfiguracaoSistema caminhoParaDiretorioDeUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoSGUS); // linkParaImagem = CommonHelper.ObterLinkParaArquivoDeImagem(caminhoParaDiretorioDeUpload.Registro, registro.Imagem.ID); //} var postParameters = new Dictionary <string, string> { { "login", ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.UsuarioSOAPPortal).Registro }, { "senha", ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.SenhaSOAPPortal).Registro }, { "id_solucao_educacional", string.Empty }, { "titulo", registro.Nome }, { "corpo", registro.Apresentacao }, { "lista_taxs", sbTodasTaxonomias }, { "status", ativo.ToString() }, { "node_id", registro.IdNode.ToString() }, { "parent_id", idNodePai.ToString() }, { "imagem", linkParaImagem } }; var result = JsonUtil.GetJson <DTOJsonResultNodeId>(url, "POST", postParameters); /*cursos_soap_updateRequest c = new cursos_soap_updateRequest( * ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.UsuarioSOAPPortal).Registro , * ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.SenhaSOAPPortal).Registro, * string.Empty, * registro.Nome, * registro.Apresentacao, * sbTodasTaxonomias, * ativo.ToString(), * registro.IdNode.ToString(), * idNodePai.ToString(), * linkParaImagem, * registro.CargaHoraria); * * soap_server_port_type s = new soap_server_port_typeClient(); * cursos_soap_updateResponse cursosSoapCreateResponse = s.cursos_soap_update(c);*/ int nodeRetorno = int.Parse(result.status); if (nodeRetorno != registro.IdNode) { CategoriaConteudo categoriaConteudo = new BMCategoriaConteudo().ObterPorID(registro.ID); categoriaConteudo.IdNode = int.Parse(result.status); new BMCategoriaConteudo().Alterar(categoriaConteudo); } } catch (AlertException ex) { throw ex; } catch (Exception) { throw new AlertException("Dados salvos no banco de dados. Erro ao sincronizar com o Portal"); } }
public void MatricularSolucaoEducacional(int idUsuario, int idSolucaoEducacional, int idOferta, List <int> pListaIdMetaIndividualAssociada, List <int> pListaIdMetaInstitucionalAssociada, AuthenticationRequest autenticacao) { Usuario userSelected = new BMUsuario().ObterPorId(idUsuario); SolucaoEducacional solucaoEducacional = new BMSolucaoEducacional().ObterPorId(idSolucaoEducacional); BMMatriculaOferta moBM = new BMMatriculaOferta(); if (solucaoEducacional == null) { throw new AcademicoException("Solução Educacional não encontrada"); } //VALIDAR SE ELE TEM ALGUMA OFERTA EXCLUSIVA PENDENTE DE CONFIRMACAO if (userSelected.ListaMatriculaOferta.Any(x => x.Oferta.ID == idOferta && x.Oferta.SolucaoEducacional.ID == idSolucaoEducacional && x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno && x.Oferta.DataFim.Value.Date >= DateTime.Now.Date)) { MatriculaOferta mo = userSelected.ListaMatriculaOferta.Where(x => x.Oferta.SolucaoEducacional.ID == idSolucaoEducacional && x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno).FirstOrDefault(); if (mo != null) { mo.StatusMatricula = enumStatusMatricula.Inscrito; mo.Auditoria = new Auditoria(autenticacao.Login); moBM.Salvar(mo); ValidarMetaIndividual(idUsuario, idSolucaoEducacional, pListaIdMetaIndividualAssociada, autenticacao); ValidarMetaInstitucional(idUsuario, idSolucaoEducacional, pListaIdMetaInstitucionalAssociada, autenticacao); if (!(mo.MatriculaTurma != null && mo.MatriculaTurma.Count > 0)) { try { if (mo.Oferta.TipoOferta.Equals(enumTipoOferta.Continua)) { string retornows; switch (mo.Oferta.SolucaoEducacional.Fornecedor.ID) { case (int)enumFornecedor.MoodleSebrae: moodle.IntegracaoSoapClient soapCliente = new moodle.IntegracaoSoapClient(); retornows = soapCliente.MatricularAluno( userSelected.Nome, userSelected.CPF, userSelected.Email, userSelected.Cidade, mo.Oferta.SolucaoEducacional.IDChaveExterna.ToString(), mo.MatriculaTurma.FirstOrDefault().Turma.IDChaveExterna.ToString()); break; case (int)enumFornecedor.WebAula: Turma turma = mo.MatriculaTurma.FirstOrDefault().Turma; webaula.waIntegracaoSoapClient wa = new webaula.waIntegracaoSoapClient(); webaula.AuthenticationProviderRequest aut = new webaula.AuthenticationProviderRequest(); webaula.DTOUsuario dtoUsuario = new webaula.DTOUsuario(); webaula.DTOTurma dtoTurma = new webaula.DTOTurma(); dtoTurma.IDChaveExterna = turma.IDChaveExterna; dtoUsuario.CPF = userSelected.CPF; dtoUsuario.Email = userSelected.Email; dtoUsuario.Nome = userSelected.Nome; dtoUsuario.Sexo = userSelected.Sexo; dtoUsuario.UF = userSelected.UF.Sigla; aut.Login = mo.Oferta.SolucaoEducacional.Fornecedor.Login; aut.Senha = CriptografiaHelper.Decriptografar(mo.Oferta.SolucaoEducacional.Fornecedor.Senha); retornows = wa.Matricular(aut, dtoUsuario, dtoTurma); break; } } } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } } if (!string.IsNullOrEmpty(mo.Usuario.Email)) { Template mensagemRecuperacaoDeSenhaSemConfirmacao = TemplateUtil.ObterInformacoes(enumTemplate.InscricaoSESucesso); string assuntoDoEmail = mensagemRecuperacaoDeSenhaSemConfirmacao.DescricaoTemplate.Substring(0, mensagemRecuperacaoDeSenhaSemConfirmacao.DescricaoTemplate.IndexOf(Environment.NewLine)); Dictionary <string, string> registros = new Dictionary <string, string>(); registros.Add("NOMESOLUCAOEDUCACIONAL", mo.Oferta.SolucaoEducacional.Nome); registros.Add("DATASISTEMA", DateTime.Now.ToString("dd'/'MM'/'yyyy HH:mm")); registros.Add("NOMEALUNO", mo.Usuario.Nome); //Envia e-mail para o usuário EmailUtil.Instancia.EnviarEmail(mo.Usuario.Email, assuntoDoEmail, this.FormatarTextoEmail(registros, mensagemRecuperacaoDeSenhaSemConfirmacao.DescricaoTemplate) ); } return; } } //Verificando se existe alguma matricula na SE. MatriculaOferta buscaMatricula = new MatriculaOferta(); buscaMatricula.Usuario = new Usuario(); buscaMatricula.Usuario.ID = userSelected.ID; List <MatriculaOferta> possiveisMatriculas = new BMMatriculaOferta().ObterPorFiltro(buscaMatricula).ToList(); if (possiveisMatriculas != null && possiveisMatriculas.Any(y => y.Oferta.SolucaoEducacional.ID == idSolucaoEducacional && !(y.StatusMatricula == enumStatusMatricula.CanceladoAdm || y.StatusMatricula == enumStatusMatricula.CanceladoAluno))) { throw new AcademicoException("Erro: O usuário já está matriculado em uma oferta desta Solução Educacional"); } //VALIDAR SE O USUARIO POSSUI ACESSO A SE bool usuarioPossuiPermissao = new BMSolucaoEducacional().VerificarSeUsuarioPossuiPermissao(idUsuario, solucaoEducacional.ID); // .ObterListaUsuariosPermitidos(); if (!usuarioPossuiPermissao) { throw new AcademicoException("Erro: O usuário Informado não possui permissão à Solução Educacional"); } //VALIDAR SE O USUARIO ESTA CURSANDO OUTRA SE if (userSelected.ListaMatriculaOferta.Any(y => y.Usuario.ID == userSelected.ID && y.StatusMatricula == enumStatusMatricula.Inscrito)) { throw new AcademicoException("Erro: O usuário já está inscrito em outra oferta."); } //VALIDAR SE O USUARIO ESTA COM ALGUM ABANDONO ATIVO if (new BMUsuarioAbandono().ValidarAbandonoAtivo(idUsuario)) { throw new AcademicoException("Erro: Existe um abandono registrado para este usuário!"); } Oferta oferta = new Oferta(); oferta = solucaoEducacional.ListaOferta.FirstOrDefault(x => x.ID == idOferta); if (oferta == null) { throw new AcademicoException("Erro: Oferta não encontrada"); } //VALIDADO OFERTA CONTINUA. if (oferta.TipoOferta.Equals(enumTipoOferta.Continua)) { Turma t = null; if (oferta.SolucaoEducacional.Fornecedor.PermiteGestaoSGUS) { t = oferta.ListaTurma.FirstOrDefault(x => x.DataFinal == null || x.DataFinal.Value.Date >= DateTime.Now.Date && x.InAberta); } int qtdInscritosNaOferta = oferta.ListaMatriculaOferta.Where(x => (x.StatusMatricula != enumStatusMatricula.CanceladoAdm && x.StatusMatricula != enumStatusMatricula.CanceladoAluno)).Count(); MatriculaOferta matriculaOferta = new MatriculaOferta() { Oferta = new BMOferta().ObterPorId(oferta.ID), Usuario = new BMUsuario().ObterPorId(userSelected.ID), Auditoria = new Auditoria(autenticacao.Login), DataSolicitacao = DateTime.Now, UF = new BMUf().ObterPorId(userSelected.UF.ID), NivelOcupacional = new BMNivelOcupacional().ObterPorID(userSelected.NivelOcupacional.ID) }; if (qtdInscritosNaOferta >= oferta.QuantidadeMaximaInscricoes) { if (oferta.FiladeEspera) { matriculaOferta.StatusMatricula = enumStatusMatricula.FilaEspera; } else { throw new AcademicoException("Erro: A quantidade máxima de alunos foi atingida"); } } else { matriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito; } qtdInscritosNaOferta++; if (t != null) { MatriculaTurma matriculaTurma = new MatriculaTurma() { Turma = new BMTurma().ObterPorID(t.ID), Auditoria = new Auditoria(autenticacao.Login), DataMatricula = DateTime.Now, MatriculaOferta = matriculaOferta, DataLimite = DateTime.Today.AddDays(oferta.DiasPrazo) }; if (matriculaOferta.MatriculaTurma == null) { matriculaOferta.MatriculaTurma = new List <MatriculaTurma>(); } matriculaOferta.MatriculaTurma.Add(matriculaTurma); } moBM.Salvar(matriculaOferta); //validando se a turma já está chegando ao limite. if (qtdInscritosNaOferta > (oferta.QuantidadeMaximaInscricoes - int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.LimiteAlertaInscricaoOferta).Registro))) { EnviarEmailLimiteOferta(oferta, matriculaOferta); } ValidarMetaIndividual(idUsuario, idSolucaoEducacional, pListaIdMetaIndividualAssociada, autenticacao); ValidarMetaInstitucional(idUsuario, idSolucaoEducacional, pListaIdMetaInstitucionalAssociada, autenticacao); try { if (matriculaOferta.Oferta.TipoOferta.Equals(enumTipoOferta.Continua) && matriculaOferta.MatriculaTurma != null) { string retornows; switch (matriculaOferta.Oferta.SolucaoEducacional.Fornecedor.ID) { case (int)enumFornecedor.MoodleSebrae: moodle.IntegracaoSoapClient soapCliente = new moodle.IntegracaoSoapClient(); retornows = soapCliente.MatricularAluno(userSelected.Nome, userSelected.CPF, userSelected.Email, userSelected.Cidade, matriculaOferta.Oferta.SolucaoEducacional.IDChaveExterna.ToString(), matriculaOferta.MatriculaTurma.FirstOrDefault().Turma.IDChaveExterna.ToString()); break; case (int)enumFornecedor.WebAula: Turma turma = matriculaOferta.MatriculaTurma.FirstOrDefault().Turma; webaula.waIntegracaoSoapClient wa = new webaula.waIntegracaoSoapClient(); webaula.AuthenticationProviderRequest aut = new webaula.AuthenticationProviderRequest(); webaula.DTOUsuario dtoUsuario = new webaula.DTOUsuario(); webaula.DTOTurma dtoTurma = new webaula.DTOTurma(); dtoTurma.IDChaveExterna = turma.IDChaveExterna; dtoUsuario.CPF = userSelected.CPF; dtoUsuario.Email = userSelected.Email; dtoUsuario.Nome = userSelected.Nome; dtoUsuario.Sexo = userSelected.Sexo; dtoUsuario.UF = userSelected.UF.Sigla; aut.Login = matriculaOferta.Oferta.SolucaoEducacional.Fornecedor.Login; aut.Senha = CriptografiaHelper.Decriptografar(matriculaOferta.Oferta.SolucaoEducacional.Fornecedor.Senha); retornows = wa.Matricular(aut, dtoUsuario, dtoTurma); break; } } } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } return; } //VALIDANDO A OFETA NORMAL if (oferta.TipoOferta.Equals(enumTipoOferta.Normal)) { int qtdInscritosNaOferta = oferta.ListaMatriculaOferta.Where(x => (x.StatusMatricula != enumStatusMatricula.CanceladoAdm && x.StatusMatricula != enumStatusMatricula.CanceladoAluno)).Count(); MatriculaOferta matriculaOferta = new MatriculaOferta() { Oferta = new BMOferta().ObterPorId(oferta.ID), Usuario = new BMUsuario().ObterPorId(userSelected.ID), Auditoria = new Auditoria(autenticacao.Login), DataSolicitacao = DateTime.Now, UF = new BMUf().ObterPorId(userSelected.UF.ID), NivelOcupacional = new BMNivelOcupacional().ObterPorID(userSelected.NivelOcupacional.ID) }; if (qtdInscritosNaOferta >= oferta.QuantidadeMaximaInscricoes) { if (oferta.FiladeEspera) { matriculaOferta.StatusMatricula = enumStatusMatricula.FilaEspera; } else { throw new AcademicoException("Erro: A quantidade máxima de alunos foi atingida"); } } else { matriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito; } BMMatriculaOferta bmMatriculaOferta = new BMMatriculaOferta(); bmMatriculaOferta.Salvar(matriculaOferta); qtdInscritosNaOferta++; //validando se a turma já está chegando ao limite. if (qtdInscritosNaOferta > (oferta.QuantidadeMaximaInscricoes - int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.LimiteAlertaInscricaoOferta).Registro))) { EnviarEmailLimiteOferta(oferta, matriculaOferta); } ValidarMetaIndividual(idUsuario, idSolucaoEducacional, pListaIdMetaIndividualAssociada, autenticacao); ValidarMetaInstitucional(idUsuario, idSolucaoEducacional, pListaIdMetaInstitucionalAssociada, autenticacao); return; } throw new Exception("Não foi encontrado ofertas para esse usuário!"); }