Exemplo n.º 1
0
 public SharepointServices(string organizacao, bool isOffline, object provider)
 {
     this.OrganizationName = organizacao;
     this.IsOffline        = isOffline;
     SDKore.DomainModel.RepositoryFactory.SetTag(this.OrganizationName);
     Trace = new SDKore.Helper.Trace(organizacao);
 }
        private void ExecutaVerificacaoDeValidade_Manual(CompromissosDoCanal compCanal)
        {
            Trace       = new SDKore.Helper.Trace("Monitoramento Manual");
            mensagemLog = new List <string>();
            InserirLog("Monitoramento Manual inicio");

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

            #region VERIFICA VALIDADE
            // VERIFICA VALIDADE (CASO USO 5: STEP 5)
            if ((compCanal.Validade == null || compCanal.Validade < DateTime.Now) &&
                (compPrograma.TipoMonitoramento != null && compPrograma.TipoMonitoramento.Value == (int)Enum.CompromissoPrograma.TipoMonitoramento.Manual))
            {
                compCanal.StatusCompromisso = new Lookup(RepositoryService.StatusCompromissos.ObterPor(Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido).ID.Value, "");
                RepositoryService.CompromissosDoCanal.Update(compCanal);
            }
            #endregion

            #region MANDA EMAIL DE LOG Monitoramnto Manual
            StringBuilder sb = new StringBuilder();
            foreach (string item in mensagemLog)
            {
                sb.AppendLine(item);
            }

            this.EnviaEmailDeLog("Monitoramento Manual");
            #endregion
        }
Exemplo n.º 3
0
        public void SaveTrace()
        {
            var trace = new SDKore.Helper.Trace("Intelbras");

            trace.Add("Add 01");
            trace.Add("Add 02");
            trace.Save();
        }
        public void MonitoramentoManualEPorTarefasESolicitacoes()
        {
            Trace       = new SDKore.Helper.Trace("Monitoramento Manual e por Tarefas e Solicitacoes");
            mensagemLog = new List <string>();
            InserirLog("INICIO - Monitoramento Manual e por Tarefas e Solicitacoes");

            #region parametro de entrada
            int[] tiposMonitoramentoIn = new int[3];
            tiposMonitoramentoIn[0] = (int)Intelbras.CRM2013.Domain.Enum.CompromissoPrograma.TipoMonitoramento.Manual;
            tiposMonitoramentoIn[1] = (int)Intelbras.CRM2013.Domain.Enum.CompromissoPrograma.TipoMonitoramento.PorTarefas;
            tiposMonitoramentoIn[2] = (int)Intelbras.CRM2013.Domain.Enum.CompromissoPrograma.TipoMonitoramento.Solicitacoes;
            #endregion

            List <CompromissosDoCanal> lstCompCanal = CompromissoDoCanalService.ListarVencidosManualPorTarefasESolicitacoes(tiposMonitoramentoIn,
                                                                                                                            RepositoryService.StatusCompromissos.ObterPor(Enum.CompromissoCanal.StatusCompromisso.Cumprido).ID.Value);

            if (lstCompCanal.Count() > 0)
            {
                if (lstCompCanal != null)
                {
                    foreach (var compCanal in lstCompCanal)
                    {
                        if (compCanal.CompromissosDoPrograma.TipoMonitoramento != null)
                        {
                            switch (compCanal.CompromissosDoPrograma.TipoMonitoramento.Value)
                            {
                            case (int)Enum.CompromissoPrograma.TipoMonitoramento.Manual:
                                this.ExecutaVerificacaoDeValidade_Manual(compCanal);
                                break;

                            case (int)Enum.CompromissoPrograma.TipoMonitoramento.Solicitacoes:
                                this.ExecutaVerificacaoDeValidade_Solicitacoes(compCanal);
                                break;

                            case (int)Enum.CompromissoPrograma.TipoMonitoramento.PorTarefas:
                                this.ExecutaVerificacaoDeValidade_Tarefas(compCanal);
                                break;
                            }
                        }
                    }
                }
            }

            InserirLog("FIM - Monitoramento Manual e por Tarefas e Solicitacoes");

            #region MANDA EMAIL DE LOG MonitoramntoAutomatico
            StringBuilder sb = new StringBuilder();
            foreach (string item in mensagemLog)
            {
                sb.AppendLine(item);
            }

            this.EnviaEmailDeLog("Monitoramento Manual e por Tarefas e Solicitacoes");
            #endregion
        }
        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");
        }
        // CASO DE USO 5 – MONITORAMENTO MANUAL
        public void MonitoramentoManual()
        {
            Trace = new SDKore.Helper.Trace("Monitoramento Manual");

            if (StatusCompromissoNaoCumprido == null)
            {
                throw new ApplicationException("A execução do monitoramento foi interrompida, não foi encontrado o Status do Compromisso: " + Intelbras.CRM2013.Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido);
            }

            // OBTEM COMPROMISSOS DO CANAL (CASO USO 5: STEP 4)
            // VERIFICA VALIDADE (CASO USO 5: STEP 5)
            List <CompromissosDoCanal> lstCompCanal = CompromissoDoCanalService.ListarAtivosVencidosCumpridos(Intelbras.CRM2013.Domain.Enum.CompromissoPrograma.TipoMonitoramento.Manual);

            Trace.Add("Foram encontrados {0} para ser processado!", lstCompCanal.Count);
            Trace.SaveClear();

            foreach (var item in lstCompCanal)
            {
                try
                {
                    var compromissoCanalUpdate = new CompromissosDoCanal(item.OrganizationName, item.IsOffline)
                    {
                        ID = item.ID,
                        StatusCompromisso = new Lookup(StatusCompromissoNaoCumprido.ID.Value, "")
                    };

                    Trace.Add("Atualizando o compromisso do Canal [{0}] para não cumprido!", item.ID);
                    Trace.SaveClear();

                    RepositoryService.CompromissosDoCanal.Update(compromissoCanalUpdate);
                }
                catch (Exception ex)
                {
                    SDKore.Helper.Error.Handler(ex);
                }
            }
        }
Exemplo n.º 7
0
 public void DefinirObjetoTrace(SDKore.Helper.Trace trace)
 {
     this.Trace = trace;
 }
Exemplo n.º 8
0
 public TarefaService(RepositoryService repository)
 {
     RepositoryService = new RepositoryService(repository.NomeDaOrganizacao, repository.IsOffline, repository.Provider);
     Trace             = new SDKore.Helper.Trace(string.Empty);
 }
Exemplo n.º 9
0
 public TarefaService(string organizacao, bool isOffline, object provider)
 {
     RepositoryService = new RepositoryService(organizacao, isOffline, provider);
     Trace             = new SDKore.Helper.Trace(organizacao);
 }
Exemplo n.º 10
0
 public TarefaService(string organizacao, bool isOffline)
     : this(organizacao, isOffline, null)
 {
     RepositoryService = new RepositoryService(organizacao, isOffline);
     Trace             = new SDKore.Helper.Trace(organizacao);
 }
Exemplo n.º 11
0
        // CASO DE USO 4 – MONITORAMENTO POR TAREFAS
        public void MonitoramentoPorTarefas()
        {
            Trace       = new SDKore.Helper.Trace("MonitoramentoPorTarefa");
            mensagemLog = new List <string>();

            if (StatusCompromissoCumprido == null)
            {
                throw new ApplicationException("(CRM) A execução do monitoramento foi interrompida, não foi encontrado o Status do Compromisso: " + Intelbras.CRM2013.Domain.Enum.CompromissoCanal.StatusCompromisso.Cumprido);
            }

            if (StatusCompromissoNaoCumprido == null)
            {
                throw new ApplicationException("(CRM) A execução do monitoramento foi interrompida, não foi encontrado o Status do Compromisso: " + Intelbras.CRM2013.Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido);
            }

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

            Trace.Add("Foram encontrados {0} vencidos para ser processado!", compromissosCanalVencidos.Count);
            Trace.SaveClear();

            foreach (var item in compromissosCanalVencidos)
            {
                var compromissoCanalUpdate = new CompromissosDoCanal(item.OrganizationName, item.IsOffline)
                {
                    ID = item.ID,
                    StatusCompromisso = new Lookup(StatusCompromissoNaoCumprido.ID.Value, "")
                };

                Trace.Add("Atualizando o compromisso do Canal [{0}] para não cumprido!", item.ID);
                Trace.SaveClear();

                RepositoryService.CompromissosDoCanal.Update(compromissoCanalUpdate);
            }

            List <CompromissosDoCanal> compromissosCanalCumpridos = CompromissoDoCanalService.ListarAtivosCumpridos(Intelbras.CRM2013.Domain.Enum.CompromissoPrograma.TipoMonitoramento.PorTarefas);

            Trace.Add("Foram encontrados {0} Cumpridos para ser processado!", compromissosCanalCumpridos.Count);
            Trace.SaveClear();

            foreach (var item in compromissosCanalCumpridos)
            {
                List <Tarefa> tarefas = RepositoryService.Tarefa.ListarPorReferenteAAtivo(item.ID.Value);

                // CRIA TAREFA CASO NAO EXISTA (CASO USO 4: STEP 6)
                if (tarefas.Count == 0)
                {
                    try
                    {
                        #region Obtem Parametros Global
                        if (item.UnidadeDeNegocio == null || item.Compromisso == null)
                        {
                            throw new ArgumentException("(CRM) O Comromisso do Canal a seguir não tem Unidade de Negócio ou Compromisso preenchido. " + item.ID.Value);
                        }

                        ParametroGlobal frequenciaChecklist = ParametroGlobal.ObterPor((int)Intelbras.CRM2013.Domain.Enum.TipoParametroGlobal.FrequenciaChecklist,
                                                                                       null, null, null, null, item.Compromisso.Id, null, null);

                        ParametroGlobal atividadesChecklist = ParametroGlobal.ObterPor((int)Intelbras.CRM2013.Domain.Enum.TipoParametroGlobal.AtividadesChecklist,
                                                                                       null, null, null, null, item.Compromisso.Id, null, null);

                        if (frequenciaChecklist == null)
                        {
                            InserirLogFormat("Parametro Global {0} não foi localizado.", Intelbras.CRM2013.Domain.Enum.TipoParametroGlobal.FrequenciaChecklist);
                            continue;
                        }

                        if (atividadesChecklist == null)
                        {
                            InserirLogFormat("Parametro Global {0} não foi localizado.", Intelbras.CRM2013.Domain.Enum.TipoParametroGlobal.AtividadesChecklist);
                            continue;
                        }

                        #endregion

                        #region Criando Tarefa

                        var task = new Model.Tarefa(OrganizationName, isOffline);
                        task.Assunto    = string.Format("Atividades Checklist - {0} - {1}", item.UnidadeDeNegocio.Name, item.Compromisso.Name);
                        task.ReferenteA = new Lookup(item.ID.Value, SDKore.Crm.Util.Utility.GetEntityName(item));
                        task.Descricao  = atividadesChecklist.Valor;

                        task.DataInicial = DateTime.Now;
                        task.Conclusao   = DateTime.Today.AddDays(int.Parse(frequenciaChecklist.Valor));
                        task.Prioridade  = (int)Enum.Tarefa.Prioridade.Normal;
                        task.Status      = (int)Enum.Tarefa.StatusCode.NaoIniciada;

                        Trace.Add("Criando Tarefa para Compromisso do Canal [{0}]", item.ID.Value);
                        Trace.Add("Atividades Checklist [{0}]", atividadesChecklist.Valor);
                        Trace.Add("Frequencia Checklist [{0}]", frequenciaChecklist.Valor);

                        RepositoryService.Tarefa.Create(task);

                        #endregion
                    }
                    catch (Exception ex)
                    {
                        Trace.Add(ex);
                        InserirLog(SDKore.Helper.Error.Handler(ex));
                    }
                    finally
                    {
                        Trace.SaveClear();
                    }
                }
            }

            this.EnviaEmailDeLog("Monitoramento Por Tarefas");
        }