Beispiel #1
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static int Main()
        {
            try
            {
                string organizationName           = SDKore.Configuration.ConfigurationManager.GetSettingValue("OrganizacaoIntelbras");
                var    relacionamentoCanalService = new Intelbras.CRM2013.Domain.Servicos.RelacionamentoCanalService(organizationName, false);

                #region Recupera valor do parâmetro global.
                Intelbras.CRM2013.Domain.Servicos.RepositoryService RepositoryService = new Intelbras.CRM2013.Domain.Servicos.RepositoryService(organizationName, false);
                var parametroGlobal = RepositoryService.ParametroGlobal.ObterPorCodigoTipoParametroGlobal((int)Domain.Enum.TipoParametroGlobal.DataExecucaoValorPSD);
                if (parametroGlobal == null)
                {
                    throw new ArgumentException("(CRM) Não foi encontrado Parametro Global [" + (int)(int)Domain.Enum.TipoParametroGlobal.DataExecucaoValorPSD + "].");
                }
                var dataConsulta = Convert.ToDateTime(parametroGlobal.Valor);
                #endregion

                if (dataConsulta.Date == DateTime.Now.Date)
                {
                    ProdutoService ProdutoServices = new ProdutoService(organizationName, false);
                    ProdutoServices.EnviarValorPSD();

                    #region Atualiza data parâmetro global
                    parametroGlobal.Valor = Helper.ProximoMes().Day.ToString() + "/" + Helper.ProximoMes().Month.ToString() + "/" + Helper.ProximoMes().Year.ToString();
                    RepositoryService.ParametroGlobal.Update(parametroGlobal);
                    #endregion
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Erro : " + ex.Message);
            }
            return(0);
        }
Beispiel #2
0
        public static void RelavidarUsuariosEquipe()
        {
            //string Org = "CRM2013D";
            string Org = "INTELBRASQA";
            List <Intelbras.CRM2013.Domain.Model.Conta> listContas = new Intelbras.CRM2013.Domain.Servicos.ContaService(Org, false).ListarTodasContas();

            if (listContas.Count > 0)
            {
                Console.WriteLine("Quantidade de Contas para processamento : " + listContas.Count.ToString());
            }
            else
            {
                Console.WriteLine("Não há conta para processamento.");
            }

            foreach (Intelbras.CRM2013.Domain.Model.Conta registroConta in listContas)
            {
                //Console.WriteLine("Verificando conta Guid : " + registroConta.ID.Value.ToString());
                if (registroConta.Proprietario.Type == "team")
                {
                    //verifica todos os usuários que estão na equipes.
                    List <Intelbras.CRM2013.Domain.Model.TeamMembership> membrosEquipe = new Intelbras.CRM2013.Domain.Servicos.EquipeService(Org, false).listarMembrosEquipe(registroConta.Proprietario.Id);
                    foreach (Intelbras.CRM2013.Domain.Model.TeamMembership membroEquipe in membrosEquipe)
                    {
                        //verifica se existe algum usuario na Equipe que não existe no registro
                        Intelbras.CRM2013.Domain.Model.RelacionamentoCanal Assistente = new Intelbras.CRM2013.Domain.Servicos.RelacionamentoCanalService(Org, false).ListarPorAssistente((Guid)registroConta.ID, membroEquipe.Usuario);
                        Intelbras.CRM2013.Domain.Model.RelacionamentoCanal Supervisor = new Intelbras.CRM2013.Domain.Servicos.RelacionamentoCanalService(Org, false).ListarPorSupervisor((Guid)registroConta.ID, membroEquipe.Usuario);

                        if (Assistente == null && Supervisor == null)
                        {
                            if (membroEquipe.Usuario != registroConta.CriadoPor.Id)
                            {
                                new Intelbras.CRM2013.Domain.Servicos.RelacionamentoCanalService(Org, false).RemoverUserEquipe(registroConta.Proprietario.Id, membroEquipe.Usuario);
                            }

                            Console.WriteLine("Removendo membro da equipe conta :" + registroConta.ID.Value.ToString());
                        }
                    }
                }
            }
        }
Beispiel #3
0
        public void Execute(IServiceProvider serviceProvider)
        {
            var             context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            ITracingService trace   = (ITracingService)serviceProvider.GetService(typeof(ITracingService));

            IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService        service        = serviceFactory.CreateOrganizationService(null);

            try
            {
                var relacionamentoCanalService = new Intelbras.CRM2013.Domain.Servicos.RelacionamentoCanalService(context.OrganizationName, context.IsExecutingOffline, service);

                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 entidade            = (Entity)context.InputParameters["Target"];
                        var RelacionamentoCanal = entidade.Parse <Domain.Model.RelacionamentoCanal>(context.OrganizationName, context.IsExecutingOffline);

                        //Se registro duplicado estoura exception
                        relacionamentoCanalService.VerificarRegistroDuplicado(RelacionamentoCanal);

                        //Envia mensagem 0137
                        if (!RelacionamentoCanal.IntegrarNoPlugin)
                        {
                            relacionamentoCanalService.IntegracaoBarramento(RelacionamentoCanal);
                        }
                    }
                    break;

                case Domain.Enum.Plugin.MessageName.Update:
                    if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity)
                    {
                        var RelCanalPre = ((Entity)context.PreEntityImages["imagem"]).Parse <Domain.Model.RelacionamentoCanal>(context.OrganizationName, context.IsExecutingOffline);

                        var RelCanalPost = ((Entity)context.PostEntityImages["imagem"]).Parse <Domain.Model.RelacionamentoCanal>(context.OrganizationName, context.IsExecutingOffline);

                        //Envia mensagem 0137 caso não haja mudança de status
                        if (RelCanalPre.Status == RelCanalPost.Status)
                        {
                            relacionamentoCanalService.IntegracaoBarramento(RelCanalPost);
                        }
                    }
                    break;

                case Domain.Enum.Plugin.MessageName.Delete:

                    break;

                    #region SetStateDynamicEntity

                case Domain.Enum.Plugin.MessageName.SetStateDynamicEntity:

                    if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity)
                    {
                        var RelCanalPost = ((Entity)context.PostEntityImages["imagem"]).Parse <Domain.Model.RelacionamentoCanal>(context.OrganizationName, context.IsExecutingOffline);

                        //Envia mensagem 0137 caso haja mudança de status
                        relacionamentoCanalService.IntegracaoBarramento(RelCanalPost);
                    }
                    break;
                    #endregion
                }
            }
            catch (Exception ex)
            {
                string message = SDKore.Helper.Error.Handler(ex);

                trace.Trace(SDKore.Helper.Error.GetMessageError(ex));
                throw new InvalidPluginExecutionException(message);
            }
        }