Ejemplo n.º 1
0
        public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario)
        {
            usuarioIntegracao = usuario;

            var objeto = this.DefinirPropriedades(this.CarregarMensagem <Pollux.MSG0268>(mensagem));

            if (!resultadoPersistencia.Sucesso)
            {
                retorno.Add("Resultado", resultadoPersistencia);
                return(CriarMensagemRetorno <Pollux.MSG0268R1>(numeroMensagem, retorno));
            }

            objeto = new Domain.Servicos.LeadService(this.Organizacao, this.IsOffline).Persistir(objeto);

            var objeto2 = this.DefinirPropriedades2(this.CarregarMensagem <Pollux.MSG0268>(mensagem), new Servicos.RepositoryService().ClientePotencial.Retrieve(objeto.ID.Value));

            if (objeto2 != null)
            {
                if (!resultadoPersistencia.Sucesso)
                {
                    retorno.Add("Resultado", resultadoPersistencia);
                    return(CriarMensagemRetorno <Pollux.MSG0268R1>(numeroMensagem, retorno));
                }
                new Servicos.RepositoryService().Oportunidade.Update(objeto2);
            }

            #region Lista de Produtos
            if (objeto.StatusValidacao != (int)Enum.StatusDaValidacao.Aceito)
            {
                List <ProdutoProjeto> lstProdutosProjeto = this.DefinirPropriedadesProdutos(this.CarregarMensagem <Pollux.MSG0268>(mensagem), new Servicos.RepositoryService().ClientePotencial.Retrieve(objeto.ID.Value));
                var produtosTemp = new Domain.Servicos.ProdutoProjetoService(this.Organizacao, this.IsOffline).Persistir(lstProdutosProjeto);
                new Domain.Servicos.ProdutoProjetoService(this.Organizacao, this.IsOffline).AtualizarListagemProdutos(objeto.ID.Value, produtosTemp);
            }
            #endregion

            if (objeto != null)
            {
                if (originadoExtranet)
                {
                    //seta um usuário do comercial como proprietário de cliente potencial originado na extranet
                    new Servicos.UtilService(this.Organizacao, this.IsOffline).MudarProprietarioRegistro("systemuser", new Guid(SDKore.Configuration.ConfigurationManager.GetSettingValue("ProprietarioComercial")), "lead", objeto.ID.Value);
                }
                while (string.IsNullOrEmpty(objeto.NumeroProjeto))
                {
                    objeto = new Servicos.RepositoryService().ClientePotencial.Retrieve(objeto.ID.Value);
                }
                retorno.Add("NumeroProjeto", objeto.NumeroProjeto);
                retorno.Add("CodigoClientePotencial", objeto.ID.Value.ToString());
                if (objeto2 != null)
                {
                    retorno.Add("CodigoOportunidade", objeto2.ID.Value.ToString());
                }
                retorno.Add("Resultado", resultadoPersistencia);
            }

            return(CriarMensagemRetorno <Pollux.MSG0268R1>(numeroMensagem, retorno));
        }
Ejemplo n.º 2
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
            {
            case Domain.Enum.Plugin.MessageName.Create:

                var entidade = context.GetContextEntity();
                Domain.Model.ClientePotencial ClientePotencial = entidade.Parse <Domain.Model.ClientePotencial>(context.OrganizationName, context.IsExecutingOffline, adminService);
                var leadService = new Domain.Servicos.LeadService(context.OrganizationName, context.IsExecutingOffline);

                #region Sharepoint
                string diretorio = "";

                if ((!string.IsNullOrEmpty(ClientePotencial.PrimeiroNomeDoContato)) && (!string.IsNullOrEmpty(ClientePotencial.SobreNomeDoContato)))
                {
                    diretorio = ClientePotencial.PrimeiroNomeDoContato + " " + ClientePotencial.SobreNomeDoContato;
                }
                else if (!string.IsNullOrEmpty(ClientePotencial.NumeroProjeto))
                {
                    diretorio = ClientePotencial.NumeroProjeto;
                }

                if (ClientePotencial != null && !string.IsNullOrEmpty(diretorio) && !string.IsNullOrWhiteSpace(diretorio))
                {
                    new SharepointServices(context.OrganizationName, context.IsExecutingOffline, adminService).CriarDiretorio <Domain.Model.ClientePotencial>(diretorio, ClientePotencial.ID.Value);
                }

                #endregion

                #region Envia email caso ja exista projeto igual
                if (leadService.ListarProjetosDuplicidade(ClientePotencial.Cnpj, ClientePotencial.UnidadeNegocio.Id.ToString()).Count > 1)
                {
                    (new RepositoryService(context.OrganizationName, context.IsExecutingOffline)).ClientePotencial.EnviaEmailRegistroProjeto(ClientePotencial, true);
                }
                else
                {
                    (new RepositoryService(context.OrganizationName, context.IsExecutingOffline)).ClientePotencial.EnviaEmailRegistroProjeto(ClientePotencial, false);
                }
                #endregion

                break;
            }
        }