/// <summary>
        /// Obtenção do próximo Ciclo não finalizado
        /// </summary>
        /// <returns>Objeto de CicloDesenv</returns>
        public CicloDesenv GetProximoCicloNaoFinalizado()
        {
            CicloDesenv ciclo = null;

            Projeto.Ciclos.Filter = CriteriaOperator.Parse("NbCiclo > ? AND CsSituacaoCiclo != ? AND CsSituacaoCiclo != ?", NbCiclo,
                                                           CsSituacaoCicloDomain.Concluido, CsSituacaoCicloDomain.Cancelado);

            if (Projeto.Ciclos.Count > 0)
            {
                Projeto.Ciclos.Sorting.Add(new SortProperty("NbCiclo", SortingDirection.Ascending));
                ciclo = Projeto.Ciclos[0];
            }

            // Retirada do Filtro
            Projeto.Ciclos.Filter = null;

            return(ciclo);
        }
        /// <summary>
        /// Criação das Listas de Itens Pendentes
        /// </summary>
        /// <returns>True, se criou e False se não criou</returns>
        public bool CriarListasItensPendentes(bool save = true)
        {
            int count;

            // Reiniciando valores
            _ListaPrioridades  = new List <CicloDesenvEstoria>();
            _ListaProximoCiclo = new List <CicloDesenvEstoria>();

            DesenvEstorias.Filter = CriteriaOperator.Parse("CsSituacao = ? OR CsSituacao = ?",
                                                           CsSituacaoEstoriaCicloDomain.NaoIniciado, CsSituacaoEstoriaCicloDomain.EmDesenv);

            // quantidade de registros no filtro
            count = DesenvEstorias.Count;

            if (count > 0)
            {
                RnCriarListasDestinoEstorias(DesenvEstorias);
                DesenvEstorias.Filter = null;

                // Próximo Ciclo
                CicloDesenv ciclo = GetProximoCicloNaoFinalizado();
                if (ciclo == null)
                {
                    _ListaPrioridades  = new List <CicloDesenvEstoria>(_ListaProximoCiclo);
                    _ListaProximoCiclo = new List <CicloDesenvEstoria>();

                    if (save)
                    {
                        RnSalvarDestinoEstoriasPendentes();
                    }

                    return(false);
                }

                return(true);
            }

            DesenvEstorias.Filter = null;

            return(false);
        }
        /// <summary>
        /// Salva o destino das Estórias pendentes
        /// </summary>
        public void RnSalvarDestinoEstoriasPendentes()
        {
            ushort position = 1;

            // Prioridades
            foreach (CicloDesenvEstoria estoria in _ListaPrioridades)
            {
                estoria.CsSituacao           = CsSituacaoEstoriaCicloDomain.Replanejado;
                estoria.Estoria.NbPrioridade = position;

                estoria.Estoria.Save();

                position++;
            }

            CicloDesenv nextCiclo = GetProximoCicloNaoFinalizado();

            position = 1;

            // Próximo Ciclo
            foreach (CicloDesenvEstoria estoria in _ListaProximoCiclo)
            {
                estoria.CsSituacao = CsSituacaoEstoriaCicloDomain.Replanejado;

                if (nextCiclo != null)
                {
                    new CicloDesenvEstoria(Session)
                    {
                        CsSituacao  = CsSituacaoEstoriaCicloDomain.NaoIniciado,
                        Ciclo       = nextCiclo,
                        Estoria     = estoria.Estoria,
                        Meta        = true,
                        NbSequencia = position
                    }.Save();

                    position++;
                }
            }
        }