Exemplo n.º 1
0
        /// <summary>
        /// Método para teste simulando a movimentação das tarefas (Serviço)
        /// </summary>
        /// <param name="tarefas">lista de tarefas</param>
        /// <param name="oidTarefaMovida">oid da tarefa movimentada</param>
        /// <param name="posicaoFinal">posição desejada para a tarefa</param>
        /// <returns></returns>
        private static TarefasMovidasDto MoverTarefa(WexDb contexto, List <CronogramaTarefa> tarefas, Guid oidTarefaMovida, Int16 posicaoFinal, List <CronogramaTarefaDto> tarefasCronograma, string alias = null)
        {
            List <CronogramaTarefa> listaDeTarefasImpactadas;
            Int16    novoNbIdTarefaMovida = 0;
            DateTime dataHoraAcao         = new DateTime();
            Guid     oidCronograma        = new Guid();

            listaDeTarefasImpactadas = CronogramaTarefaBo.ReordenarTarefas(oidTarefaMovida, posicaoFinal, ref novoNbIdTarefaMovida, ref dataHoraAcao, ref oidCronograma);
            TarefasMovidasDto movidas = CronogramaTarefaDao.TarefasMovidasDtoFactory(listaDeTarefasImpactadas, DateTime.Now, oidTarefaMovida, novoNbIdTarefaMovida, oidCronograma);

            movidas.TarefasImpactadas.Add(movidas.OidCronogramaTarefaMovida.ToString(), movidas.NbIDTarefaMovida);
            TarefasImpactadasDebugUtil.ExibirLogTarefaMovida(movidas, tarefasCronograma, alias);
            return(movidas);
        }
 /// <summary>
 /// método responsável por atualizar as tarefas impactadas.
 /// </summary>
 /// <param name="oidTarefasExcluidas">lista de oidTarefas excluidas</param>
 public void CriarComandoAtualizarTarefasImpactadas(Dictionary <string, Int16> tarefasImpactadas, DateTime dataAtualizacao)
 {
     Monitor.Enter(_locker);
     try
     {
         lock (this)
         {
             tarefasImpactadas = gerenciadorTarefasImpactadas.ListarAtualizacoesValidas(tarefasImpactadas, dataAtualizacao);
             TarefasImpactadasDebugUtil.ExibirLogAtualizacaoTarefasImpactadas(tarefasImpactadas, new List <CronogramaTarefaGridItem>(Datasource));
             comandos.Enqueue(new ComandoAtualizarTarefasImpactadasGrid(this, tarefasImpactadas));
         }
     }
     catch (Exception e)
     {
         throw e;
     }
     finally
     {
         Monitor.Exit(_locker);
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// Método para efetuar a atualização das tarefas impactadas
        /// </summary>
        /// <param name="tarefasImpactadas">lista de tarefas impactadas</param>
        /// <param name="tarefas">lista de tarefas armazenadas(View)</param>
        /// <returns>retorna a lista com a atualização das tarefas impactadas</returns>
        public static List <CronogramaTarefaDto> AtualizarTarefaImpactadas(Dictionary <string, short> tarefasImpactadas, List <CronogramaTarefaDto> tarefas, string alias = "")
        {
            Debug.WriteLine(string.Format("\n***********  Inicio {0}  ************** \n", alias));
            TarefasImpactadasDebugUtil.ExibirOrdemTarefas(tarefas, "Ordem Inicial");
            if (tarefasImpactadas.Count > 0)
            {
                TarefasImpactadasDebugUtil.ExibirLogAtualizacaoTarefasImpactadas(tarefasImpactadas, tarefas);
                foreach (var item in tarefasImpactadas)
                {
                    AtualizarNbIdTarefa(item.Value, Guid.Parse(item.Key), tarefas);
                }
                tarefas = new List <CronogramaTarefaDto>(tarefas.OrderBy(o => o.NbID));
                TarefasImpactadasDebugUtil.ExibirOrdemTarefas(tarefas, "Ordem Final");
            }
            else
            {
                Debug.WriteLine("Nenhuma tarefa impactada para atualizar!");
            }

            Debug.WriteLine(string.Format("\n***********  Fim {0}  ************** \n", alias));
            return(tarefas);
        }