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;
        }