public void MonitoramentoPorSolicitacoes()
        {
            Trace       = new SDKore.Helper.Trace("Monitoramento por Solicitação");
            mensagemLog = new List <string>();

            List <CompromissosDoCanal> lstCompCanal = CompromissoDoCanalService.ListarAtivosVencidosCumpridos(Intelbras.CRM2013.Domain.Enum.CompromissoPrograma.TipoMonitoramento.Solicitacoes);

            foreach (var item in lstCompCanal)
            {
                List <Tarefa> tarefas = TarefaService.ListarTarefasAtivas(item.ID.Value);

                var compromissoCanalUpdate = new CompromissosDoCanal(item.OrganizationName, isOffline)
                {
                    ID = item.ID
                };

                if (tarefas.Count > 0)
                {
                    compromissoCanalUpdate.StatusCompromisso = new Lookup(StatusCompromissoNaoCumprido.ID.Value, "");
                }
                else
                {
                    ParametroGlobal paramGlobal = new Domain.Servicos.ParametroGlobalService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider)
                                                  .ObterFrequenciaAtividadeChecklist(item.Compromisso.Id);

                    if (paramGlobal != null)
                    {
                        compromissoCanalUpdate.Validade = DateTime.Today.AddDays(int.Parse(paramGlobal.Valor));
                    }
                    else
                    {
                        InserirLogFormat("Parametro global {0} não localizado para o compromisso {1}", Enum.TipoParametroGlobal.FrequenciaChecklist, item.Compromisso.Name);
                        continue;
                    }
                }

                RepositoryService.CompromissosDoCanal.Update(compromissoCanalUpdate);
            }

            this.EnviaEmailDeLog("Monitoramento Por Solicitações");
        }
        private void ExecutaVerificacaoDeValidade_Solicitacoes(CompromissosDoCanal compCanal)
        {
            List <Tarefa> tarefas = TarefaService.ListarTarefasAtivas(compCanal.ID.Value);

            CompromissosDoPrograma compPrograma = RepositoryService.CompromissosPrograma.ObterPorCompCanal(compCanal.ID.Value);


            #region VERIFICA VALIDADE
            if ((compCanal.Validade == null || compCanal.Validade < DateTime.Now) &&
                (compPrograma.TipoMonitoramento != null && compPrograma.TipoMonitoramento.Value == (int)Enum.CompromissoPrograma.TipoMonitoramento.Solicitacoes))
            {
                if (tarefas.Count > 0)
                {
                    if (tarefas[0].Conclusao < DateTime.Now)
                    {
                        compCanal.StatusCompromisso = new Lookup(RepositoryService.StatusCompromissos.ObterPor(Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido).ID.Value, "");
                        RepositoryService.CompromissosDoCanal.Update(compCanal);
                    }
                }
                else
                {
                    ParametroGlobal paramGlobal = new Domain.Servicos.ParametroGlobalService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider)
                                                  .ObterFrequenciaAtividadeChecklist(compCanal.Compromisso.Id);

                    if (paramGlobal != null)
                    {
                        compCanal.Validade = DateTime.Now.AddDays(int.Parse(paramGlobal.Valor));
                        RepositoryService.CompromissosDoCanal.Update(compCanal);
                    }
                    else
                    {
                        InserirLog("Parametro global " + Enum.TipoParametroGlobal.FrequenciaChecklist + " não localizado para o compromisso " + compCanal.Compromisso.Name);
                    }
                }
            }
            #endregion
        }