/// <summary>
        /// Método responsável por editar os dados de um cronograma
        /// </summary>
        /// <param name="cronogramaDto">dados do cronograma editado</param>
        /// <returns>verdadeiro caso tenha sido editado e falso caso contrário</returns>
        public static bool EditarCronograma(CronogramaDto cronogramaDto)
        {
            if (cronogramaDto == null || cronogramaDto.Oid == new Guid())
            {
                return(false);
            }

            var cronograma = CronogramaDao.ConsultarCronogramaPorOid(cronogramaDto.Oid, o => o.SituacaoPlanejamento.Cronogramas);

            if (cronograma == null)
            {
                return(false);
            }

            var dtoCronogramaBaseDados = CronogramaBo.DtoFactory(cronograma);

            if (ComparadorGenerico.HouveMudancaEm(dtoCronogramaBaseDados, cronogramaDto, o => o.TxDescricao))
            {
                return(AlterarDescricaoCronograma(cronogramaDto.Oid, cronogramaDto.TxDescricao));
            }

            if (!ValidarDatasCronograma(cronogramaDto) || !ComparadorGenerico.HouveMudancaEm(dtoCronogramaBaseDados, cronogramaDto, o => o.OidSituacaoPlanejamento, o => o.DtInicio, o => o.DtFinal))
            {
                return(false);
            }

            AtualizarDadosCronograma(cronograma, cronogramaDto);
            return(CronogramaDao.SalvarCronograma(cronograma));
        }
 public bool HouveMudancaEm(CronogramaTarefaGridItem tarefaAtual, params Func <CronogramaTarefaGridItem, object>[] propriedades)
 {
     return(ComparadorGenerico.HouveMudancaEm(tarefaAtual, TarefaAntiga, propriedades));
 }