/// <summary>
        /// Captura os dados de um processo
        /// </summary>
        /// <param name="Id">Identificador do processo.</param>
        /// <returns></returns>
        public static AgendadorTarefasModel Get(string Id)
        {
            List<AgendadorTarefasModel> listaAgendadorTarefas = null;
            AgendadorTarefasModel item = new AgendadorTarefasModel();

            if (_context.Application["AGENDADOR_TAREFAS_LISTA"] != null)
            {
                listaAgendadorTarefas = _context.Application["AGENDADOR_TAREFAS_LISTA"] as List<AgendadorTarefasModel>;
                item = listaAgendadorTarefas.Where(w => w.ID == Id).FirstOrDefault();
            }

            return item;
        }
        /// <summary>
        /// Atualiza o status do processo.
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="situacao"></param>
        public static void UpdateStatus(string Id, SituacaoProcesso situacao)
        {
            List<AgendadorTarefasModel> listaAgendadorTarefas = null;
            AgendadorTarefasModel item = new AgendadorTarefasModel();

            if (_context.Application["AGENDADOR_TAREFAS_LISTA"] != null)
            {
                listaAgendadorTarefas = _context.Application["AGENDADOR_TAREFAS_LISTA"] as List<AgendadorTarefasModel>;
                item = listaAgendadorTarefas.Where(w => w.ID == Id).FirstOrDefault();

                if (item != null)
                {
                    item.Situacao = situacao;
                }
            }
        }
        /// <summary>
        /// Apaga um processo da fila.
        /// </summary>
        /// <param name="Id"></param>
        public static void Delete(string Id)
        {
             List<AgendadorTarefasModel> listaAgendadorTarefas = null;
            AgendadorTarefasModel item = new AgendadorTarefasModel();

            if (_context.Application["AGENDADOR_TAREFAS_LISTA"] != null)
            {
                listaAgendadorTarefas = _context.Application["AGENDADOR_TAREFAS_LISTA"] as List<AgendadorTarefasModel>;
                item = listaAgendadorTarefas.Where(w => w.ID == Id).FirstOrDefault();

                if (item != null)
                {
                    listaAgendadorTarefas.Remove(item);

                    _context.Application["AGENDADOR_TAREFAS_LISTA"] = listaAgendadorTarefas;
                }
            }
        }
        /// <summary>
        /// Adiciona um novo processo à fila de execução.
        /// </summary>
        /// <param name="tipo">Tipo do processo</param>
        /// <param name="o">Objeto a ser processado</param>
        /// <returns></returns>
        public static string Add(TipoProcesso tipo, Object o)
        {
            AgendadorTarefasModel item = new AgendadorTarefasModel();

            if (_context.Application["AGENDADOR_TAREFAS_LISTA"] == null)
            {
                _context.Application["AGENDADOR_TAREFAS_LISTA"] = new List<AgendadorTarefasModel>();
            }

            List<AgendadorTarefasModel>  listaAgendadorTarefas = _context.Application["AGENDADOR_TAREFAS_LISTA"] as List<AgendadorTarefasModel>;

            item.ID = Guid.NewGuid().ToString("n");
            item.Situacao = SituacaoProcesso.AguardandoExecucao;
            item.Tipo = tipo;
            item.Objeto = o;

            listaAgendadorTarefas.Add(item);

            _context.Application["AGENDADOR_TAREFAS_LISTA"] = listaAgendadorTarefas;

            return item.ID;
        }
Exemplo n.º 5
0
        private string ProcessarBegin(AgendadorTarefasModel item)
        {
            AgendadorTarefasThread.UpdateStatus(item.ID, SituacaoProcesso.EmExecucao);

            // Realizar o processo de compactação da pasta
            //
            //
            //
            //
            //
            //
            //

            Random objRandom = new Random();

            System.Threading.Thread.Sleep(objRandom.Next(1, 5) * 3000);

            AgendadorTarefasThread.UpdateStatus(item.ID, SituacaoProcesso.ExecucaoConcluida);


            return(item.ID);
        }
 private static void oCompactacaoPasta_OnProcessEnd(AgendadorTarefasModel sender)
 {
     // Ações customizadas referentes ao Processo de Compactação de Pastas.
 }
Exemplo n.º 7
0
 public void Processar(AgendadorTarefasModel o)
 {
     Func <AgendadorTarefasModel, string> function = new Func <AgendadorTarefasModel, string>(ProcessarBegin);
     IAsyncResult result = function.BeginInvoke(o, ProcessarEnd, function);
 }