public void GivenQueOCiclo1DoProjetoProjeto01EstejaComSituacaoEmAndamentoComAsEstorias(string numCiclo, string projeto, string situacaoCiclo, Table table) { CicloDesenv ciclo = StepProjeto.ProjetosDic[projeto].Ciclos[(int.Parse(numCiclo)) - 1]; ciclo.CsSituacaoCiclo = SituacaoCicloByText(situacaoCiclo); ciclo.Save(); for (int position = 0; position < table.RowCount; position++) { string estoria = table.Rows[position][table.Header.ToList()[0]]; string situacaoEstoria = table.Rows[position][table.Header.ToList()[1]]; Estoria est = StepEstoria.EstoriasDic[estoria]; CicloDesenvEstoria estoriaCiclo = CicloDesenvEstoriaFactory.Criar(SessionTest, ciclo, est, situacaoEstoria, true); } ciclo.Save(); }
public void EntaoOCampoDataDeInicioDoProximoCicloNaoDeveSerExibidoNoCancelamentoDoCicloCiclo01(string ciclo) { CicloDesenv cicloObj = ciclosDic[ciclo]; cicloObj.CsSituacaoCiclo = CsSituacaoCicloDomain.Cancelado; cicloObj.Save(); Assert.IsFalse(StepCiclo.ciclosDic[ciclo].RnMostrarInicioProximoCiclo(), "Não deveria mostrar o 'inicio do próximo ciclo'"); }
/// <summary> /// Criar o Ciclo e as Estórias do Ciclo /// </summary> /// <param name="ciclo">Valor texto do Ciclo</param> /// <param name="estorias">Lista valores texto de Estórias do Ciclo</param> public static void CriarCicloEstoriasCiclo(Projeto projeto, string ciclo, List <string> estorias, Session session, ushort position = 1) { // Inserindo no dicionário if (!ciclosDic.ContainsKey(ciclo)) { CicloDesenv cicloObj = CicloFactory.Criar(session, projeto, ciclo); cicloObj.NbCiclo = position; cicloObj.Save(); ciclosDic.Add(ciclo, cicloObj); } foreach (string estoria in estorias) { string[] dados = estoria.Split(';'); if (dados.Count() != 2) { new Exception("O título e a situação da Estória devem vir separados por ';'"); } string titulo = dados[0]; // Título da Estória string situacao = dados[1]; // Situação da Estória // Se a chave já existir, continua o método if (estoriasDic.ContainsKey(titulo)) { continue; } Modulo modulo = ModuloFactory.Criar(session, projeto, string.Format("modulo - {0}", ciclo), true); Beneficiado beneficiado = BeneficiadoFactory.Criar(session, string.Format("beneficiado - {0}", ciclo), true); Estoria estoriaObj = EstoriaFactory.Criar(session, modulo, titulo, "gostaria de", "então poderei", beneficiado, "observações", "referências", "dúvidas", true); estoriaObj.TxTitulo = titulo; estoriaObj.Save(); // Estória no Ciclo CicloDesenvEstoria estoriaCiclo = CicloDesenvEstoriaFactory.Criar(session, ciclosDic[ciclo], estoriaObj, true); estoriaCiclo.CsSituacao = SituacaoEstoriaCicloByText(situacao); estoriaCiclo.Save(); // Inserindo no dicionário estoriasDic.Add(titulo, estoriaCiclo); } ciclosDic[ciclo].IsExibirJanelaDestinoItensPendentes(); }
/// <summary> /// método criar /// </summary> /// <param name="session">session</param> /// <param name="projeto">Projeto</param> /// <param name="txMeta">String</param> /// <param name="save">bool</param> /// <returns>ciclo</returns> public static CicloDesenv Criar(Session session, Projeto projeto, string txMeta = "", bool save = false) { CicloDesenv ciclo = new CicloDesenv(session); if (String.IsNullOrEmpty(txMeta)) { ciclo.TxMeta = GetDescricao(); } ciclo.Projeto = projeto; if (save) { ciclo.Save(); } return(ciclo); }
public void DadoCicloNumaCertaSituacaoComDataDeInicioEmUmCertoDiaEDataDeTerminoEmUmCertoDia(string ciclo, string situacao, string data_inicio, string data_final) { CicloDesenv Ciclo = ciclosDic[ciclo]; CsSituacaoCicloDomain situacaoCS; if (situacao.Split('-').Length == 1) { situacaoCS = SituacaoCicloByText(situacao); } else { situacaoCS = CsSituacaoCicloDomain.Cancelado; Ciclo.MotivoCancelamento = new MotivoCancelamento(SessionTest) { TxDescricao = situacao.Split('-')[1].Trim() }; } Ciclo.CsSituacaoCiclo = situacaoCS; Ciclo.DtInicio = DateTime.Parse(data_inicio); Ciclo.DtTermino = DateTime.Parse(data_final); Ciclo.Save(); }
/// <summary> /// Regra de negócio que calcula a dataHora de término real do projeto /// </summary> public void RnCalcularTerminoReal() { if (projetoOld != null && (projetoOld.DtInicioReal == DtInicioReal && projetoOld.NbCicloTotalPlan == NbCicloTotalPlan && projetoOld.NbCicloDuracaoDiasPlan == NbCicloDuracaoDiasPlan && projetoOld.NbCicloDiasIntervalo == NbCicloDiasIntervalo)) { return; } if (DtInicioReal != DateTime.MinValue) { DateTime dtInicio = DtInicioReal; _DtTerminoReal = dtInicio.AddDays(-1); for (int nbCiclo = 1; nbCiclo <= NbCicloTotalPlan; nbCiclo++) { int dia = 1; try { Ciclos.Sorting.Add(new SortProperty("NbCiclo", SortingDirection.Ascending)); if (Ciclos.Count > 0 && DtInicioReal != oldDate) { VerificarSeOCicloEstaConcluido(Ciclos[0].CsSituacaoCiclo); } //Metodo que verifica as datas de inicio e final do ultimo ciclo setado como concluído ou cancelado if (nbCiclo == 1) { foreach (CicloDesenv item in Ciclos) { if (item.CsSituacaoCiclo == CsSituacaoCicloDomain.Concluido || item.CsSituacaoCiclo == CsSituacaoCicloDomain.Cancelado) { DateTime verificarItemDataTermino = item.DtTermino.AddDays(NbCicloDiasIntervalo); do { verificarItemDataTermino = verificarItemDataTermino.AddDays(1); if (Calendario.IsDiaUtil(Session, verificarItemDataTermino)) { dtInicio = verificarItemDataTermino; _DtTerminoReal = verificarItemDataTermino.AddDays(-1); } }while (!Calendario.IsDiaUtil(Session, verificarItemDataTermino)); } else { break; } } } //Metodo que faz os calculos das datas if (Ciclos.Count < nbCiclo || (Ciclos.Count >= nbCiclo && Ciclos[nbCiclo - 1].CsSituacaoCiclo != CsSituacaoCicloDomain.Concluido && Ciclos[nbCiclo - 1].CsSituacaoCiclo != CsSituacaoCicloDomain.Cancelado)) { do { _DtTerminoReal = _DtTerminoReal.AddDays(1); if (Calendario.IsDiaUtil(Session, _DtTerminoReal)) { dia += 1; } }while (dia <= NbCicloDuracaoDiasPlan); if (nbCiclo > CicloDesenv.GetUltimoCiclo(this)) { if (IsSaving) { CicloDesenv ciclos = new CicloDesenv(Session) { Projeto = this, NbCiclo = nbCiclo, DtInicio = dtInicio, DtTermino = _DtTerminoReal }; ciclos.Save(); } } else { Ciclos[nbCiclo - 1].DtInicio = dtInicio; Ciclos[nbCiclo - 1].DtTermino = _DtTerminoReal; } dia = 1; if (nbCiclo < NbCicloTotalPlan) { int cont = 0; do { _DtTerminoReal = _DtTerminoReal.AddDays(1); if (Calendario.IsDiaUtil(Session, dtTermino)) { dia += 1; } }while (dia <= NbCicloDiasIntervalo); dtInicio = _DtTerminoReal; do { dtInicio = dtInicio.AddDays(1); if (Calendario.IsDiaUtil(Session, dtInicio)) { cont = 1; } }while (cont == 0); } } } catch (Exception) { Console.WriteLine("Já existe um ciclo concluído"); break; } } if (NbCicloTotalPlan < nbCicloTotalPlanOld && verificacaoValida) { if (NbCicloTotalPlan < CicloDesenv.GetUltimoCiclo(this)) { Ciclos.Sorting.Add(new SortProperty("NbCiclo", SortingDirection.Ascending)); ArrayList lista = new ArrayList(Ciclos); foreach (CicloDesenv item in lista) { if (item.NbCiclo > NbCicloTotalPlan && (item.CsSituacaoCiclo != CsSituacaoCicloDomain.Cancelado && item.CsSituacaoCiclo != CsSituacaoCicloDomain.Concluido)) { item.Delete(); } } } verificacaoValida = false; } } else if (DtInicioReal == DateTime.MinValue && DtTerminoPlan != DateTime.MinValue) { dtTermino = DtTerminoPlan; } }