/// <summary>
        /// Método responsável por buscar uma tarefa pelo Oid e Converter para Dto
        /// </summary>
        /// <param name="oidCronogramaTarefa">Oid da tarefa a ser procurada</param>
        /// <returns>Tarefa encontrada</returns>
        public static CronogramaTarefaDto ConsultarCronogramaTarefaPorOidDto(Guid oidCronogramaTarefa)
        {
            CronogramaTarefa cronogramaTarefa = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(oidCronogramaTarefa, o => o.Tarefa.AtualizadoPor.Usuario.Person, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma);
            DateTime         dataHoraAcao     = DateTime.Now;

            return(CronogramaTarefaBo.DtoFactory(cronogramaTarefa, dataHoraAcao));
        }
        public void DeveCriarUmRespectivoItemDeTrabalhoParaAsTarefasQueForemCriadas()
        {
            Assert.Inconclusive("Falta correção de ItemDeTrabalho");

            Cronograma cronograma = new Cronograma();

            cronograma.TxDescricao = "Cronograma1";
            contexto.Cronograma.Add(cronograma);

            SituacaoPlanejamento situacao = new SituacaoPlanejamento();

            situacao.CsTipo      = CsTipoPlanejamento.Planejamento;
            situacao.TxDescricao = "Nao iniciado";
            contexto.SituacaoPlanejamento.Add(situacao);

            Colaborador colaborador = ColaboradorFactoryEntity.CriarColaborador(contexto, "gabriel.matos", true);

            contexto.SaveChanges();

            DateTime dat2 = DateTime.Now;
            List <CronogramaTarefa> tarefasList = new List <CronogramaTarefa>();

            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "T1", situacao, DateTime.Now, "", "gabriel.matos", out tarefasList, ref dat2, "");
            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "T2", situacao, DateTime.Now, "", "gabriel.matos", out tarefasList, ref dat2, "");
            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "T3", situacao, DateTime.Now, "", "gabriel.matos", out tarefasList, ref dat2, "");
            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "T4", situacao, DateTime.Now, "", "gabriel.matos", out tarefasList, ref dat2, "");
            List <Tarefa> tarefas = contexto.Tarefa.ToList();

            //List<ItemDeTrabalho> itens = new XPCollection<ItemDeTrabalho>( contexto ).ToList();
            //List<Guid> oidTarefas = new List<Guid>( tarefas.Select( o => o.Oid ) );
            //List<Guid> itensTrabalhoOid = new List<Guid>( itens.Select( o => o.Oid ) );
            //CollectionAssert.AreEquivalent( itensTrabalhoOid, oidTarefas, "Itens de trabalho deveria conter o oid de todas as tarefas criadas" );
        }
        public void DeveCalcularDadosDoPlanejadoQuandoExistirTarefasNoCronogramaConsiderandoFolgaPorDiaMesNoCalendario()
        {
            DateTime dataInicio = DateTime.Parse("01/05/2014"), dataTermino = DateTime.Parse("05/05/2014");

            DateUtil.CurrentDateTime = dataInicio;
            AdicionarCalendario("Folga", CsCalendarioDomain.Folga, CsVigenciaDomain.PorDiaMes, DateTime.Parse("02/05/2014"));

            EditarDataCronograma(dataInicio, dataTermino, Cronograma);

            CronogramaTarefaBo.CriarCronogramaTarefa(Cronograma.Oid, (string)"Tarefa 01", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out _tarefasImpactadas, ref _dataAcao, (string)"Criar método", 5, 0);
            CronogramaTarefaBo.CriarCronogramaTarefa(Cronograma.Oid, (string)"Tarefa 02", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out _tarefasImpactadas, ref _dataAcao, (string)"Criar método", 5, 0);

            var dadosEsperadosGrafico = new List <BurndownDadosDto>();

            dadosEsperadosGrafico.Add(new BurndownDadosDto {
                Dia = new DateTime(2014, 05, 01), QtdeHoras = 10, CsTipo = CsTipoBurndown.Planejado
            });
            dadosEsperadosGrafico.Add(new BurndownDadosDto {
                Dia = new DateTime(2014, 05, 05), QtdeHoras = 0, CsTipo = CsTipoBurndown.Planejado
            });
            dadosEsperadosGrafico.Add(new BurndownDadosDto {
                Dia = new DateTime(2014, 05, 01), QtdeHoras = 10, CsTipo = CsTipoBurndown.Realizado
            });


            var dadosGrafico = GraficoBurndownBO.Instancia.CalcularDadosGraficoBurndown(Cronograma.Oid);

            Assert.IsNotNull(dadosGrafico, "Deveria ter retornado o resultado com os dias planejados do cronograma");
            Assert.IsTrue(dadosGrafico.DadosBurndown.Count > 0, "Deveria conter os dias planejados da sprint");
            foreach (var dadosAtuais in dadosGrafico.DadosBurndown)
            {
                Assert.IsTrue(dadosEsperadosGrafico.Any(o => CompararDadosGrafico(o, dadosAtuais)), "O resultado deveria conter os resultados para o dia esperado.");
            }
        }
        public void EditarTarefaQuandoLinhaBaseNaoEstiverSalvaTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);

            Cronograma cronogramaPadrao1 = CronogramaBo.CriarCronogramaPadrao(contexto);

            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            string responsaveis = colaborador1.NomeCompleto;

            //iníco tarefa
            DateTime dataInicio = DateTime.Now;

            List <CronogramaTarefa> tarefaImpactadas;

            DateTime dataHoraAcao = new DateTime();

            CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronogramaPadrao1.Oid, (string)"Tarefa 01", situacaoPlanejamento, dataInicio, responsaveis, colaborador1.Usuario.UserName, out tarefaImpactadas, ref dataHoraAcao, (string)"Criar método", 3, 0);

            //busca tarefa criada
            CronogramaTarefa tarefaCriada = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == novaTarefa.Oid);

            //Alterando responsaveis
            Colaborador colaborador2 = ColaboradorFactoryEntity.CriarColaborador(contexto, "pedro.lins", true);

            colaborador2.Usuario.UserName = "******";

            Colaborador colaborador3 = ColaboradorFactoryEntity.CriarColaborador(contexto, "joao.lins", true);

            colaborador3.Usuario.UserName = "******";

            string responsaveisAlterado = String.Format("{0},{1}", colaborador2.NomeCompleto, colaborador3.NomeCompleto);

            //cria situação planejamento alterada
            SituacaoPlanejamento situacaoPlanejamento2 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S2",
                                                                                                           CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Cancelamento,
                                                                                                           CsPadraoSistema.Sim, true);

            string txDescricaoAlterada           = "Tarefa 01 alterada";
            string txObservacaoAlterada          = "Criar método alterado";
            Int16  EstimativaInicialHoraAlterada = 4;

            TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), txDescricaoAlterada, situacaoPlanejamento2.Oid.ToString(), colaborador1.Usuario.UserName,
                                  txObservacaoAlterada, responsaveisAlterado, EstimativaInicialHoraAlterada, new TimeSpan(0), new TimeSpan(0), false, dataInicio);

            //busca tarefa criada
            CronogramaTarefa tarefaAlterada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento, o => o.Tarefa.TarefaResponsaveis);

            DateUtil.CurrentDateTime = (DateTime)tarefaAlterada.Tarefa.DtAtualizadoEm;

            Assert.AreEqual(DateUtil.CurrentDateTime, tarefaAlterada.Tarefa.DtAtualizadoEm, "As datas devem ser iguais.");
            Assert.AreEqual(txDescricaoAlterada, tarefaAlterada.Tarefa.TxDescricao, "Devem ser as mesmas, pois a descrição foi alterada.");
            Assert.AreEqual(txObservacaoAlterada, tarefaAlterada.Tarefa.TxObservacao, "Devem ser as mesmas, pois a data foi alterada.");
            Assert.AreEqual(EstimativaInicialHoraAlterada, tarefaAlterada.Tarefa.NbEstimativaInicial, "");
            Assert.AreEqual(situacaoPlanejamento2.Oid, tarefaAlterada.Tarefa.OidSituacaoPlanejamento, "");
            Assert.AreEqual(responsaveisAlterado, tarefaAlterada.Tarefa.TxResponsaveis);
        }
        /// <summary>
        /// Método auxiliar para criar tarefas no cronograma
        /// </summary>
        private void CriarTarefasNoCronograma()
        {
            _cronogramaTarefas = new List <CronogramaTarefa>();

            for (var i = 0; i < 5; i++)
            {
                _cronogramaTarefas.Add(CronogramaTarefaBo.CriarCronogramaTarefa(Cronograma.Oid, "Tarefa 01",
                                                                                SituacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento),
                                                                                DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out _tarefasImpactadas, ref _dataAcao,
                                                                                "Criar método", 3));
            }
        }
        /// <summary>
        /// Método responsável por criar uma tarefa dependente de projeto e cronograma.
        /// É acessado pelo serviço de planejamento quando solicitado pela tela de cronograma.
        /// </summary>
        /// <param name="contexto">Contexto do banco</param>
        /// <param name="login">Login do usuario</param>
        /// <param name="oidCronograma"> oid cronograma</param>
        /// <param name="txDescricaoTarefa"> descrição da tarefa </param>
        /// <param name="txObservacaoTarefa">observações da tarefa</param>
        /// <param name="oidSituacao">oid situação da tarefa</param>
        /// <param name="responsaveis">responsáveis pela tarefa</param>
        /// <param name="nbEstimativaInicial"> horas estimadas inicialmente</param>
        /// <param name="dtInicio"> data de inicio da tarefa</param>
        /// <param name="oidTarefaSelecionada">oid da tarefa</param>
        /// <param name="salvar"> condição para indicar se irá salvar ou não a tarefa dentro da classe tarefa</param>
        /// <returns>hash contendo informações sobre a tarefa e lista das tarefas impactadas</returns>
        public static CronogramaTarefa CriarTarefa(Guid oidCronograma, string txDescricaoTarefa, string oidSituacao, DateTime dtInicio, string login, string txObservacaoTarefa, string responsaveis, out List <CronogramaTarefa> tarefasImpactadas, ref DateTime dataHoraAcao, Int16 nbEstimativaInicial = 0, short nbIDReferencia = 0)
        {
            if (oidCronograma == null || oidCronograma == new Guid() || String.IsNullOrEmpty(oidSituacao))
            {
                throw new ArgumentException("Os parametros session, oidCronograma sao obrigatorios.");
            }

            SituacaoPlanejamento situacaoPlanejamento = SituacaoPlanejamentoDAO.ConsultarSituacaoPlanejamentoPorOid(Guid.Parse(oidSituacao));

            CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(oidCronograma, txDescricaoTarefa, situacaoPlanejamento, dtInicio, responsaveis, login, out tarefasImpactadas, ref dataHoraAcao, txObservacaoTarefa, nbEstimativaInicial, nbIDReferencia);

            return(novaTarefa);
        }
예제 #7
0
        /// <summary>
        /// Método para teste simulando a movimentação das tarefas (Serviço)
        /// </summary>
        /// <param name="tarefas">lista de tarefas</param>
        /// <param name="oidTarefaMovida">oid da tarefa movimentada</param>
        /// <param name="posicaoFinal">posição desejada para a tarefa</param>
        /// <returns></returns>
        private static TarefasMovidasDto MoverTarefa(WexDb contexto, List <CronogramaTarefa> tarefas, Guid oidTarefaMovida, Int16 posicaoFinal, List <CronogramaTarefaDto> tarefasCronograma, string alias = null)
        {
            List <CronogramaTarefa> listaDeTarefasImpactadas;
            Int16    novoNbIdTarefaMovida = 0;
            DateTime dataHoraAcao         = new DateTime();
            Guid     oidCronograma        = new Guid();

            listaDeTarefasImpactadas = CronogramaTarefaBo.ReordenarTarefas(oidTarefaMovida, posicaoFinal, ref novoNbIdTarefaMovida, ref dataHoraAcao, ref oidCronograma);
            TarefasMovidasDto movidas = CronogramaTarefaDao.TarefasMovidasDtoFactory(listaDeTarefasImpactadas, DateTime.Now, oidTarefaMovida, novoNbIdTarefaMovida, oidCronograma);

            movidas.TarefasImpactadas.Add(movidas.OidCronogramaTarefaMovida.ToString(), movidas.NbIDTarefaMovida);
            TarefasImpactadasDebugUtil.ExibirLogTarefaMovida(movidas, tarefasCronograma, alias);
            return(movidas);
        }
        public void EditarTarefaQuandoAlterarHorasRestantesEHorasRealizadoTarefaTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);

            Cronograma cronogramaPadrao1 = CronogramaBo.CriarCronogramaPadrao(contexto);


            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            string responsaveis = colaborador1.NomeCompleto;

            //iníco tarefa
            DateTime dataInicio = DateTime.Now;

            List <CronogramaTarefa> tarefasImpactadas;
            DateTime         dataHoraAcao = new DateTime();
            CronogramaTarefa novaTarefa   = CronogramaTarefaBo.CriarCronogramaTarefa(cronogramaPadrao1.Oid, (string)"Tarefa 01", situacaoPlanejamento, dataInicio, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, (string)"Criar método", 3, 0);

            //busca tarefa criada
            CronogramaTarefa tarefaCriada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(novaTarefa.Oid, o => o.Tarefa.SituacaoPlanejamento);

            //Salvando a linha de base
            bool     salvarLinhaBaseTarefa = true;
            TimeSpan estimativaRestante    = tarefaCriada.Tarefa.EstimativaInicialHora;

            string responsaveisAlterado = colaborador1.NomeCompleto;

            TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), tarefaCriada.Tarefa.TxDescricao, tarefaCriada.Tarefa.SituacaoPlanejamento.Oid.ToString(), colaborador1.Usuario.UserName,
                                  tarefaCriada.Tarefa.TxObservacao, responsaveisAlterado, tarefaCriada.Tarefa.NbEstimativaInicial, estimativaRestante, new TimeSpan(0), salvarLinhaBaseTarefa, dataInicio);

            //busca tarefa criada
            CronogramaTarefa tarefaAlterada = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == tarefaCriada.Oid);

            //Alterando Estimativa Restante da tarefa
            TimeSpan estimativaRestanteAlterada = new TimeSpan(1, 0, 0);
            TimeSpan horasRealizado             = new TimeSpan(2, 0, 0);

            TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), tarefaCriada.Tarefa.TxDescricao, tarefaCriada.Tarefa.SituacaoPlanejamento.Oid.ToString(), colaborador1.Usuario.UserName,
                                  tarefaCriada.Tarefa.TxObservacao, responsaveisAlterado, tarefaCriada.Tarefa.NbEstimativaInicial, estimativaRestanteAlterada, horasRealizado, salvarLinhaBaseTarefa, DateTime.Now);

            //busca tarefa criada
            CronogramaTarefa tarefaAlteradaHorario = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento);

            Assert.AreEqual(new TimeSpan(3, 0, 0), tarefaCriada.Tarefa.EstimativaInicialHora, "Deve ser a mesma estimativa inicial.");
            Assert.AreEqual(estimativaRestanteAlterada, tarefaAlteradaHorario.Tarefa.EstimativaRestanteHora, "Deve ter alterado a estimativa restante.");
            Assert.AreEqual(horasRealizado, tarefaAlteradaHorario.Tarefa.EstimativaRealizadoHora, "Deve ter alterado as horas realizado.");
        }
예제 #9
0
        public ActionResult ListarTarefas(Guid?id, Guid?oidCronogramaTarefa)
        {
            if (id.HasValue)
            {
                return(Json(CronogramaTarefaBo.ConsultarCronogramaTarefasPorOidCronogramaDto(id.Value), JsonRequestBehavior.AllowGet));
            }

            if (oidCronogramaTarefa.HasValue)
            {
                return(RetornarActionResult(CronogramaTarefaBo.ConsultarCronogramaTarefaPorOidDto(oidCronogramaTarefa.Value), JsonRequestBehavior.AllowGet));
            }
            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Deveria ser informado o Oid de identificação do cronograma ou da tarefa selecionada")
            {
            });
        }
예제 #10
0
        public void DeveRetornarOSomatorioDeHorasPlanejadasDoCronogramaQuandoHouverTarefasTest()
        {
            //TODO: MIGRAR TESTE PARA TarefaHistoricoEstimativaDao

            Cronograma cronograma = CronogramaBo.CriarCronogramaPadrao();

            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "Tarefa 01", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out tarefasImpactadas, ref dataAcao, "Criar método", 3);
            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "Tarefa 02", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out tarefasImpactadas, ref dataAcao, "Criar método", 3);
            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "Tarefa 03", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out tarefasImpactadas, ref dataAcao, "Criar método", 3);
            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "Tarefa 04", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out tarefasImpactadas, ref dataAcao, "Criar método", 3);
            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "Tarefa 05", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out tarefasImpactadas, ref dataAcao, "Criar método", 3);

            double horasPlanejadas = TarefaHistoricoEstimativaDao.ConsultarTotalHorasPlanejadasCronograma(cronograma.Oid);

            Assert.AreEqual(15, horasPlanejadas.ToTimeSpan().Hours, "Deve ter 0 horas planejadas, pois não existem tarefas cadastradas.");
        }
        /// <summary>CronogramaTarefaBo.ControlarCriacaoCronogramaTarefas( contexto,
        /// Método usado para buscar todas as tarefas a partir da descrição de um cronograma, é usado pelo serviço e acionado pela tela de cronograma.
        /// </summary>
        /// <param name="oidCronograma">oid do cronograma</param>
        /// <returns>Lista das tarefas consultadas e convertidas para dto</returns>
        public static List <CronogramaTarefaDto> ConsultarCronogramaTarefasPorOidCronogramaDto(Guid oidCronograma)
        {
            List <CronogramaTarefaDto> cronogramaTarefasDto = new List <CronogramaTarefaDto>();

            List <CronogramaTarefa> cronogramaTarefas = CronogramaTarefaDao.ConsultarCronogramaTarefasPorOidCronograma(oidCronograma, o => o.Cronograma, o => o.Tarefa.AtualizadoPor.Usuario.Person, o => o.Tarefa.SituacaoPlanejamento);
            DateTime dataHoraAcao = DateTime.Now;

            if (cronogramaTarefas == null)
            {
                return(cronogramaTarefasDto);
            }

            for (int i = 0; i < cronogramaTarefas.Count; i++)
            {
                cronogramaTarefasDto.Add(CronogramaTarefaBo.DtoFactory(cronogramaTarefas[i], dataHoraAcao));
            }

            return(cronogramaTarefasDto);
        }
예제 #12
0
 public ActionResult MoverTarefa(Guid?oidTarefaSelecionada, short nbIdDestino)
 {
     try
     {
         if (!oidTarefaSelecionada.HasValue)
         {
             throw new ArgumentException("o oid da tarefa selecionada é obrigatório");
         }
         short    nbIDAtualizadoTarefaMovida = 0;
         DateTime dataHoraAcao  = new DateTime();
         Guid     oidCronograma = new Guid();
         List <CronogramaTarefa> tarefasImpactadas = CronogramaTarefaBo.ReordenarTarefas(oidTarefaSelecionada.Value, nbIdDestino, ref nbIDAtualizadoTarefaMovida, ref dataHoraAcao, ref oidCronograma);
         return(Json(CronogramaTarefaBo.TarefasMovidasDtoFactory(tarefasImpactadas, DateTime.Now, oidTarefaSelecionada.Value, nbIDAtualizadoTarefaMovida, oidCronograma)));
     }
     catch (Exception e)
     {
         Exception novaException = new Exception(String.Format("Messagem: {0} /n \n - StackTrace: {1} /n \n -", e.Message, e.StackTrace));
         throw novaException;
     }
 }
        public void EditarTarefaQuandoSalvarLinhaBaseTarefaTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);

            Cronograma cronogramaPadrao1 = CronogramaBo.CriarCronogramaPadrao(contexto);

            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            string responsaveis = colaborador1.NomeCompleto;

            //iníco tarefa
            DateTime dataInicio = DateTime.Now;

            List <CronogramaTarefa> tarefasImpactadas;
            DateTime         dataHoraAcao = new DateTime();
            CronogramaTarefa novaTarefa   = CronogramaTarefaBo.CriarCronogramaTarefa(cronogramaPadrao1.Oid, (string)"Tarefa 01", situacaoPlanejamento, dataInicio, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, (string)"Criar método", 3, 0);

            //busca tarefa criada
            CronogramaTarefa tarefaCriada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(novaTarefa.Oid, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma, o => o.Tarefa.AtualizadoPor.Usuario.Person, o => o.Tarefa);

            bool salvarLinhaBaseTarefa = true;

            TimeSpan estimativaRestante = TarefaDao.ConsultarTarefaPorOid((Guid)tarefaCriada.OidTarefa).EstimativaRestanteHora;

            string responsaveisTarefaEdicao = colaborador1.NomeCompleto;

            TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), tarefaCriada.Tarefa.TxDescricao, tarefaCriada.Tarefa.SituacaoPlanejamento.Oid.ToString(), colaborador1.Usuario.UserName,
                                  tarefaCriada.Tarefa.TxObservacao, responsaveisTarefaEdicao, tarefaCriada.Tarefa.NbEstimativaInicial, estimativaRestante, new TimeSpan(0), salvarLinhaBaseTarefa, dataInicio);

            //busca tarefa criada
            CronogramaTarefa tarefaAlterada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma, o => o.Tarefa.AtualizadoPor.Usuario.Person, o => o.Tarefa.LogsAlteracao, o => o.Tarefa.TarefaHistoricoTrabalhos, o => o.Tarefa.TarefaResponsaveis);

            Assert.AreEqual(salvarLinhaBaseTarefa, tarefaAlterada.Tarefa.CsLinhaBaseSalva, "Deveria ter salvo a linha de base");
            Assert.AreEqual(estimativaRestante, tarefaAlterada.Tarefa.NbEstimativaRestante.ToTimeSpan(), "Deveria ter mudado a estimativa restando, pois salvou a linha de base");
        }
예제 #14
0
        public ActionResult ExcluirTarefa(TarefaExclusaoDto dto)
        {
            try
            {
                if (!dto.OidCronograma.HasValue || dto.OidsCronogramaTarefas == null || dto.OidsCronogramaTarefas.Count < 1)
                {
                    return(new EmptyResult());
                }

                List <CronogramaTarefa> tarefasImpactadas       = new List <CronogramaTarefa>();
                List <Guid>             oidsTarefasNaoExcluidas = new List <Guid>();
                DateTime dataHoraAcao = new DateTime();
                List <CronogramaTarefa> tarefasExcluidas;
                tarefasExcluidas = CronogramaTarefaBo.ExcluirCronogramaTarefas(dto.OidsCronogramaTarefas, dto.OidCronograma.Value, ref tarefasImpactadas, ref oidsTarefasNaoExcluidas, ref dataHoraAcao);
                return(Json(CronogramaTarefaBo.TarefasExcluidasDtoFactory(tarefasImpactadas, oidsTarefasNaoExcluidas, tarefasExcluidas, DateTime.Now, dto.OidCronograma.Value)));
            }
            catch (Exception e)
            {
                Exception novaException = new Exception(String.Format("Messagem: {0} /n \n - StackTrace: {1} /n \n -", e.Message, e.StackTrace));

                throw novaException;
            }
        }
        /// <summary>
        /// Método responsável por buscar as tarefas que serão impactadas
        /// </summary>
        /// <param name="oidCronograma">Oid do cronograma em que será pesquisado</param>
        /// <param name="nbIdInicio">ID início</param>
        /// <param name="nbIdFinal">ID final</param>
        /// <returns>Lista de tarefas que serão impactadas na reordenação e/ou recalculo</returns>
        public static List <CronogramaTarefa> ConsultarTarefasImpactadas(Guid oidCronograma, short nbIdInicio, short nbIdFinal = 0)
        {
            if (oidCronograma == new Guid() || oidCronograma == null || nbIdInicio < 0)
            {
                throw new ArgumentException("Os parâmetros são inválidos.");
            }

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                if (nbIdFinal > 0)
                {
                    CronogramaTarefaBo.ValidarValoresNbID(ref nbIdInicio, ref nbIdFinal);
                    return(contexto.CronogramaTarefa.MultiploInclude(
                               o => o.Cronograma,
                               o => o.Tarefa.SituacaoPlanejamento
                               ).Where(o => o.NbID >= nbIdInicio && o.NbID <= nbIdFinal && o.OidCronograma == oidCronograma && !o.CsExcluido).OrderBy(o => o.NbID).ToList());
                }
                else
                {
                    return(contexto.CronogramaTarefa.MultiploInclude(o => o.Cronograma, o => o.Tarefa.SituacaoPlanejamento).Where(o => o.NbID >= nbIdInicio && o.OidCronograma == oidCronograma && !o.CsExcluido).OrderBy(o => o.NbID).ToList());
                }
            }
        }
예제 #16
0
 public ActionResult ListarTarefas(List <Guid> oids)
 {
     return(RetornarActionResult(CronogramaTarefaBo.ConsultarCronogramasTarefaPorOidDto(oids), JsonRequestBehavior.DenyGet));
 }
        /// <summary>
        /// Responsável por buscar uma lista de CronogramaTarefas converter para Dto
        /// </summary>
        /// <param name="oidCronogramaTarefas">Lista de oids das tarefas para pesquisar</param>
        /// <returns>retorna lista das tarefas convertidas para Dto</returns>
        public static List <CronogramaTarefaDto> ConsultarCronogramaTarefaPorOidDto(List <Guid> oidCronogramaTarefas)
        {
            List <CronogramaTarefa> cronogramaTarefas = ConsultarCronogramaTarefasPorOid(oidCronogramaTarefas, o => o.Cronograma, o => o.Tarefa.AtualizadoPor.Usuario.Person.Party, o => o.Tarefa.SituacaoPlanejamento);

            DateTime dataHoraAcao = DateTime.Now;

            return(cronogramaTarefas == null ? new List <CronogramaTarefaDto>() : cronogramaTarefas.Select(cronogramaTarefa => CronogramaTarefaBo.DtoFactory(cronogramaTarefa, dataHoraAcao)).ToList());
        }
예제 #18
0
        public void ConsultarTarefasPorOidCronogramaTarefaQuandoReceberUmaListaDeOidCronogramaTarefaTest()
        {
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

            //cria cronograma
            Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento, new DateTime(), new DateTime(), true);

            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            //nova tarefa
            CronogramaTarefa novaTarefa1 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa2 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa3 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa4 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa5 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };

            novaTarefa1.OidCronograma = cronograma1.Oid;
            novaTarefa2.OidCronograma = cronograma1.Oid;
            novaTarefa3.OidCronograma = cronograma1.Oid;
            novaTarefa4.OidCronograma = cronograma1.Oid;
            novaTarefa5.OidCronograma = cronograma1.Oid;

            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa1, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa2, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa3, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa4, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa5, 0);

            novaTarefa1.Tarefa.TxDescricao          = "Tarefa 01";
            novaTarefa1.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa1.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa2.Tarefa.TxDescricao          = "Tarefa 02";
            novaTarefa2.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa2.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa3.Tarefa.TxDescricao          = "Tarefa 03";
            novaTarefa3.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa3.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa4.Tarefa.TxDescricao          = "Tarefa 04";
            novaTarefa4.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa4.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa5.Tarefa.TxDescricao          = "Tarefa 05";
            novaTarefa5.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa5.Tarefa.AtualizadoPor        = colaborador1;

            contexto.CronogramaTarefa.Add(novaTarefa1);
            contexto.CronogramaTarefa.Add(novaTarefa2);
            contexto.CronogramaTarefa.Add(novaTarefa3);
            contexto.CronogramaTarefa.Add(novaTarefa4);
            contexto.CronogramaTarefa.Add(novaTarefa5);
            contexto.SaveChanges();

            List <Guid> oidCronogramaTarefas = new List <Guid>();

            oidCronogramaTarefas.Add(novaTarefa1.Oid);
            oidCronogramaTarefas.Add(novaTarefa2.Oid);

            List <CronogramaTarefa> tarefas = CronogramaTarefaDao.ConsultarCronogramaTarefasPorOid(oidCronogramaTarefas, o => o.Cronograma, o => o.Tarefa.SituacaoPlanejamento, o => o.Tarefa.AtualizadoPor.Usuario.Person.Party);

            Assert.AreEqual(2, tarefas.Count, "Deveria possuir 2 tarefas armazenadas!");

            CronogramaTarefa tarefaEsperada1 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa1.Oid));
            CronogramaTarefa tarefaEsperada2 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa2.Oid));

            Assert.IsNotNull(tarefaEsperada1, "Deveria ter recebido a tarefas esperada");
            Assert.IsNotNull(tarefaEsperada2, "Deveria ter recebido a tarefas esperada");

            Assert.AreEqual(novaTarefa1.Oid, tarefaEsperada1.Oid, "Deveria ser o mesmo CronogramaTarefa");
            Assert.AreEqual(novaTarefa1.OidCronograma, tarefaEsperada1.OidCronograma, "Deveriam estar no mesmo cronograma");
            Assert.AreEqual(novaTarefa1.OidTarefa, tarefaEsperada1.OidTarefa, "Deveriam estar relacionadas a mesma tarefa");
            Assert.AreEqual(novaTarefa1.NbID, tarefaEsperada1.NbID, "Deveria estar com o mesmo NbId");
            Assert.AreEqual(novaTarefa1.CsExcluido, tarefaEsperada1.CsExcluido, "Deveriam estar com o mesmo estado de exclusão");


            Assert.AreEqual(novaTarefa2.Oid, tarefaEsperada2.Oid, "Deveria ser o mesmo CronogramaTarefa");
            Assert.AreEqual(novaTarefa2.OidCronograma, tarefaEsperada2.OidCronograma, "Deveriam estar no mesmo cronograma");
            Assert.AreEqual(novaTarefa2.OidTarefa, tarefaEsperada2.OidTarefa, "Deveriam estar relacionadas a mesma tarefa");
            Assert.AreEqual(novaTarefa2.NbID, tarefaEsperada2.NbID, "Deveria estar com o mesmo NbId");
            Assert.AreEqual(novaTarefa2.CsExcluido, tarefaEsperada2.CsExcluido, "Deveriam estar com o mesmo estado de exclusão");

            //Assert.IsTrue( tarefas.Contains( novaTarefa1 ), "Deveria conter a tarefa na lista" );
            //Assert.IsTrue( tarefas.Contains( novaTarefa2 ), "Deveria conter a tarefa na lista" );
        }
예제 #19
0
        public void ConsultarCronogramaTarefasCarregandoASituacaoPlanejamento()
        {
            contexto = ContextFactoryManager.CriarWexDb();
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

            //cria cronograma
            Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento, new DateTime(), new DateTime(), true);

            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            //nova tarefa
            CronogramaTarefa novaTarefa1 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa2 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa3 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa4 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa5 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };

            novaTarefa1.OidCronograma = cronograma1.Oid;
            novaTarefa2.OidCronograma = cronograma1.Oid;
            novaTarefa3.OidCronograma = cronograma1.Oid;
            novaTarefa4.OidCronograma = cronograma1.Oid;
            novaTarefa5.OidCronograma = cronograma1.Oid;

            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa1, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa2, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa3, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa4, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa5, 0);

            novaTarefa1.Tarefa.TxDescricao          = "Tarefa 01";
            novaTarefa1.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa1.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa2.Tarefa.TxDescricao          = "Tarefa 02";
            novaTarefa2.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa2.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa3.Tarefa.TxDescricao          = "Tarefa 03";
            novaTarefa3.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa3.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa4.Tarefa.TxDescricao          = "Tarefa 04";
            novaTarefa4.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa4.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa5.Tarefa.TxDescricao          = "Tarefa 05";
            novaTarefa5.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa5.Tarefa.AtualizadoPor        = colaborador1;

            contexto.CronogramaTarefa.Add(novaTarefa1);
            contexto.CronogramaTarefa.Add(novaTarefa2);
            contexto.CronogramaTarefa.Add(novaTarefa3);
            contexto.CronogramaTarefa.Add(novaTarefa4);
            contexto.CronogramaTarefa.Add(novaTarefa5);
            contexto.SaveChanges();

            List <Guid> oidCronogramaTarefas = new List <Guid>();

            oidCronogramaTarefas.Add(novaTarefa1.Oid);
            oidCronogramaTarefas.Add(novaTarefa2.Oid);



            List <CronogramaTarefa> tarefas = CronogramaTarefaDao.ConsultarCronogramaTarefasPorOid(oidCronogramaTarefas, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma.SituacaoPlanejamento, o => o.Tarefa.AtualizadoPor.Usuario.Person);

            Assert.AreEqual(2, tarefas.Count, "Deveria possuir 2 tarefas armazenadas!");
            var t1 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa1.Oid));
            var t2 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa2.Oid));

            Assert.IsTrue(tarefas.Contains(t1), "Deveria encontrar a tarefa na lista");
            Assert.IsTrue(tarefas.Contains(t2), "Deveria encontrar a tarefa na lista");
        }
예제 #20
0
        public void RnValidarTarefaEditadaQuandoEstimativaInicialSejaAlteradaTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento1 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                           CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                           CsPadraoSistema.Sim, true);

            //cria cronograma
            Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento1, new DateTime(),
                                                                             new DateTime(), true);

            //cria colaborador
            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            //adiciona colaborador como responsável pela tarefa
            string responsaveis = colaborador1.NomeCompleto;

            List <CronogramaTarefa> tarefasImpactadas;
            DateTime dataHoraAcao = new DateTime();
            //cria tarefa a partir da RnIncluirTarefa em CronogramaTarefa
            CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronograma1.Oid, "Tarefa 01", situacaoPlanejamento1, DateTime.Now, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, "Criar método1", 3, 0);

            //recupera a tarefa criada
            CronogramaTarefa tarefa = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(novaTarefa.Oid, o => o.Tarefa.SituacaoPlanejamento);

            //criar um Dto da tarefa e repassa as informações para poder utilizar o método que está sendo testado
            CronogramaTarefaGridItem tarefaDto = new CronogramaTarefaGridItem();

            tarefaDto.OidCronogramaTarefa = tarefa.Oid;
            tarefaDto.TxDescricaoSituacaoPlanejamentoTarefa = tarefa.Tarefa.SituacaoPlanejamento.TxDescricao;
            tarefaDto.NbEstimativaInicial  = tarefa.Tarefa.NbEstimativaInicial;
            tarefaDto.NbEstimativaRestante = tarefa.Tarefa.NbEstimativaRestante;

            //adiciona tarefa na lista de tarefas antigas (antes de serem alteradas)
            List <CronogramaTarefaGridItem> tarefasAntigas = new List <CronogramaTarefaGridItem>();

            tarefasAntigas.Add(tarefaDto);

            //cria uma tarefa Dto alterada e modifica o campo situação de planejamento
            CronogramaTarefaGridItem tarefaDtoAlterada = new CronogramaTarefaGridItem();

            tarefaDtoAlterada.OidCronogramaTarefa = tarefaDto.OidCronogramaTarefa;
            tarefaDtoAlterada.TxDescricaoSituacaoPlanejamentoTarefa = tarefaDto.TxDescricaoSituacaoPlanejamentoTarefa;
            tarefaDtoAlterada.NbEstimativaInicial  = 5;
            tarefaDtoAlterada.NbEstimativaRestante = tarefaDto.NbEstimativaRestante;

            //adiciona a tarefa na lista de tarefas modificadas.
            List <CronogramaTarefaGridItem> tarefasAtualizadas = new List <CronogramaTarefaGridItem>();

            tarefasAtualizadas.Add(tarefaDtoAlterada);

            //valida os campos alterados
            Hashtable camposAlterados = TarefaEditada.ValidarCamposRelevantesAlterados(tarefasAntigas, tarefasAtualizadas);

            List <int> campos = new List <int>();

            campos = (List <int>)camposAlterados[tarefaDto.OidCronogramaTarefa];

            Assert.AreEqual(1, campos.Count, "Deveria ter sido alterado apenas um campo.");
            Assert.AreEqual((int)CsTipoCampoEditado.EstimativaInicial, campos[0], "O campo alterado deveria ser do mesmo Tipo");
            Assert.AreNotEqual(tarefaDto.NbEstimativaInicial, tarefaDtoAlterada.NbEstimativaInicial, "Não deveriam ser iguais, pois o campo foi alterado.");
        }
        public void EditarTarefaQuandoOutroUsuarioAlterarTarefaTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);

            Cronograma cronogramaPadrao1 = CronogramaBo.CriarCronogramaPadrao(contexto);


            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            string responsaveis = colaborador1.NomeCompleto;

            //iníco tarefa
            DateTime dataInicio   = DateTime.Now;
            DateTime dataHoraAcao = new DateTime();
            List <CronogramaTarefa> tarefasImpactadas;

            CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronogramaPadrao1.Oid, (string)"Tarefa 01", situacaoPlanejamento, dataInicio, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, (string)"Criar método", 3, 0);

            //busca tarefa criada
            CronogramaTarefa tarefaCriada = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == novaTarefa.Oid);

            Colaborador colaborador2 = ColaboradorFactoryEntity.CriarColaborador(contexto, "pedro.lins", true);

            Colaborador colaborador3 = ColaboradorFactoryEntity.CriarColaborador(contexto, "joao.lins", true);

            List <Colaborador> responsaveisAlterados = new List <Colaborador>();

            responsaveisAlterados.Add(colaborador2);
            responsaveisAlterados.Add(colaborador3);

            //cria situação planejamento alterada
            SituacaoPlanejamento situacaoPlanejamento2 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S2",
                                                                                                           CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Cancelamento,
                                                                                                           CsPadraoSistema.Sim, true);

            Colaborador colaborador4 = ColaboradorFactoryEntity.CriarColaborador(contexto, "gabriel.matos", true);

            string   txDescricaoAlterada           = "Tarefa 01 alterada";
            DateTime dataInicioAlterada            = new DateTime(2013, 12, 10);
            string   txObservacaoAlterada          = "Criar método alterado";
            Int16    EstimativaInicialHoraAlterada = 4;

            string responsaveisAlterado = colaborador1.NomeCompleto;

            TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), txDescricaoAlterada, situacaoPlanejamento2.Oid.ToString(), colaborador2.Usuario.UserName,
                                  txObservacaoAlterada, responsaveisAlterado, EstimativaInicialHoraAlterada, new TimeSpan(0), new TimeSpan(0), false, DateTime.Now);

            //busca tarefa criada
            CronogramaTarefa tarefaAlterada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento);

            DateUtil.CurrentDateTime = (DateTime)tarefaAlterada.Tarefa.DtAtualizadoEm;

            Assert.AreEqual(DateUtil.CurrentDateTime, tarefaAlterada.Tarefa.DtAtualizadoEm, "As datas devem ser iguais.");
            Assert.AreEqual(txDescricaoAlterada, tarefaAlterada.Tarefa.TxDescricao, "Devem ser as mesmas, pois a descrição foi alterada.");
            Assert.AreEqual(txObservacaoAlterada, tarefaAlterada.Tarefa.TxObservacao, "Devem ser as mesmas, pois a data foi alterada.");
            Assert.AreEqual(EstimativaInicialHoraAlterada, tarefaAlterada.Tarefa.NbEstimativaInicial, "Devem ser iguais, pois foi alterada");
            Assert.AreEqual(situacaoPlanejamento2.Oid, tarefaAlterada.Tarefa.OidSituacaoPlanejamento, "Devem ser iguais, pois foi alterada");
            Assert.AreEqual(colaborador2.Oid, tarefaAlterada.Tarefa.OidAtualizadoPor, "Deve ser o mesmo, pois foi outro usuário que alterou a tarefa");
        }
예제 #22
0
        public void QuandoReceberVariasAtualizacoesDeTelaForaDeOrdem()
        {
            Colaborador colaborador = ColaboradorFactoryEntity.CriarColaborador(contexto, "gabriel.matos", true);
            Cronograma  cronograma  = new Cronograma();

            cronograma.DtInicio = DateTime.Now;
            cronograma.DtFinal  = DateTime.Now.AddDays(30);
            SituacaoPlanejamento situacao = new SituacaoPlanejamento();

            situacao.CsPadrao    = CsPadraoSistema.Sim;
            situacao.CsSituacao  = CsTipoSituacaoPlanejamento.Ativo;
            situacao.CsTipo      = CsTipoPlanejamento.Planejamento;
            situacao.TxDescricao = "S1";
            contexto.SituacaoPlanejamento.Add(situacao);
            cronograma.SituacaoPlanejamento = situacao;
            contexto.Cronograma.Add(cronograma);
            contexto.SaveChanges();
            List <CronogramaTarefa> tarefas = new List <CronogramaTarefa>();
            List <CronogramaTarefa> listaDeTarefasImpactadas = new List <CronogramaTarefa>();
            DateTime         data;
            CronogramaTarefa tarefaTemp;

            for (Int16 i = 0; i < 6; i++)
            {
                data       = DateTime.Now;
                tarefaTemp = CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, string.Format("T{0}", (i + 1)), situacao, data, "", "gabriel.matos", out listaDeTarefasImpactadas, ref data);
                tarefas.Add(tarefaTemp);
            }

            List <CronogramaTarefaDto> tarefasCronograma = new List <CronogramaTarefaDto>(tarefas.Select(o => CronogramaTarefaBo.DtoFactory(o)));
            Guid oidT1 = tarefas[0].Oid;
            Guid oidT2 = tarefas[1].Oid;
            Guid oidT3 = tarefas[2].Oid;
            Guid oidT4 = tarefas[3].Oid;
            Dictionary <string, short> listaAtualizacao;

            //Movimentação 1
            TarefasMovidasDto movidas = MoverTarefa(contexto, tarefas, oidT3, 1, tarefasCronograma, "Movimento 1");

            //Movimentação 2
            TarefasMovidasDto movidas2 = MoverTarefa(contexto, tarefas, oidT2, 4, tarefasCronograma, "Movimento 2");

            //Movimentação 3
            TarefasMovidasDto movidas3 = MoverTarefa(contexto, tarefas, oidT3, 3, tarefasCronograma, "Movimento 3");

            //Movimentação 4
            TarefasMovidasDto movidas4 = MoverTarefa(contexto, tarefas, oidT2, 2, tarefasCronograma, "Movimento 4");

            //Movimentação 5
            TarefasMovidasDto movidas5 = MoverTarefa(contexto, tarefas, oidT4, 4, tarefasCronograma, "Movimento 5");

            //Movimentação 5
            TarefasMovidasDto movidas6 = MoverTarefa(contexto, tarefas, oidT2, 1, tarefasCronograma, "Movimento 6");

            listaAtualizacao  = gerenciador.ListarAtualizacoesValidas(movidas5.TarefasImpactadas, movidas5.DataHoraAcao);
            tarefasCronograma = AtualizarTarefaImpactadas(listaAtualizacao, tarefasCronograma, "Atualização 5");

            listaAtualizacao  = gerenciador.ListarAtualizacoesValidas(movidas2.TarefasImpactadas, movidas2.DataHoraAcao);
            tarefasCronograma = AtualizarTarefaImpactadas(listaAtualizacao, tarefasCronograma, "Atualização 2");

            listaAtualizacao  = gerenciador.ListarAtualizacoesValidas(movidas.TarefasImpactadas, movidas.DataHoraAcao);
            tarefasCronograma = AtualizarTarefaImpactadas(listaAtualizacao, tarefasCronograma, "Atualização 1");

            listaAtualizacao  = gerenciador.ListarAtualizacoesValidas(movidas4.TarefasImpactadas, movidas4.DataHoraAcao);
            tarefasCronograma = AtualizarTarefaImpactadas(listaAtualizacao, tarefasCronograma, "Atualização 4");

            listaAtualizacao  = gerenciador.ListarAtualizacoesValidas(movidas6.TarefasImpactadas, movidas6.DataHoraAcao);
            tarefasCronograma = AtualizarTarefaImpactadas(listaAtualizacao, tarefasCronograma, "Atualização 6");

            listaAtualizacao  = gerenciador.ListarAtualizacoesValidas(movidas3.TarefasImpactadas, movidas3.DataHoraAcao);
            tarefasCronograma = AtualizarTarefaImpactadas(listaAtualizacao, tarefasCronograma, "Atualização 3");



            Assert.AreEqual(6, tarefasCronograma.Select(o => o.NbID).Distinct().Count(), "Deveria possuir 6 números, pois nenhum deveria ter se repetido!");
            Dictionary <Guid, short> ordem_Oid_E_NbID_BaseDeDados = CronogramaTarefaDao.ConsultarCronogramaTarefasPorOidCronograma(cronograma.Oid).ToDictionary(o => o.Oid, o => o.NbID);
            Dictionary <Guid, short> ordem_Oid_E_NbID_Tela        = tarefasCronograma.ToDictionary(o => o.OidCronogramaTarefa, o => (short)o.NbID);

            CollectionAssert.AreEquivalent(ordem_Oid_E_NbID_BaseDeDados, ordem_Oid_E_NbID_Tela, "A ordem das tarefas na tela deveria estar em sicronia com o base, após as atualizações");
        }