Exemple #1
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            Intelbras.CRM2013.Domain.Servicos.RepositoryService RepositoryService = new Intelbras.CRM2013.Domain.Servicos.RepositoryService(context.OrganizationName, context.IsExecutingOffline, adminService);

            switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
            {
            case Domain.Enum.Plugin.MessageName.Create:

                if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
                {
                    var target       = (Entity)context.InputParameters["Target"];
                    var oportunidade = target.Parse <Domain.Model.Oportunidade>(context.OrganizationName, context.IsExecutingOffline, adminService);

                    try
                    {
                        if (oportunidade.ClientePotencialOriginador != null)
                        {
                            #region Copia Arquivos do Sharepoint
                            Domain.Model.ClientePotencial           clientePotencial = RepositoryService.ClientePotencial.Retrieve(oportunidade.ClientePotencialOriginador.Id);
                            List <Domain.Model.DocumentoSharePoint> lstDocs          = RepositoryService.DocumentoSharePoint.ListarPorIdRegistro(oportunidade.ClientePotencialOriginador.Id);
                            List <Domain.Model.Anotacao>            lstAnotacoes     = RepositoryService.Anotacao.ListarPor(oportunidade.ClientePotencialOriginador.Id);

                            foreach (var doc in lstDocs)
                            {
                                Domain.Model.DocumentoSharePoint newDoc = doc;
                                newDoc.ObjetoRelacionadoId = new SDKore.DomainModel.Lookup(oportunidade.ID.Value, "", SDKore.Crm.Util.Utility.GetEntityName(oportunidade));
                                newDoc.Id = Guid.Empty;
                                newDoc.ID = null;
                                RepositoryService.DocumentoSharePoint.Create(newDoc);
                            }

                            foreach (var anotacao in lstAnotacoes)
                            {
                                Domain.Model.Anotacao newAnotacao = anotacao;
                                newAnotacao.EntidadeRelacionada = new SDKore.DomainModel.Lookup(oportunidade.ID.Value, "", SDKore.Crm.Util.Utility.GetEntityName(oportunidade));
                                newAnotacao.Id = Guid.Empty;
                                newAnotacao.ID = null;
                                RepositoryService.Anotacao.Create(newAnotacao);
                            }
                            #endregion
                        }
                    }
                    catch (System.Exception e)
                    {
                        throw;
                    }
                }

                break;
            }
        }
        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;
            }
        }