public override void Executar() { if (tarefasAtualizadas == null) { return; } if (tarefasAtualizadas.Count == 0) { gerenciador.EsperarEscritaDataSource(); gerenciador.Datasource.Clear(); gerenciador.LiberarEscritaDataSource(); } gerenciador.EsperarLeituraDataSource(); List <CronogramaTarefaGridItem> tarefasView = gerenciador.Datasource.ToList(); gerenciador.LiberarLeituraDataSource(); List <Guid> oidTarefasAtuais, oidTarefasView; oidTarefasView = new List <Guid>(tarefasView.Select(o => o.OidCronogramaTarefa)); oidTarefasAtuais = new List <Guid>(tarefasAtualizadas.Select(o => o.OidCronogramaTarefa)); List <CronogramaTarefaGridItem> tarefasParaRemover = new List <CronogramaTarefaGridItem>(GetTarefasParaRemover(tarefasView, oidTarefasAtuais, oidTarefasView)); List <CronogramaTarefaGridItem> tarefasParaAdicionar = new List <CronogramaTarefaGridItem>(GetTarefasParaAdicionar(tarefasAtualizadas, oidTarefasAtuais, oidTarefasView)); RemoverTarefas(tarefasParaRemover); AdicionarTarefas(tarefasParaAdicionar); AtualizarTarefas(tarefasAtualizadas); }
/// <summary> /// Executar a movimentação da tarefa /// </summary> public override void Executar() { gerenciador.EsperarLeituraDataSource(); CronogramaTarefaDto tarefaAtual = gerenciador.Datasource.FirstOrDefault(o => o.OidCronogramaTarefa == tarefaMovida.OidTarefa); gerenciador.LiberarLeituraDataSource(); tarefaAtual.NbID = tarefaMovida.PosicaoFinal; }