예제 #1
0
        public SimuladoDTO GetSimulado(int idSimulado)
        {
            SimuladoDTO simulado = null;

            using (var ctx = new AcademicoContext())
            {
                simulado = (from s in ctx.tblSimulado
                            where s.intSimuladoID == idSimulado
                            select new SimuladoDTO
                {
                    ID = s.intSimuladoID,
                    ExercicioName = s.txtSimuladoName,
                    Descricao = s.txtSimuladoDescription,
                    Ano = (int)s.intAno,
                    DataInicio = s.dteDataHoraInicioWEB,
                    DataFim = s.dteDataHoraTerminoWEB,
                    TipoId = s.intTipoSimuladoID,
                    Online = s.bitOnline,
                    Duracao = s.intDuracaoSimulado,
                    DtLiberacaoRanking = s.dteLimiteParaRanking
                }).FirstOrDefault();

                return(simulado);
            }
        }
        private String BuscarLocalFixo(SimuladoDTO simulado)
        {
            string localFixo = null;

            switch ((Constants.TipoSimulado)simulado.TipoId)
            {
            case Constants.TipoSimulado.R3_Pediatria:
                localFixo = string.Format("{0} R3 PEDIATRIA", simulado.Ano);
                break;

            case Constants.TipoSimulado.R3_Clinica:
                localFixo = string.Format("{0} R3 CLÍNICA MÉDICA", simulado.Ano);
                break;

            case Constants.TipoSimulado.R3_Cirurgia:
                localFixo = string.Format("{0} R3 CIRURGIA", simulado.Ano);
                break;

            case Constants.TipoSimulado.R4_GO:
                localFixo = string.Format("{0} R4 GO", simulado.Ano);
                break;
            }

            return(localFixo);
        }
        private String BuscarUnidadeFixo(SimuladoDTO simulado)
        {
            Filial unidadeFixo = null;

            switch ((Constants.TipoSimulado)simulado.TipoId)
            {
            case Constants.TipoSimulado.R3_Pediatria:
                unidadeFixo = _filialRepository.GetFilial((int)Constants.Stores.R3_MEDERI);
                break;

            case Constants.TipoSimulado.R3_Clinica:
                unidadeFixo = _filialRepository.GetFilial((int)Constants.Stores.R3_MEDWRITERS);
                break;

            case Constants.TipoSimulado.R3_Cirurgia:
                unidadeFixo = _filialRepository.GetFilial((int)Constants.Stores.R3_MEDERI);
                break;

            case Constants.TipoSimulado.R4_GO:
                unidadeFixo = _filialRepository.GetFilial((int)Constants.Stores.R3_MEDERI);
                break;
            }

            return(unidadeFixo != null ? unidadeFixo.Nome : null);
        }
        public void ValidaRankingAutomatico_RoboFinalizacaoSimulado_GabaritaramMenos10Porcento()
        {
            var idSimulado        = 1;
            var rankingMock       = Substitute.For <IRankingSimuladoData>();
            var especialidadeMock = Substitute.For <IEspecialidadeData>();
            var storesMock        = Substitute.For <IFilialData>();

            var simulado = new SimuladoDTO
            {
                ID = 1,
                QuantidadeQuestoes = 100,
                PesoProvaObjetiva  = 100,
                Ano    = 2019,
                TipoId = (int)Constants.TipoSimulado.Extensivo
            };

            rankingMock.GetRankingSimulado(idSimulado).Returns(RankingSimuladoEntityTestData.ListRankingSimulado_10PorcentoGabaritou());
            rankingMock.GetSimulado(idSimulado).Returns(simulado);


            var business = new RankingSimuladoBusiness(rankingMock, especialidadeMock, storesMock);
            var ranking  = business.ValidaRankingSimulado(idSimulado);

            Assert.AreEqual(ranking, "");
        }
        private int?BuscarIntStateFixo(SimuladoDTO simulado)
        {
            var isRMais = simulado.TipoId == (int)Constants.TipoSimulado.R3_Cirurgia ||
                          simulado.TipoId == (int)Constants.TipoSimulado.R3_Clinica ||
                          simulado.TipoId == (int)Constants.TipoSimulado.R3_Pediatria ||
                          simulado.TipoId == (int)Constants.TipoSimulado.R4_GO;

            return(isRMais ? -1 : (int?)null);
        }
예제 #6
0
        public int Alterar(SimuladoDTO modelo)
        {
            if (modelo == null)
            {
                return(0);
            }

            modelo.DataUltimaAtualizacao = DateTime.Now;
            modelo.Online = modelo.DataInicioConsultaRanking.HasValue;

            return(_repository.Alterar(modelo));
        }
예제 #7
0
        private tblSimulado ModelToEntity(SimuladoDTO model)
        {
            if (model == null)
            {
                return(null);
            }

            tblSimulado entity = new tblSimulado();

            entity.intSimuladoID          = model.ID;
            entity.intLessonTitleID       = model.TemaID;
            entity.intBookID              = model.LivroID;
            entity.txtOrigem              = model.Origem;
            entity.txtSimuladoName        = model.Nome;
            entity.txtSimuladoDescription = model.Descricao;
            entity.intSimuladoOrdem       = model.Ordem;
            entity.intDuracaoSimulado     = model.Duracao;
            entity.intConcursoID          = model.ConcursoID;
            entity.intAno                    = model.Ano;
            entity.bitParaWEB                = model.ParaWeb;
            entity.dteDataHoraInicioWEB      = model.DataInicioWeb;
            entity.dteDataHoraTerminoWEB     = model.DataTerminoWeb;
            entity.dteReleaseSimuladoWeb     = model.DataLiberacaoWeb;
            entity.dteReleaseGabarito        = model.DataLiberacaoGabarito;
            entity.dteReleaseComentario      = model.DataLiberacaoComentario;
            entity.dteInicioConsultaRanking  = model.DataInicioConsultaRanking;
            entity.dteLimiteParaRanking      = model.DataLimiteParaRanking;
            entity.bitIsDemo                 = model.EhDemonstracao;
            entity.CD_ESPECIALIDADE          = model.CodigoEspecialidade;
            entity.ID_INSTITUICAO            = model.InstituicaoID;
            entity.txtPathGabarito           = model.CaminhoGabarito;
            entity.intQtdQuestoes            = model.QuantidadeQuestoes;
            entity.bitRankingWeb             = model.RankingWeb;
            entity.bitGabaritoWeb            = model.GabaritoWeb;
            entity.bitRankingFinalWeb        = model.RankingFinalWeb;
            entity.txtCodQuestoes            = model.CodigoQuestoes;
            entity.bitVideoComentariosWeb    = model.VideoComentariosWeb;
            entity.intQtdQuestoesCasoClinico = model.QuantidadeQuestoesCasoClinico;
            entity.guidSimuladoID            = model.Identificador;
            entity.dteDateTimeLastUpdate     = model.DataUltimaAtualizacao;
            entity.bitCronogramaAprovado     = model.CronogramaAprovado;
            entity.intTipoSimuladoID         = model.TipoId;
            entity.bitSimuladoGeral          = model.Geral;
            entity.bitOnline                 = model.Online;
            entity.intPesoProvaObjetiva      = model.PesoProvaObjetiva;
            entity.dteDateInicio             = model.DataInicio;
            entity.dteDateFim                = model.DataFim;

            return(entity);
        }
        private string BuscarEspecialidadeFixa(SimuladoDTO simulado, List <Especialidade> listaEspecialidades)
        {
            string especialidade = null;
            var    mapaRankingIdEspecialidade = Utilidades.GetMapaRankingIdEspecialidade();

            if (mapaRankingIdEspecialidade.ContainsKey(simulado.TipoId))
            {
                especialidade = listaEspecialidades
                                .Where(x => x.Id == mapaRankingIdEspecialidade[simulado.TipoId])
                                .Select(x => x.Descricao)
                                .FirstOrDefault();
            }

            return(especialidade);
        }
예제 #9
0
        public static SimuladoDTO ToSimuladoDTO(this tblSimulado entity)
        {
            SimuladoDTO model = new SimuladoDTO();

            model.ID                            = entity.intSimuladoID;
            model.TemaID                        = entity.intLessonTitleID;
            model.LivroID                       = entity.intBookID;
            model.Origem                        = entity.txtOrigem;
            model.Nome                          = entity.txtSimuladoName;
            model.Descricao                     = entity.txtSimuladoDescription;
            model.Ordem                         = entity.intSimuladoOrdem;
            model.Duracao                       = entity.intDuracaoSimulado;
            model.ConcursoID                    = entity.intConcursoID;
            model.Ano                           = entity.intAno;
            model.ParaWeb                       = entity.bitParaWEB;
            model.DataInicioWeb                 = entity.dteDataHoraInicioWEB;
            model.DataTerminoWeb                = entity.dteDataHoraTerminoWEB;
            model.DataLiberacaoWeb              = entity.dteReleaseSimuladoWeb;
            model.DataLiberacaoGabarito         = entity.dteReleaseGabarito;
            model.DataLiberacaoComentario       = entity.dteReleaseComentario;
            model.DataInicioConsultaRanking     = entity.dteInicioConsultaRanking;
            model.DataLimiteParaRanking         = entity.dteLimiteParaRanking;
            model.EhDemonstracao                = entity.bitIsDemo;
            model.CodigoEspecialidade           = entity.CD_ESPECIALIDADE;
            model.InstituicaoID                 = entity.ID_INSTITUICAO;
            model.CaminhoGabarito               = entity.txtPathGabarito;
            model.QuantidadeQuestoes            = entity.intQtdQuestoes;
            model.RankingWeb                    = entity.bitRankingWeb;
            model.GabaritoWeb                   = entity.bitGabaritoWeb;
            model.RankingFinalWeb               = entity.bitRankingFinalWeb;
            model.CodigoQuestoes                = entity.txtCodQuestoes;
            model.VideoComentariosWeb           = entity.bitVideoComentariosWeb;
            model.QuantidadeQuestoesCasoClinico = entity.intQtdQuestoesCasoClinico;
            model.Identificador                 = entity.guidSimuladoID;
            model.DataUltimaAtualizacao         = entity.dteDateTimeLastUpdate;
            model.CronogramaAprovado            = entity.bitCronogramaAprovado;
            model.TipoId                        = entity.intTipoSimuladoID;
            model.Geral                         = entity.bitSimuladoGeral;
            model.Online                        = entity.bitOnline;
            model.PesoProvaObjetiva             = entity.intPesoProvaObjetiva;
            model.DataInicio                    = entity.dteDateInicio;
            model.DataFim                       = entity.dteDateFim;

            return(model);
        }
예제 #10
0
        public int Alterar(SimuladoDTO registro)
        {
            int retorno = 0;

            if (registro == null)
            {
                return(retorno);
            }

            using (var ctx = new AcademicoContext())
            {
                var data = ctx.Set <tblSimulado>()
                           .Include("tblEspecialidadesSimulado")
                           .FirstOrDefault(c => c.intSimuladoID == registro.ID);

                if (data == null)
                {
                    return(0);
                }

                var entity = ModelToEntity(registro);
                ctx.Entry(data).CurrentValues.SetValues(entity);

                #region Salvar Especialidades
                if (registro.Especialidades != null && registro.Especialidades.Count > 0)
                {
                    foreach (var item in registro.Especialidades)
                    {
                        var especialidade = new tblEspecialidadesSimulado();
                        especialidade.intSimuladoID      = entity.intSimuladoID;
                        especialidade.intEspecialidadeID = item.EspecialidadeID;
                        especialidade.intOrdem           = item.Ordem.Value;

                        ctx.Set <tblEspecialidadesSimulado>().Add(especialidade);
                    }
                }
                #endregion

                ctx.SaveChanges();
                retorno = 1;
            }

            return(retorno);
        }
예제 #11
0
        public SimuladoDTO GetSimuladoPorId(int id)
        {
            SimuladoDTO registro = null;

            using (var ctx = new AcademicoContext())
            {
                var entity =
                    (
                        from a in ctx.tblSimulado
                        where a.intSimuladoID == id
                        select a
                    )
                    .FirstOrDefault();

                if (entity != null)
                {
                    registro = EntityToModel(entity);
                }
            }

            return(registro);
        }
        public void ValidaRankingAutomatico_RoboFinalizacaoSimulado_RankingNaoGerado()
        {
            var idSimulado        = 1;
            var rankingMock       = Substitute.For <IRankingSimuladoData>();
            var especialidadeMock = Substitute.For <IEspecialidadeData>();
            var storesMock        = Substitute.For <IFilialData>();

            var simulado = new SimuladoDTO
            {
                ID = 1,
                QuantidadeQuestoes = 10,
                PesoProvaObjetiva  = 100,
                Ano    = 2019,
                TipoId = (int)Constants.TipoSimulado.Extensivo
            };

            rankingMock.GetRankingSimulado(idSimulado).Returns(new List <SimuladoRankingFase01DTO>());
            rankingMock.GetSimulado(idSimulado).Returns(simulado);

            var business = new RankingSimuladoBusiness(rankingMock, especialidadeMock, storesMock);
            var ranking  = business.ValidaRankingSimulado(idSimulado);

            Assert.IsTrue(ranking.Contains("Sem registro de Ranking para o simulado ID"));
        }
예제 #13
0
        private SimuladoDTO EntityToModel(tblSimulado entity)
        {
            if (entity == null)
            {
                return(null);
            }

            SimuladoDTO model = new SimuladoDTO();

            model.ID                            = entity.intSimuladoID;
            model.TemaID                        = entity.intLessonTitleID;
            model.LivroID                       = entity.intBookID;
            model.Origem                        = entity.txtOrigem;
            model.Nome                          = entity.txtSimuladoName;
            model.Descricao                     = entity.txtSimuladoDescription;
            model.Ordem                         = entity.intSimuladoOrdem;
            model.Duracao                       = entity.intDuracaoSimulado;
            model.ConcursoID                    = entity.intConcursoID;
            model.Ano                           = entity.intAno;
            model.ParaWeb                       = entity.bitParaWEB;
            model.DataInicioWeb                 = entity.dteDataHoraInicioWEB;
            model.DataTerminoWeb                = entity.dteDataHoraTerminoWEB;
            model.DataLiberacaoWeb              = entity.dteReleaseSimuladoWeb;
            model.DataLiberacaoGabarito         = entity.dteReleaseGabarito;
            model.DataLiberacaoComentario       = entity.dteReleaseComentario;
            model.DataInicioConsultaRanking     = entity.dteInicioConsultaRanking;
            model.DataLimiteParaRanking         = entity.dteLimiteParaRanking;
            model.EhDemonstracao                = entity.bitIsDemo;
            model.CodigoEspecialidade           = entity.CD_ESPECIALIDADE;
            model.InstituicaoID                 = entity.ID_INSTITUICAO;
            model.CaminhoGabarito               = entity.txtPathGabarito;
            model.QuantidadeQuestoes            = entity.intQtdQuestoes;
            model.RankingWeb                    = entity.bitRankingWeb;
            model.GabaritoWeb                   = entity.bitGabaritoWeb;
            model.RankingFinalWeb               = entity.bitRankingFinalWeb;
            model.CodigoQuestoes                = entity.txtCodQuestoes;
            model.VideoComentariosWeb           = entity.bitVideoComentariosWeb;
            model.QuantidadeQuestoesCasoClinico = entity.intQtdQuestoesCasoClinico;
            model.Identificador                 = entity.guidSimuladoID;
            model.DataUltimaAtualizacao         = entity.dteDateTimeLastUpdate;
            model.CronogramaAprovado            = entity.bitCronogramaAprovado;
            model.TipoId                        = entity.intTipoSimuladoID;
            model.Geral                         = entity.bitSimuladoGeral;
            model.Online                        = entity.bitOnline;
            model.PesoProvaObjetiva             = entity.intPesoProvaObjetiva;
            model.DataInicio                    = entity.dteDateInicio;
            model.DataFim                       = entity.dteDateFim;

            #region Especialidades
            model.Especialidades = new List <SimuladoEspecialidadeDTO>();

            using (var ctx = new AcademicoContext())
            {
                var especialidades =
                    (
                        from a in ctx.tblEspecialidadesSimulado
                        where a.intSimuladoID == model.ID
                        orderby a.intOrdem
                        select a
                    )
                    .ToList();

                if (especialidades != null && especialidades.Count > 0)
                {
                    foreach (var item in especialidades)
                    {
                        model.Especialidades.Add(new SimuladoEspecialidadeDTO()
                        {
                            SimuladoID      = model.ID,
                            EspecialidadeID = item.intEspecialidadeID,
                            Ordem           = item.intOrdem
                        });
                    }
                }
            }
            #endregion

            return(model);
        }
        public void GeraRankingSimuladoNacional_R4GO_ValidarValoresRanking()
        {
            var idSimulado = 1;

            var rankingMock       = Substitute.For <IRankingSimuladoData>();
            var especialidadeMock = Substitute.For <IEspecialidadeData>();
            var storesMock        = Substitute.For <IFilialData>();

            var simulado = new SimuladoDTO
            {
                ID = 1,
                QuantidadeQuestoes = 10,
                PesoProvaObjetiva  = 100,
                Ano    = 2019,
                TipoId = (int)Constants.TipoSimulado.R4_GO
            };

            rankingMock.GetSimulado(idSimulado).Returns(simulado);
            rankingMock.GetOrdemVendaTodosClientes(2019).Returns(RankingSimuladoEntityTestData.ListOrdemVendaTodosClientes(Constants.TipoSimulado.R4_GO));
            rankingMock.GetLogSimuladoAlunoTurma(idSimulado).Returns(RankingSimuladoEntityTestData.ListLogSimuladoAlunoTurma(Constants.TipoSimulado.R4_GO));
            especialidadeMock.GetAll().Returns(RankingSimuladoEntityTestData.ListEspecialidade());
            storesMock.GetFilial((int)Constants.Stores.R3_MEDERI).Returns(new Filial()
            {
                ID = (int)Constants.Stores.R3_MEDERI, Nome = "R3 MEDERI"
            });

            var resultado = RankingSimuladoEntityTestData.ListResultado();

            rankingMock.ListResultado(idSimulado).Returns(resultado);

            var business = new RankingSimuladoBusiness(rankingMock, especialidadeMock, storesMock);
            var ranking  = business.GeraRankingSimuladoNacional(idSimulado);

            rankingMock.Received().RemoverSimuladoRankingFase01(idSimulado);
            rankingMock.Received().InserirSimuladoRankingFase01(Arg.Any <List <SimuladoRankingFase01DTO> >());

            Assert.AreEqual(resultado.Count(), ranking.Count);
            Assert.IsFalse(ranking.Any(x => x.dblNotaFinal < 0));
            Assert.IsFalse(ranking.Any(x => x.dblNotaFinal > simulado.PesoProvaObjetiva));

            int    contador     = 1;
            int    posicao      = 1;
            double?notaAnterior = -1;

            foreach (var item in ranking)
            {
                var    res  = resultado.Where(x => x.intClientID == item.intClientID).FirstOrDefault();
                double nota = Math.Round(Convert.ToDouble(res.intAcertos) / simulado.QuantidadeQuestoes.Value * simulado.PesoProvaObjetiva.Value, 2);

                if (item.dblNotaFinal != notaAnterior)
                {
                    posicao = contador;
                }

                Assert.AreEqual(nota, item.dblNotaFinal);
                Assert.AreEqual(posicao.ToString() + "º", item.txtPosicao);
                Assert.AreEqual("R3 MEDERI", item.txtUnidade);
                Assert.AreEqual("2019 R4 GO", item.txtLocal);
                Assert.AreEqual("GINECOLOGIA E OBSTETRÍCIA (ANO OPCIONAL)", item.txtEspecialidade);
                Assert.AreEqual(-1, item.intStateID);

                notaAnterior = item.dblNotaFinal;
                contador++;
            }
        }