public void Cant_GetVideosTemaMedcurso_AlunoSomenteMed() { var aulas = new MednetEntity().GetVideoAulas(16, 2145, 0, 46604, 17); Assert.IsNull(aulas.Apostila); Assert.IsTrue(string.IsNullOrEmpty(aulas.Descricao)); Assert.IsFalse(aulas.VideoAulas.Any()); }
public void Can_GetAulasBonus_MedAtualMedcursoAnteriores() { var temasApostilas = new MednetEntity().GetTemasVideos(16, 222511, 0, 0, false); var temaBonus = 4160; var temaLiberadoAntesCronograma = 2681; Assert.IsTrue(temasApostilas.Any(x => x.IdTema == temaBonus)); Assert.IsTrue(!temasApostilas.Any(x => x.IdTema == temaLiberadoAntesCronograma)); }
public List <EspecialRevalida> GetEspecialRevalida(int ano, int matricula, int idAplicacao = (int)Aplicacoes.MsProMobile) { try { var lsRevalida = new List <EspecialRevalida>(); var mednet = new MednetEntity(); var aluno = new AlunoEntity(); new Util.Log().SetLog(new LogMsPro { Matricula = matricula, IdApp = Aplicacoes.MsProMobile, Tela = Util.Log.MsProLog_Tela.Revalida, Acao = Util.Log.MsProLog_Acao.Abriu }); var rev = mednet.GetTemasVideoRevalida(); var revAgrp = rev.GroupBy(x => x.Assunto.Id).Select(grp => new { GrpID = grp.Key, RevalidaLst = grp.ToList() }).ToList(); //var permissao = aluno.GetIsCortesiaRevalida(matricula); using (MiniProfiler.Current.Step("Carregando lista revalida obtendo o máximo progresso de aula revalida por item da lista")) { foreach (var item in revAgrp) { var itemRevalida = new EspecialRevalida(); itemRevalida.Numero = item.GrpID; itemRevalida.Ativa = 1; var apostilas = item.RevalidaLst.Select(x => new Apostila { IdEntidade = x.Apostila.Especialidade.Id, Nome = x.Apostila.Descricao, PercentLido = GetMaximoProgressoAulaRevalida(x.IdTema, matricula), Temas = new List <AulaTema> { new AulaTema { TemaID = x.IdTema } } } ); itemRevalida.Apostilas.AddRange(apostilas); lsRevalida.Add(itemRevalida); } } return(lsRevalida); } catch { throw; } }
public void GetVideoRevisao_PassandoAulaRevisaoNEF5_RetornarURLPreenchida() { var lista = new VideoEntity().GetVideoByCode("NEF 5"); foreach (var item in lista) { string url = new MednetEntity().GetVideo(item, (int)Aplicacoes.MsProMobile, "3.0.37"); Assert.AreNotEqual(string.Empty, url); } }
public void Can_SetAvaliacao_TemaExistente() { var avaliacao = new AulaAvaliacaoPost { AlunoID = 119300, ApostilaID = 6325, Nota = 2, ProfessorID = 90918 }; var retorno = new MednetEntity().SetAvaliacaoTemaVideoRevisao(avaliacao); Assert.IsNotNull(retorno); Assert.IsInstanceOfType(retorno, typeof(int)); }
public void Can_InsertLogVideoAssistido() { var log = new VideoMednet { Matricula = 145408, IdRevisaoAula = 2027, }; var ret = new MednetEntity().SetLogAssitido(log); Assert.IsNotNull(ret); }
public void VerificaVideoResumoAulaDesabilitado_RetornaTrue() { var matricula = 226443; var produto = 16; var tema = 0; var isAdmin = false; var idProfessor = 0; var idAula = 0; var temasApostila = new MednetEntity().GetTemasVideoResumo(produto, matricula, idProfessor, idAula, isAdmin, tema); Assert.AreEqual(temasApostila.Count, 0); }
public void VerificaAluno2015E2016_ComRevalida() { if (DateTime.Now <= dataToleranciaTestesAtual) { Assert.Inconclusive(); } var matricula = 201868; TemasApostila retVal = new MednetEntity().GetVideosRevalida(matricula); Assert.IsTrue(retVal.Count > qntVideosRevalidaAnoAtual); }
public void Can_GetVideosTemaMedcurso() { var alunoMedcursoAnoAtualAtivo = new PerfilAlunoEntityTestData().GetAlunoMedApenasAno2019(); var aulas = new MednetEntity().GetVideoAulas(16, 2142, 0, alunoMedcursoAnoAtualAtivo, 17); Assert.IsNotNull(aulas.Apostila); Assert.IsFalse(string.IsNullOrEmpty(aulas.Descricao)); var primeiraAulaRevisao = aulas.VideoAulas.FirstOrDefault(x => x.TipoAula == ETipoVideo.Revisao); Assert.IsNotNull(primeiraAulaRevisao); Assert.IsTrue(primeiraAulaRevisao.Professores.Any()); }
public void Can_GetAulasBonus_MedAtualMedcursoAnterior() { var dataTolerancia = Utilidades.DataToleranciaTestes(); if (DateTime.Now <= dataTolerancia) { Assert.Inconclusive(); } var temasApostilas = new MednetEntity().GetTemasVideos(16, 239231, 0, 0, false); var temaBonus = 4157; var temaLiberadoAntesCronograma = 2225; Assert.IsTrue(temasApostilas.Any(x => x.IdTema == temaBonus)); Assert.IsTrue(temasApostilas.Any(x => x.IdTema == temaLiberadoAntesCronograma)); }
public void Can_GetAulasRevisao_SomenteCPMEDTurmaConvidada_Brunao() { var dataPrimeiraAulaMedTP = new DateTime(2017, 10, 25, 21, 00, 00); var anoInscricaoCpMed = Utilidades.ObterAnoInscricao((int)Aplicacoes.INSCRICAO_CPMED); if (DateTime.Now < dataPrimeiraAulaMedTP && !Utilidades.IsAntesDatalimite(anoInscricaoCpMed)) { Assert.Inconclusive("Ainda não Há alunos CpMED Ano Atual"); } var temasApostilas = new MednetEntity().GetTemasVideos(17, 239776, 0, 0, false); var outroTema = 3536; var temaLiberadoAntesCronograma = 3446; Assert.IsTrue(!temasApostilas.Any(x => x.IdTema == outroTema)); Assert.IsTrue(temasApostilas.Any(x => x.IdTema == temaLiberadoAntesCronograma)); }
public void Can_SetAvaliacao_TemaInexistente() { var avaliacao = new AulaAvaliacaoPost { AlunoID = 119300, Nota = 2, ProfessorID = 90918, ApplicationID = 1, IdRevisaoIndice = 1, Observacao = "Teste unitário de de observação", }; var retorno = new MednetEntity().SetAvaliacaoTemaVideoRevisao(avaliacao); Assert.IsNotNull(retorno); Assert.IsInstanceOfType(retorno, typeof(int)); }
public void GetTemasVideosRevisao__AlunoMedcursoAnoAtual__NaoDeveVisualizarForaDeEpoca() { if (DateTime.Now.Month <= 2) { //select* from tblSellORDERS so //inner join tblClients c on c.intClientID = so.intClientID //WHERE intStatus = 2 and txtComment like '2019 MEDCURSO% var matriculaMedcurso2018 = 262319; var ret = new MednetEntity().GetTemasVideosRevisao(16, matriculaMedcurso2018, 0, 0, false); Assert.IsFalse(ret.Exists(x => x.Descricao.Contains("Gota;Febre Reumática"))); } else { Assert.Inconclusive(); } }
public void Can_GetProgressoGeralIgualEspecifico() { var testData = new PerfilAlunoEntityTestData(); var matricula = 244788; // matricula ano atual var anoAtual = 2019; //Ano atual vigente var temaId = 2226; //utilizar o temaId com maior progresso retornado pelo método GetProgressoAulas abaixo (debuggar) var apostilaId = 0; var progressosAluno = new MednetEntity().GetProgressoAulas(matricula, anoAtual, (int)Produto.Cursos.MED); var aulas = new MednetEntity().GetVideoAulas((int)Produto.Cursos.MED, temaId, apostilaId, matricula, (int)Aplicacoes.MsProMobile); var percentCir1Main = progressosAluno.Where(x => x.IdEntidade == temaId).Select(x => x.PercentLido).FirstOrDefault(); var videoAulasRevisao = aulas.VideoAulas.Where(x => x.TipoAula == ETipoVideo.Revisao).FirstOrDefault(); var professorComMaiorProgresso = videoAulasRevisao.Professores.OrderByDescending(x => x.PercentVisualizado).FirstOrDefault(); var percent = professorComMaiorProgresso.PercentVisualizado; Assert.AreEqual(percent, percentCir1Main); }
public void GetTemasVideosRevisao__AlunoMedcurso_QueAulaCronogramaPassou__DeveVisualizarRespectivaAulaRevisao() { #region ScriptSQL para pegar cenário de até que data a aula será exibida //select * from mview_Cronograma mc //inner join tblProducts pr on mc.intCourseID = pr.intProductID //inner join tblLessonTitles lt on mc.intLessonTitleID = lt.intLessonTitleID //where mc.intYear = 2018 and pr.intProductGroup1 = 1 and mc.dteDateTime > GETDATE() and lt.txtLessonTitleName = 'Trauma I – Primeiro atendimento, cabeça e tórax' //order by mc.dteDateTime #endregion var business = new PerfilAlunoEntityTestData(); var aluno = business.GetAlunoMedcursoAnoAtualAtivo(); var matriculaMedcurso = aluno.ID; if (DateTime.Now.Month >= 1 && DateTime.Now.Day > 20) { var ret = new MednetEntity().GetTemasVideosRevisao(16, matriculaMedcurso, 0, 0, false); Assert.IsTrue(ret.Exists(x => x.Descricao.Contains("Trauma I – Primeiro atendimento, cabeça e tórax"))); } else { Assert.Inconclusive(); } }
public List <Semana> GetSemanas(int ano, int idProduto, int matricula, Semana.TipoAba aba) { try { const int ativo = 1; const int inativo = 0; const int produtoAdaptamed = 73; new Util.Log().SetLog(new LogMsPro { Matricula = matricula, IdApp = Aplicacoes.MsProMobile, Tela = aba == Semana.TipoAba.Aulas ? Util.Log.MsProLog_Tela.MainAula : aba == Semana.TipoAba.Questoes ? Util.Log.MsProLog_Tela.MainQuestao : 0, Acao = Util.Log.MsProLog_Acao.Abriu }); var anoVigente = Utilidades.GetYear(); using (var ctx = new DesenvContext()) { var lSemanas = new List <Semana>(); var semanaAtual = Utilidades.GetNumeroSemanaAtual(DateTime.Now); var listaEntidades = ctx.Set <msp_API_ListaEntidades_Result>().FromSqlRaw("msp_API_ListaEntidades @intProductGroup = {0}, @intYear = {1}, @matricula = {2}", idProduto, ano, matricula) .ToList(); int prod = ProdutoEntity.GetProductByCourse(idProduto); var temas = listaEntidades.Select(y => y.intLessonTitleID); var entidades = listaEntidades.Select(y => y.intID) .ToArray(); var acessoAntecipado = AlunoTemAcessoAntecipado(matricula); var semanas = listaEntidades.GroupBy(x => new { entidade = x.intID, semana = x.intSemana, dataInicio = x.dataInicio, datafim = x.datafim }) .ToList(); var mesesCursados = ctx.csp_loadMesesCursados(matricula, prod); var mesesCursadosAnoAnterior = mesesCursados.Where(x => x.intYear < anoVigente).Select(x => (int)x.intMonth).ToArray(); var mesesCursadosAnoAtual = mesesCursados.Where(x => x.intYear == anoVigente).Select(x => (int)x.intMonth).ToArray(); if (anoVigente > DateTime.Now.Year) { semanaAtual = 1; } var isSemanasDisabled = false; if (!semanas.Any()) { isSemanasDisabled = true; const int matriculaGlobal = 96409; semanas.AddRange(ctx.Set <msp_API_ListaEntidades_Result>().FromSqlRaw("msp_API_ListaEntidades @intProductGroup = {0}, @intYear = {1}, @matricula = {2}", idProduto, ano, matriculaGlobal).AsEnumerable() .GroupBy(x => new { entidade = x.intID, semana = x.intSemana, dataInicio = x.dataInicio, datafim = x.datafim }) .ToList()); } var dicProgressos = new Dictionary <int, int>(); var dicProgressosQuestoes = new Dictionary <long, int>(); switch (aba) { case Semana.TipoAba.Aulas: dicProgressos = new MednetEntity().GetProgressoAulas(temas.ToArray(), matricula); break; case Semana.TipoAba.Materiais: break; case Semana.TipoAba.Questoes: dicProgressosQuestoes = GetProgressoQuestoes(entidades, matricula); break; case Semana.TipoAba.Revalida: break; default: break; } foreach (var itSemana in semanas) { var numeroSemana = itSemana.Key.semana ?? 0; var semana = new Semana(); if (idProduto == produtoAdaptamed) { var currentYear = ano; if (currentYear == 0) { currentYear = DateTime.Now.Year; } var dataTextoInicio = itSemana.Key.dataInicio + "/" + currentYear; var dataInicio = DateTime.ParseExact(dataTextoInicio, "dd/MM/yyyy", CultureInfo.InvariantCulture); var liberacao = dataInicio <= DateTime.Now; semana.Ativa = isSemanasDisabled ? 0 : Convert.ToInt32(liberacao); semana.Numero = numeroSemana; semana.DataInicio = itSemana.Key.dataInicio; semana.DataFim = itSemana.Key.datafim; semana.Apostilas = new List <Apostila>(); semana.SemanaAtiva = Convert.ToInt32((dataTextoInicio == "15/09/2017")); } else { semana.Ativa = VerificaLiberacaoSemana(acessoAntecipado, isSemanasDisabled, semanaAtual, itSemana.Key.semana, mesesCursadosAnoAnterior, mesesCursadosAnoAtual, itSemana.Key.dataInicio); semana.Numero = numeroSemana; semana.DataInicio = itSemana.Key.dataInicio; semana.DataFim = itSemana.Key.datafim; semana.Apostilas = new List <Apostila>(); semana.SemanaAtiva = semanaAtual == numeroSemana ? ativo : inativo; } if (itSemana.Count() > 2) { var entidadeAgrupada = itSemana.GroupBy(y => new { idEntidade = y.intID, entidade = y.entidade }).ToList(); foreach (var entidade in entidadeAgrupada) { var percentlido = 0; switch (aba) { case Semana.TipoAba.Aulas: percentlido = semana.Ativa == 1 ? (int?)dicProgressos.FirstOrDefault(x => x.Key == entidade.First().intLessonTitleID).Value ?? 0 : 0; //GetProgressoAula(entidade.First().intLessonTitleID, matricula) : 0; break; case Semana.TipoAba.Materiais: percentlido = semana.Ativa == 1 ? new MaterialApostilaEntity().GetProgressoMaterial(entidade.First().intID, matricula) : 0; break; case Semana.TipoAba.Questoes: percentlido = semana.Ativa == 1 ? (int?)dicProgressosQuestoes.FirstOrDefault(x => x.Key == entidade.First().intID).Value ?? 0 : 0; //GetPercentQuestoes((int)entidade.First().intID, matricula) : 0; break; default: break; } var apostila = new Apostila { IdEntidade = (int)entidade.Key.idEntidade, Nome = entidade.Key.entidade, PercentLido = percentlido, Temas = new List <AulaTema>() }; foreach (var tema in entidade) { apostila.Temas.Add(new AulaTema { TemaID = tema.intLessonTitleID }); } semana.Apostilas.Add(apostila); if (entidadeAgrupada.Count() == 1) { semana.Apostilas.Add(apostila); } } } else { foreach (var tema in itSemana) { var percentlido = 0; switch (aba) { case Semana.TipoAba.Aulas: //percentlido = semana.Ativa == 1 ? GetProgressoAula(tema.intLessonTitleID, matricula) : 0; percentlido = semana.Ativa == 1 ? (int?)dicProgressos.FirstOrDefault(x => x.Key == tema.intLessonTitleID).Value ?? 0 : 0; break; case Semana.TipoAba.Materiais: //percentlido = semana.Ativa == 1 ? new MaterialApostilaEntity().GetProgressoMaterial(semana.Apostilas.FirstOrDefault().IdEntidade, matricula) : 0; percentlido = new MaterialApostilaEntity().GetProgressoMaterial(tema.intID, matricula); break; case Semana.TipoAba.Questoes: percentlido = semana.Ativa == 1 ? (int?)dicProgressosQuestoes.FirstOrDefault(x => x.Key == tema.intID).Value ?? 0 : 0; // GetPercentQuestoes((int)tema.intID, matricula) : 0; break; default: break; } var apostila = new Apostila { IdEntidade = (int)tema.intID, Nome = tema.entidade, PercentLido = percentlido, Temas = new List <AulaTema>() }; apostila.Temas.Add(new AulaTema { TemaID = tema.intLessonTitleID }); semana.Apostilas.Add(apostila); if (itSemana.Count() == 1) { semana.Apostilas.Add(apostila); } } } lSemanas.Add(semana); } //Se nenhuma semana estiver marcada como semana atual, marca a ultima if (lSemanas.Any() && lSemanas.All(x => x.SemanaAtiva != 1)) { lSemanas.Last().SemanaAtiva = 1; } return(lSemanas); } } catch { throw; } }
public void CanGetVideo() { var urlVideo = new MednetEntity().GetVideo(113616); Assert.IsNotNull(urlVideo); }
public void GetVideoRevisao_MsProDesktopVersaoMaiorQueChaveVersao_RetornaStream() { string url = new MednetEntity().GetVideo(380115, (int)Aplicacoes.MEDSOFT_PRO_ELECTRON, "1.6.1"); Assert.AreEqual(true, url.Contains(".m3u8")); }
public void GetAvaliacaoAulo_AlunoPedro_TemaInexistente_RetornaNotaZerada() { var retorno = new MednetEntity().GetAvaliacaoRealizada(119300, -1, 17); Assert.AreEqual(0, retorno.NotaFinal); }
public void GetAvaliacaoAulo_AlunoPedro_Tema90_RetornaNotaPopulada() { var retorno = new MednetEntity().GetAvaliacaoRealizada(119300, 90, 17); Assert.IsNotNull(retorno.NotaFinal); }
public void GetVideos_TemaExistenteAluno_TemaPopulado() { var idTema = 2174; var retorno = new MednetEntity().GetVideos(16, 227142, idTema, 17); Assert.IsNotNull(retorno); }
public void GetVideos_TemaInexistente_NaoRetornaTemaPopulado() { var retorno = new MednetEntity().GetVideos(16, 119300, -1, 17); Assert.AreEqual(0, retorno.Id); }
public void GetVideos_TemaExistente_RetornaTemaPopulado() { var idTema = 2174; var retorno = new MednetEntity().GetVideos(16, 96409, idTema, 17); Assert.AreEqual(retorno.IdTema, idTema); }
public TemaApostila GetTemaRevalida(int ano, int matricula, int idAplicacao, int idTema) { try { var mednet = new MednetEntity(); var videosRevalida = mednet.GetTemasVideoRevalida(); var videoTema = videosRevalida.FirstOrDefault(x => x.IdTema == idTema); var logVideos = mednet.GetLogVideos(matricula, ETipoVideo.Revalida); if (videoTema != null) { var idsVideos = videoTema.VideosRevisao.Select(v => v.IdRevisaoAula).ToList(); var ctx = new DesenvContext(); var totalVisualizacoesVideos = (from a in ctx.tblVideoLog //join b in idsVideos on a.intOrigemVideoId equals b where a.intTipoVideo == (int)ETipoVideo.Revalida && idsVideos.Contains(a.intOrigemVideoId) select a.intOrigemVideoId).ToList(); var todosProgressosVideos = (from a in ctx.tblRevalidaAulaVideoLogPosition where a.intClientId == matricula select new { a.intRevalidaAulaVideoId, a.intSecond }).ToList(); ctx.Dispose(); using (MiniProfiler.Current.Step("Set progresso aula revalida por professor")) { foreach (var professor in videoTema.Professores) { var segundosTotalVideos = 0; var segundosTotalVideosAssistidos = 0; var videosProf = videoTema.VideosRevisao.Where(v => v.IdProfessor == professor.ID).ToList(); foreach (var video in videosProf) { video.Visualizacoes = totalVisualizacoesVideos.Count(t => t == video.IdRevisaoAula); segundosTotalVideos += Convert.ToInt32(TimeSpan.Parse(video.DuracaoFormatada).TotalSeconds); video.Assistido = logVideos.Any(l => l == video.IdRevisaoAula); var duracaoVideo = Convert.ToInt32(TimeSpan.Parse(video.DuracaoFormatada).TotalSeconds); if (todosProgressosVideos.Any(v => v.intRevalidaAulaVideoId == video.IdRevisaoAula)) { var tempoDeVideoAssistido = todosProgressosVideos.FirstOrDefault(v => v.intRevalidaAulaVideoId == video.IdRevisaoAula).intSecond; segundosTotalVideosAssistidos += tempoDeVideoAssistido > duracaoVideo ? duracaoVideo : tempoDeVideoAssistido; if (duracaoVideo > 0) { video.Progresso = (todosProgressosVideos.Where(v => v.intRevalidaAulaVideoId == video.IdRevisaoAula).FirstOrDefault().intSecond * 100) / duracaoVideo; } } } if (segundosTotalVideos != 0) { professor.PercentVisualizado = (segundosTotalVideosAssistidos * 100) / segundosTotalVideos; } else { professor.PercentVisualizado = 0; } mednet.SetProgressoAulaRevalida(idTema, professor.ID, matricula, professor.PercentVisualizado); } } } else { videoTema = new TemaApostila(); } return(videoTema); } catch { throw; } }
public void GetTemasVideoRevalida_SolicitandoTodosOsTemasVideo_RetornaTemasVideo() { var ret = new MednetEntity().GetTemasVideoRevalida(); Assert.IsNotNull(ret); }