public void Execute(IPluginExecutionContext context) { DateTime inicioExecucao = DateTime.Now; try { if ((context.InputParameters.Properties.Contains("Target") && context.InputParameters.Properties["Target"] is DynamicEntity)) { this.EntidadeDoContexto = context.InputParameters.Properties["Target"] as DynamicEntity; } if (this.EntidadeDoContexto == null) { return; } PluginHelper.LogEmArquivo(context, "INICIO;", inicioExecucao.ToString(), ""); FacadeOcorrencia facade = new FacadeOcorrencia(context); facade.PosAlteracao(); PluginHelper.LogEmArquivo(context, "FIM;", inicioExecucao.ToString(), DateTime.Now.ToString()); } catch (Exception ex) { PluginHelper.TratarExcecao(ex, TipoDeLog.PluginIncident); PluginHelper.LogEmArquivo(context, "ERRO;", inicioExecucao.ToString(), DateTime.Now.ToString()); } }
public void Execute(IPluginExecutionContext context) { DateTime inicioExecucao = DateTime.Now; try { if ((context.InputParameters.Properties.Contains("Target") && context.InputParameters.Properties["Target"] is DynamicEntity)) { this.EntidadeDoContexto = context.InputParameters.Properties["Target"] as DynamicEntity; } if (this.EntidadeDoContexto == null) { return; } PluginHelper.LogEmArquivo(context, "INICIO;", inicioExecucao.ToString(), ""); #region Recupera a Ocorrencia atualizada this.Organizacao = new Organizacao(context.OrganizationName); var id = PluginHelper.GetEntityId(context); //Retirado o Retrieve pois a função carrega vários sub-dados, como informações de cliente, nota fiscal, produto, etc, etc, etc var ocorrencia = DomainService.RepositoryOcorrencia.RetrieveBasico(id, "new_guid_endereco", "statuscode", "casetypecode", "new_data_hora_conclusao"); #endregion this.AtualizaVigencia(ocorrencia); FacadeOcorrencia facade = new FacadeOcorrencia(context); facade.PosAlteracao(); PluginHelper.LogEmArquivo(context, "FIM;", inicioExecucao.ToString(), DateTime.Now.ToString()); } catch (Exception ex) { PluginHelper.TratarExcecao(ex, TipoDeLog.PluginIncident); PluginHelper.LogEmArquivo(context, "ERRO;", inicioExecucao.ToString(), DateTime.Now.ToString()); } }
public void Execute(IPluginExecutionContext context) { DateTime inicioExecucao = DateTime.Now; try { var prop = context.InputParameters.Properties; if (prop.Contains("Target") && prop["Target"] is DynamicEntity) { PluginHelper.LogEmArquivo(context, "INICIO;", inicioExecucao.ToString(), ""); var organizacao = new Organizacao(context.OrganizationName); var entidade = prop["Target"] as DynamicEntity; FacadeOcorrencia facade = new FacadeOcorrencia(context); facade.Atender(); #region inserir resultado do atendimento do contexto #region reincidencia if (facade.Ocorrencia.OcorrenciaPai != null) { if (facade.Ocorrencia.OcorrenciaPai.Id != Guid.Empty) { entidade = PluginHelper.AdicionarPropriedadeEmEntidadeDinamica(entidade, "new_reincidenteid", new Lookup("incident", facade.Ocorrencia.OcorrenciaPai.Id)); } if (facade.Ocorrencia.OcorrenciaPai.DataDeCriacao != DateTime.MinValue) { context.SharedVariables.Properties.Add( new PropertyBagEntry("dataCriacaoReincidente", facade.Ocorrencia.OcorrenciaPai.DataDeCriacao.ToString()) ); } } #endregion #region SLA var sla = new CrmDateTime() { IsNull = true, IsNullSpecified = true }; if (facade.Ocorrencia.DataSLA.HasValue) { sla = new CrmDateTime(facade.Ocorrencia.DataSLA.Value.ToString("yyyy-MM-dd HH:mm:ss")); } entidade = PluginHelper.AdicionarPropriedadeEmEntidadeDinamica(entidade, "followupby", sla); var escalacao = new CrmDateTime() { IsNull = true, IsNullSpecified = true }; if (facade.Ocorrencia.DataEscalacao.HasValue) { escalacao = new CrmDateTime(facade.Ocorrencia.DataEscalacao.Value.ToString("yyyy-MM-dd HH:mm:ss")); } entidade = PluginHelper.AdicionarPropriedadeEmEntidadeDinamica(entidade, "new_data_hora_escalacao", escalacao); #endregion #region árvore de assunto if (facade.Ocorrencia.EstruturaDeAssunto != null) { foreach (Assunto item in facade.Ocorrencia.EstruturaDeAssunto) { if (item.TipoDeAssunto != TipoDeAssunto.Vazio) { entidade = PluginHelper.AdicionarPropriedadeEmEntidadeDinamica(entidade, item.CampoRelacionadoNaOcorrencia, new Lookup("subject", item.Id)); } } } #endregion #region Valor do Serviço if (facade.Ocorrencia.ValorServico.HasValue) { var ValorServicoCRM = new CrmMoney(facade.Ocorrencia.ValorServico.Value); entidade = PluginHelper.AdicionarPropriedadeEmEntidadeDinamica(entidade, "new_valor_servico", ValorServicoCRM); } #endregion #endregion PluginHelper.LogEmArquivo(context, "FIM;", inicioExecucao.ToString(), DateTime.Now.ToString()); } } catch (Exception ex) { PluginHelper.TratarExcecao(ex, TipoDeLog.PluginIncident); PluginHelper.LogEmArquivo(context, "ERRO;", inicioExecucao.ToString(), DateTime.Now.ToString()); } }