示例#1
0
        public void Execute(IPluginExecutionContext context)
        {
            try
            {
                var isDynamicEntity = (context.InputParameters.Properties.Contains("Target") && context.InputParameters.Properties["Target"] is DynamicEntity);
                if (!isDynamicEntity)
                {
                    return;
                }

                Organizacao organizacao = new Organizacao(context.OrganizationName);
                entity = (DynamicEntity)context.InputParameters.Properties["Target"];

                Contato contato = new Contato(organizacao);

                if (context.MessageName == MessageName.Update)
                {
                    contato.Id = PluginHelper.GetEntityId(context);
                }
                if (entity.Properties.Contains("new_login"))
                {
                    contato.Login = entity.Properties["new_login"].ToString();
                }
                if (entity.Properties.Contains("new_cpf"))
                {
                    contato.Cpf = entity.Properties["new_cpf"].ToString();
                }

                String mensagem;
                if (contato.ExisteDuplicidade(out mensagem))
                {
                    throw new InvalidPluginExecutionException(mensagem);
                }

                this.PopulaCamposDataAniversario();

                FacadeContato facade = new FacadeContato(context);
                facade.PodeIntegrar(ref entity);
            }
            catch (Exception ex) { PluginHelper.TratarExcecao(ex, TipoDeLog.PluginContact); }
        }