/// <summary> /// Método responsável por excluir um cronograma. /// Antes faz uma verificação para analisar se existem tarefas associadas ao cronograma /// caso não tenha, exclui as ultimas seleções dos usuários para aquele cronograma /// para então excluí-lo. /// </summary> /// <param name="session">Sessão Corrente</param> /// <param name="oidCronograma">Guid (ID) do cronograma a ser excluido</param> /// <returns>Boolean confirmando ou não a exclusão</returns> public static bool ExcluirCronograma(WexDb contexto, Guid oidCronograma) { if (contexto == null || oidCronograma == null) { throw new ArgumentException("Os parâmetros Session e OidCronograma não podem ser nulos."); } Cronograma cronograma = CronogramaDao.ConsultarCronogramaCronogramaTarefasETarefasPodOidCronograma(contexto, oidCronograma); if (cronograma != null) { if (cronograma.CronogramaTarefas.Any()) { List <CronogramaTarefa> cronogramaTarefasParaExcluir = CronogramaTarefaDao.ConsultarCronogramaTarefasPorOidCronograma(cronograma.Oid, o => o.Tarefa.TarefaHistoricoTrabalhos); for (int i = 0; i < cronogramaTarefasParaExcluir.Count; i++) { if (cronogramaTarefasParaExcluir[i].Tarefa.TarefaHistoricoTrabalhos != null) { List <TarefaHistoricoTrabalho> historicosParaExcluir = cronogramaTarefasParaExcluir[i].Tarefa.TarefaHistoricoTrabalhos.ToList(); for (int j = 0; j < historicosParaExcluir.Count; j++) { historicosParaExcluir[j].CsExcluido = true; } cronogramaTarefasParaExcluir[i].Tarefa.TarefaHistoricoTrabalhos = null; } cronogramaTarefasParaExcluir[i].CsExcluido = true; cronogramaTarefasParaExcluir[i].Tarefa.CsExcluido = true; } } CronogramaBo.RemoverSelecoesAssociadasAoCronograma(contexto, cronograma.Oid); cronograma.CsExcluido = true; contexto.SaveChanges(); return(true); } return(false); }