コード例 #1
0
        private AcessoKonviva ProcessaAcessoKonviva(Contato contatoAtual, AcessoKonviva entradaExistente)
        {
            AcessoKonviva novo = null;

            //if (contatoAtual.AssociadoA != null && entradaExistente.Conta != null)
            if (contatoAtual.AssociadoA != null)
            {
                Conta canal = RepositoryService.Conta.Retrieve(contatoAtual.AssociadoA.Id);
                novo = ObterUnidadeKonvivaDeParaCom(entradaExistente, canal, null);
            }
            else
            {
                novo = ObterUnidadeKonvivaDeParaCom(entradaExistente, null, contatoAtual);
            }
            using (StreamWriter w = File.AppendText(@"c:\logkonviva.txt"))
            {
                w.WriteLine("ATUAL;" + contatoAtual.NomeCompleto + ";" + entradaExistente.UnidadeKonviva.Id + ";" + entradaExistente.DeParaUnidadeKonviva.Id + ";" + novo.UnidadeKonviva.Id + ";" + (novo.DeParaUnidadeKonviva != null ? novo.DeParaUnidadeKonviva.Id.ToString() : "NULL"));
            }
            if (entradaExistente.UnidadeKonviva != novo.UnidadeKonviva ||
                entradaExistente.DeParaUnidadeKonviva != novo.DeParaUnidadeKonviva)
            {
                entradaExistente.UnidadeKonviva       = novo.UnidadeKonviva;
                entradaExistente.DeParaUnidadeKonviva = novo.DeParaUnidadeKonviva;
                return(entradaExistente);
            }
            else
            {
                return(null);
            }
        }
コード例 #2
0
        public AcessoKonviva Persistir(Model.AcessoKonviva objAcessoKonviva)
        {
            AcessoKonviva TmpAcessoKonviva = null;

            if (objAcessoKonviva.ID.HasValue)
            {
                TmpAcessoKonviva = RepositoryService.AcessoKonviva.ObterPor(objAcessoKonviva.ID.Value);

                if (TmpAcessoKonviva != null)
                {
                    RepositoryService.AcessoKonviva.Update(objAcessoKonviva);
                    //Altera Status - Se necessário
                    if (objAcessoKonviva.Status.HasValue && !TmpAcessoKonviva.Status.Equals(objAcessoKonviva.Status))
                    {
                        this.MudarStatus(TmpAcessoKonviva.ID.Value, objAcessoKonviva.Status.Value);
                    }
                    return(TmpAcessoKonviva);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                objAcessoKonviva.ID = RepositoryService.AcessoKonviva.Create(objAcessoKonviva);
                return(objAcessoKonviva);
            }
        }
コード例 #3
0
        public AcessoKonviva RetornarUnidadeCorreta(AcessoKonviva acessoKonviva)
        {
            var deParaService = new DeParaDeUnidadeDoKonvivaService(RepositoryService);

            if (acessoKonviva.Conta != null)
            {
                var canal = RepositoryService.Conta.Retrieve(acessoKonviva.Conta.Id);
                return(deParaService.ObterUnidadeKonvivaDeParaCom(acessoKonviva, canal, null));
            }
            else
            {
                var contato = RepositoryService.Contato.Retrieve(acessoKonviva.Contato.Id);
                return(deParaService.ObterUnidadeKonvivaDeParaCom(acessoKonviva, null, contato));
            }
        }
コード例 #4
0
        public void CriarAcessoKonvivaPadrao(Guid contatoId)
        {
            Contato contatoM = RepositoryService.Contato.Retrieve(contatoId);

            if (contatoM == null)
            {
                throw new ArgumentException("(CRM) Contato não existente");
            }

            AcessoKonviva acessoKonviva = RepositoryService.AcessoKonviva.ObterPorContato(contatoId, Domain.Enum.StateCode.Ativo);

            if (acessoKonviva != null)
            {
                throw new ArgumentException("(CRM) Usuário Konviva Duplicado!");
            }

            acessoKonviva = new AcessoKonviva(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline);

            acessoKonviva.Contato = new Lookup(contatoM.ID.Value, "");

            //Nova regra de atribuição de Unidade Konviva
            if (contatoM.AssociadoA != null && contatoM.AssociadoA.Type == SDKore.Crm.Util.Utility.GetEntityName <Conta>())
            {
                acessoKonviva.Conta = new Lookup(contatoM.AssociadoA.Id, contatoM.AssociadoA.Type);
                acessoKonviva       = new DeParaDeUnidadeDoKonvivaService(RepositoryService).ObterUnidadeKonvivaDeParaCom(acessoKonviva, RepositoryService.Conta.Retrieve(acessoKonviva.Conta.Id), null);
            }
            else
            {
                acessoKonviva = new DeParaDeUnidadeDoKonvivaService(RepositoryService).ObterUnidadeKonvivaDeParaCom(acessoKonviva, null, contatoM);
            }

            if (acessoKonviva.UnidadeKonviva == null && this.organizacaoPadrao.HasValue)
            {
                acessoKonviva.UnidadeKonviva       = new Lookup(this.organizacaoPadrao.Value, "");
                acessoKonviva.DeParaUnidadeKonviva = null;
            }

            //reseta o perfil para apenas aluno selecionado
            acessoKonviva = this.ResetarPerfilKonviva(acessoKonviva);

            //TODO NOME KONVIVA VER PADRAO DO DOCUMENTOS
            acessoKonviva.Nome = acessoKonviva.Contato.Name;

            RepositoryService.AcessoKonviva.Create(acessoKonviva);
        }
コード例 #5
0
        /// <summary>
        /// Valida se o usuário que não é vinculado a intelbras possui um perfil que nao poderia ter
        /// </summary>
        /// <param name="acessoKonviva"></param>
        /// <returns>Retorna true se estiver Ok, e falso se estiver inválido</returns>
        public Boolean ValidarTipoAcesso(AcessoKonviva acessoKonviva)
        {
            string cnpjMatrizIntelbras = SDKore.Configuration.ConfigurationManager.GetSettingValue("Intelbras.Conta.CnpjMatriz");

            if (string.IsNullOrWhiteSpace(cnpjMatrizIntelbras))
            {
                throw new ArgumentException("(CRM) CNPJ da Matriz Intelbras não está configurado!");
            }

            Conta conta = new ContaService(RepositoryService).BuscaContaPorCpfCnpj(cnpjMatrizIntelbras);

            if (conta == null)
            {
                throw new ArgumentException("(CRM) Conta Intelbras não encontrada");
            }

            if (acessoKonviva.Contato == null)
            {
                throw new ArgumentException("(CRM) Acesso Konviva não possui contato");
            }

            Contato contato = RepositoryService.Contato.Retrieve(acessoKonviva.Contato.Id);

            if (contato == null)
            {
                throw new ArgumentException("(CRM) Contato não existente");
            }

            List <AcessoKonviva> listaAcessoKonviva = RepositoryService.AcessoKonviva.ListarPor(contato.ID.Value);

            if (listaAcessoKonviva.Count > 1)
            {
                throw new ArgumentException("(CRM) Acesso Konviva duplicado no sistema !");
            }

            if (contato.AssociadoA == null || contato.AssociadoA.Id != conta.ID.Value)
            {
                if (acessoKonviva.PerfilAdministrador == true)
                {
                    return(false);
                }
            }

            return(true);
        }
コード例 #6
0
        public AcessoKonviva ResetarPerfilKonviva(AcessoKonviva acessoKonviva)
        {
            if (acessoKonviva == null)
            {
                throw new ArgumentNullException("AcessoKonviva não fornecido");
            }

            acessoKonviva.PerfilAdministrador = false;
            acessoKonviva.PerfilAluno         = true;
            acessoKonviva.PerfilAnalista      = false;
            acessoKonviva.PerfilAutor         = false;
            acessoKonviva.PerfilGestor        = false;
            acessoKonviva.PerfilInstrutor     = false;
            acessoKonviva.PerfilModerador     = false;
            acessoKonviva.PerfilMonitor       = false;
            acessoKonviva.PerfilTutor         = false;

            return(acessoKonviva);
        }
コード例 #7
0
        public void AtualizarUnidadeKonvivaDosContatosDoCanal(Guid?canalId)
        {
            if (canalId.HasValue)
            {
                var           aKService       = new AcessoKonvivaService(RepositoryService);
                Conta         canal           = RepositoryService.Conta.Retrieve(canalId.Value);
                AcessoKonviva acessoKonviva   = new AcessoKonviva(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline);
                var           listaDeContatos = RepositoryService.Contato.ListarPor(canal);

                var novo = new AcessoKonviva(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline);
                novo = ObterUnidadeKonvivaDeParaCom(acessoKonviva, canal, null);
                foreach (var contato in listaDeContatos)
                {
                    acessoKonviva = aKService.ObterPorContato(contato.ID.Value, Enum.StateCode.Ativo);
                    acessoKonviva.UnidadeKonviva       = novo.UnidadeKonviva;
                    acessoKonviva.DeParaUnidadeKonviva = novo.DeParaUnidadeKonviva;
                    aKService.Persistir(acessoKonviva);
                }
            }
        }
コード例 #8
0
        public string Enviar(AcessoKonviva objModel)
        {
            string retMsg = String.Empty;

            Intelbras.Message.Helper.MSG0105 mensagem = this.DefinirPropriedades(objModel);

            Domain.Servicos.Integracao integracao = new Servicos.Integracao(this.Organizacao, this.IsOffline);
            if (integracao.EnviarMensagemBarramento(mensagem.GenerateMessage(true), "1", "1", out retMsg))
            {
                Intelbras.Message.Helper.MSG0105R1 retorno = CarregarMensagem <Pollux.MSG0105R1>(retMsg);
                if (!retorno.Resultado.Sucesso)
                {
                    throw new ArgumentException("(CRM) " + string.Concat(retorno.Resultado.Mensagem));
                }
            }
            else
            {
                Intelbras.Message.Helper.ERR0001 erro001 = CarregarMensagem <Pollux.ERR0001>(retMsg);
                throw new ArgumentException("(CRM) " + string.Concat("Erro de Integração \n", erro001.GenerateMessage(false)));
            }
            return(retMsg);
        }
コード例 #9
0
        public AcessoKonviva ObterUnidadeKonvivaDeParaCom(AcessoKonviva acessoKonviva, Conta canal, Contato contato)
        {
            if (acessoKonviva == null)
            {
                return(null);
            }

            List <DeParaDeUnidadeDoKonviva> listaRegistrosDePara = null;

            if (canal != null)
            {
                listaRegistrosDePara = RepositoryService.DeParaDeUnidadeDoKonviva.ListarPor(CapturarCampos(canal), null);
            }
            else
            {
                listaRegistrosDePara = RepositoryService.DeParaDeUnidadeDoKonviva.ListarPor(CapturarCampos(contato), null);
            }


            AcessoKonviva acessoKonvivaNovo = (AcessoKonviva)acessoKonviva.Clone();

            if (listaRegistrosDePara.Count > 0)
            {
                acessoKonvivaNovo.UnidadeKonviva       = listaRegistrosDePara.First().UnidadeDoKonviva;
                acessoKonvivaNovo.DeParaUnidadeKonviva = new Lookup(listaRegistrosDePara.First().ID.Value, "");
            }
            else if (this.unidadeKonvivaPadrao.HasValue)
            {
                acessoKonvivaNovo.UnidadeKonviva       = new Lookup(this.unidadeKonvivaPadrao.Value, "");
                acessoKonvivaNovo.DeParaUnidadeKonviva = null;
            }
            else
            {
                acessoKonvivaNovo.UnidadeKonviva       = null;
                acessoKonvivaNovo.DeParaUnidadeKonviva = null;
            }

            return(acessoKonvivaNovo);
        }
コード例 #10
0
        public void MudarCanal(Contato contato, Guid?canalId)
        {
            AcessoKonviva acessoKonviva = this.ObterPorContato(contato.ID.Value, Enum.StateCode.Ativo);

            if (acessoKonviva != null)
            {
                acessoKonviva = this.ResetarPerfilKonviva(acessoKonviva);
                acessoKonviva.IntegrarNoPlugin = false;

                if (canalId.HasValue)
                {
                    acessoKonviva.Conta = new SDKore.DomainModel.Lookup(canalId.Value, SDKore.Crm.Util.Utility.GetEntityName <Conta>());
                    acessoKonviva       = new DeParaDeUnidadeDoKonvivaService(RepositoryService).ObterUnidadeKonvivaDeParaCom(acessoKonviva, RepositoryService.Conta.Retrieve(canalId.Value), null);
                }
                else
                {
                    acessoKonviva.AddNullProperty("Conta");
                    acessoKonviva = new DeParaDeUnidadeDoKonvivaService(RepositoryService).ObterUnidadeKonvivaDeParaCom(acessoKonviva, null, contato);
                }

                this.Persistir(acessoKonviva);
            }
        }
コード例 #11
0
ファイル: ManagerPostEvent.cs プロジェクト: ertprs/crm_fonte
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            switch (context.GetMessageName())
            {
            case PluginBase.MessageName.Update:

                if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity &&
                    context.PreEntityImages.Contains("imagem") && context.PreEntityImages["imagem"] is Entity)
                {
                    var ContatoPre = ((Entity)context.PreEntityImages["imagem"]).Parse <Contato>(context.OrganizationName, context.IsExecutingOffline, adminService);
                    var ContatoPos = ((Entity)context.PostEntityImages["imagem"]).Parse <Contato>(context.OrganizationName, context.IsExecutingOffline, adminService);

                    var contatoService = new ContatoService(context.OrganizationName, context.IsExecutingOffline, adminService);
                    var contaService   = new ContaService(context.OrganizationName, context.IsExecutingOffline, adminService);

                    //Atualização de Treinamento
                    new BeneficioDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService).MudarEmpresa(ContatoPos);

                    #region Integração

                    if (context.Depth > 1)
                    {
                        return;
                    }

                    //Valida se contato tem acesso a Extranet e está sem e-mail
                    if (string.IsNullOrEmpty(ContatoPos.Email1))
                    {
                        ValidaEmailAcessoEXtranet(ContatoPos);
                    }

                    if (!ContatoPos.IntegrarNoPlugin && contatoService.ContatoPossuiTodosCamposParaIntegracao(ContatoPos) && (bool)ContatoPos.IntegrarNoBarramento)
                    {
                        Guid idContatoEmail = new RepositoryService().AcessoExtranetContato.VerificarEmail(ContatoPos.Email1);
                        if (idContatoEmail != Guid.Empty && idContatoEmail != ContatoPos.Id)
                        {
                            throw new ArgumentException(string.Format("(CRM) Duplicidade encontrada, existe outro contato com acesso a extranet com o mesmo e-mail: [{0}].", ContatoPos.Email1));
                        }
                        string xmlResposta = contatoService.IntegracaoBarramento(ContatoPos);
                    }

                    //Caso ele mude a associação tem que resetar o perfil do Konviva
                    //E consequentemente mudar a Unidade do Konviva
                    if (ContatoPre.AssociadoA == null && ContatoPos.AssociadoA != null ||
                        (ContatoPre.AssociadoA != null && ContatoPos.AssociadoA != null &&
                         ContatoPre.AssociadoA.Id != ContatoPos.AssociadoA.Id) ||
                        ContatoPre.AssociadoA != null && ContatoPos.AssociadoA == null)
                    {
                        Guid?guidTmp = ContatoPos.AssociadoA == null ? Guid.Empty : ContatoPos.AssociadoA.Id;
                        guidTmp = guidTmp == Guid.Empty ? null : guidTmp;

                        var acessoKonvivaService         = new AcessoKonvivaService(context.OrganizationName, context.IsExecutingOffline, adminService);
                        var acessoExtranetContatoService = new AcessoExtranetContatoService(context.OrganizationName, context.IsExecutingOffline, adminService);

                        acessoKonvivaService.MudarCanal(ContatoPos, guidTmp);
                        acessoExtranetContatoService.MudarCanal(ContatoPos.ID.Value, guidTmp, ContatoPos.IntegrarNoPlugin);
                        if (ContatoPos.AssociadoA == null)
                        {
                            contatoService.AlteraTipoRelacao(ContatoPos);
                        }
                    }


                    if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
                    {
                        var    entidade      = context.GetContextEntity();
                        Object papelCanalTmp = null;
                        if (entidade.Attributes.Contains("itbc_papelnocanal") && entidade.Attributes.TryGetValue("itbc_papelnocanal", out papelCanalTmp) && papelCanalTmp != null)
                        {
                            if (ContatoPos.AssociadoA == null || entidade.GetAttributeValue <OptionSetValue>("itbc_papelnocanal").Value == (int)Intelbras.CRM2013.Domain.Enum.Contato.PapelNoCanal.Representante)
                            {
                                var postImage = (Entity)context.PostEntityImages["imagem"];
                                postImage  = UpdateImage(postImage, entidade);
                                ContatoPos = postImage.Parse <Contato>(context.OrganizationName, context.IsExecutingOffline, adminService);

                                var           aKService     = new AcessoKonvivaService(context.OrganizationName, context.IsExecutingOffline, adminService);
                                AcessoKonviva acessoKonviva = aKService.ObterPorContato(ContatoPos.ID.Value, Domain.Enum.StateCode.Ativo);

                                if (acessoKonviva != null)
                                {
                                    acessoKonviva = new DeParaDeUnidadeDoKonvivaService(context.OrganizationName, context.IsExecutingOffline, adminService).ObterUnidadeKonvivaDeParaCom(acessoKonviva, null, ContatoPos);

                                    aKService.Persistir(acessoKonviva);
                                }
                            }
                        }
                    }

                    if ((ContatoPos.Email1 != ContatoPre.Email1) && ContatoPos.AcessoAoPortal == true && ContatoPos.Login != null)
                    {
                        if (ContatoPre.Email1 == string.Empty)
                        {
                            (new RepositoryService(context.OrganizationName, context.IsExecutingOffline)).Contato.EnviaEmailAcessoPortalCorporativo(ContatoPos);
                        }
                        (new RepositoryService(context.OrganizationName, context.IsExecutingOffline)).Contato.UpdateEmailFBA(ContatoPos);
                    }

                    //new Domain.Services.PortalFidelidade().RemoverUsuarioDoSharepoint(contato);
                    //if (contato.ParticipaFidelidade.HasValue && contato.ParticipaFidelidade.Value)
                    //{
                    //    new Domain.Services.PortalFidelidade().AdicionarAoGrupoSharePoint(contato);
                    //}

                    #endregion
                }

                break;
            }
        }
コード例 #12
0
 public string IntegracaoBarramento(AcessoKonviva objKonviva)
 {
     Domain.Integracao.MSG0105 msgProdEstab = new Domain.Integracao.MSG0105(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline);
     return(msgProdEstab.Enviar(objKonviva));
 }
コード例 #13
0
        public AcessoKonviva DefinirPropriedades(Intelbras.Message.Helper.MSG0105 xml)
        {
            var    crm = new AcessoKonviva(this.Organizacao, this.IsOffline);
            Guid   idClassificacaoKonviva = Guid.Empty;
            Lookup classificacaoKonviva;
            Guid   organizacaoPadrao;

            Guid conta = Guid.Empty;

            #region Propriedades Crm->Xml

            if (!String.IsNullOrEmpty(xml.NomeAcessoKonviva))
            {
                crm.Nome = xml.NomeAcessoKonviva;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "NomeAcessoKonviva não enviado!";
                return(crm);
            }

            xml.Situacao = (crm.Status.HasValue ? crm.Status.Value : 0);
            //if (xml.Situacao == 1 || xml.Situacao == 0)
            //    crm.Status = xml.Situacao;
            //else
            //{
            //    resultadoPersistencia.Sucesso = false;
            //    resultadoPersistencia.Mensagem = "Situação não enviada!";
            //    return crm;
            //}

            if (!String.IsNullOrEmpty(xml.CodigoAcessoKonviva))
            {
                Guid konviva;
                if (Guid.TryParse(xml.CodigoAcessoKonviva, out konviva))
                {
                    crm.ID = konviva;
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Guid AcessoKonviva Formato incorreto";
                    return(crm);
                }
            }
            //Seção comentada enquanto não é decidido a documentação
            //Conta não é obrigatório então caso nao tenha preenchido a classificação assume um default
            //if (String.IsNullOrEmpty(xml.CodigoConta))
            //{
            //    if (false == Guid.TryParse(SDKore.Configuration.ConfigurationManager.GetSettingValue("ClassificacaoPadraoKonviva"), out idClassificacaoKonviva))
            //    {
            //        resultadoPersistencia.Sucesso = false;
            //        resultadoPersistencia.Mensagem = "Guid Classificação Konviva padrão em formato incorreto";
            //        return crm;
            //    }

            //    Classificacao classif = new Intelbras.CRM2013.Domain.Servicos.ClassificacaoService(this.Organizacao,this.IsOffline).BuscaClassificacao(idClassificacaoKonviva);

            //    if(classif == null)
            //    {
            //        resultadoPersistencia.Sucesso = false;
            //        resultadoPersistencia.Mensagem = "Classificação do Canal não encontrada.";
            //        return crm;
            //    }

            //    classificacaoKonviva = new Lookup(classif.ID.Value,classif.Nome,"");
            //}
            //else
            //{
            //    if (false == Guid.TryParse(xml.CodigoConta,out conta))
            //    {
            //        resultadoPersistencia.Sucesso = false;
            //        resultadoPersistencia.Mensagem = "Guid conta em formato incorreto";
            //        return crm;
            //    }

            //    Model.Conta mConta = new Intelbras.CRM2013.Domain.Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(conta);
            //    if (conta == null)
            //    {
            //        resultadoPersistencia.Sucesso = false;
            //        resultadoPersistencia.Mensagem = "Conta não encontrada.";
            //        return crm;
            //    }

            //    if (mConta.Classificacao == null)
            //    {
            //        resultadoPersistencia.Sucesso = false;
            //        resultadoPersistencia.Mensagem = "Classificação da conta obrigatório.";
            //        return crm;
            //    }
            //    classificacaoKonviva = mConta.Classificacao;
            //}


            if (!Guid.TryParse(SDKore.Configuration.ConfigurationManager.GetSettingValue("organizacaoPadraoKonviva"), out organizacaoPadrao))
            {
                throw new Exception("Variável organizacaoPadraoKonviva do SDKore.config não foi configurada corretamente.");
            }

            UnidadeKonviva unKonviva = new Intelbras.CRM2013.Domain.Servicos.UnidadeKonvivaService(this.Organizacao, this.IsOffline).ObterPor(organizacaoPadrao);

            if (unKonviva == null)
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Unidade Konviva não encontrada.";
                return(crm);
            }
            crm.UnidadeKonviva = new Lookup(unKonviva.ID.Value, "");

            if (unKonviva.IdInterno.HasValue)
            {
                crm.IdUnidadeAcessoKonviva = unKonviva.IdInterno;
            }

            //if (xml.IdentificadorUnidadeKonviva.HasValue)
            //{
            //    UnidadeKonviva unidadeKonviva = new Servicos.UnidadeKonvivaService(this.Organizacao, this.IsOffline).ObterPor(xml.IdentificadorUnidadeKonviva.Value);

            //    if (unidadeKonviva != null)
            //    {
            //        crm.UnidadeKonviva = new Lookup(unidadeKonviva.ID.Value, "");
            //        crm.IdUnidadeAcessoKonviva = xml.IdentificadorUnidadeKonviva;
            //    }
            //    else
            //    {
            //        resultadoPersistencia.Sucesso = false;
            //        resultadoPersistencia.Mensagem = "UnidadeKonviva não cadastrado no Crm!";
            //        return crm;
            //    }
            //}
            //else
            //{
            //    resultadoPersistencia.Sucesso = false;
            //    resultadoPersistencia.Mensagem = "IdentificadorUnidadeKonviva não enviado!";
            //    return crm;
            //}

            if (!String.IsNullOrEmpty(xml.CodigoConta))
            {
                crm.Conta = new Lookup(new Guid(xml.CodigoConta), "");
            }

            if (!String.IsNullOrEmpty(xml.CodigoContato) && xml.CodigoContato.Length == 36)
            {
                crm.Contato = new Lookup(new Guid(xml.CodigoContato), "");
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "CodigoContato inválido ou não enviado!";
                return(crm);
            }

            if (xml.PerfilAluno.HasValue)
            {
                crm.PerfilAluno = xml.PerfilAluno;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "PerfilAluno não enviado!";
                return(crm);
            }
            if (xml.PerfilGestor.HasValue)
            {
                crm.PerfilGestor = xml.PerfilGestor;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "PerfilGestor não enviado!";
                return(crm);
            }

            if (xml.PerfilAutor.HasValue)
            {
                crm.PerfilAutor = xml.PerfilAutor;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "PerfilAutor não enviado!";
                return(crm);
            }

            if (xml.PerfilAdministrador.HasValue)
            {
                crm.PerfilAdministrador = xml.PerfilAdministrador;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "PerfilAdministrador não enviado!";
                return(crm);
            }

            if (xml.PerfilMonitor.HasValue)
            {
                crm.PerfilMonitor = xml.PerfilMonitor;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "PerfilMonitor não enviado!";
                return(crm);
            }

            if (xml.PerfilModerador.HasValue)
            {
                crm.PerfilModerador = xml.PerfilModerador;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "PerfilModerador não enviado!";
                return(crm);
            }

            if (xml.PerfilInstrutor.HasValue)
            {
                crm.PerfilInstrutor = xml.PerfilInstrutor;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "PerfilInstrutor não enviado!";
                return(crm);
            }

            if (xml.PerfilAnalista.HasValue)
            {
                crm.PerfilAnalista = xml.PerfilAnalista;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "PerfilAnalista não enviado!";
                return(crm);
            }

            if (xml.PerfilTutor.HasValue)
            {
                crm.PerfilTutor = xml.PerfilTutor;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "PerfilTutor não enviado!";
                return(crm);
            }

            crm.IntegrarNoPlugin = true;

            #endregion

            return(crm);
        }
コード例 #14
0
        public Pollux.MSG0105 DefinirPropriedades(AcessoKonviva objModel)
        {
            #region Propriedades Crm->Xml

            if (String.IsNullOrEmpty(objModel.Nome))
            {
                objModel.Nome = (string)this.PreencherAtributoVazio("string");
            }

            Pollux.MSG0105 msg0105 = new Pollux.MSG0105(itb.RetornaSistema(itb.Sistema.CRM), Intelbras.CRM2013.Domain.Servicos.Helper.Truncate(objModel.Nome, 40));

            if (objModel.Conta != null)
            {
                msg0105.CodigoConta = objModel.Conta.Id.ToString();
            }

            if (objModel.Contato != null)
            {
                msg0105.CodigoContato = objModel.Contato.Id.ToString();
            }

            msg0105.CodigoAcessoKonviva = objModel.ID.Value.ToString();

            if (objModel.UnidadeKonviva != null)
            {
                Model.UnidadeKonviva uniAcessoKonviva = new Intelbras.CRM2013.Domain.Servicos.UnidadeKonvivaService(this.Organizacao, this.IsOffline).ObterPor(objModel.UnidadeKonviva.Id);

                if (uniAcessoKonviva != null && uniAcessoKonviva.IdInterno.HasValue)
                {
                    msg0105.IdentificadorUnidadeKonviva = uniAcessoKonviva.IdInterno.Value;
                }
            }

            if (!string.IsNullOrEmpty(objModel.Nome))
            {
                msg0105.NomeAcessoKonviva = objModel.Nome;
            }
            else
            {
                msg0105.NomeAcessoKonviva = (string)this.PreencherAtributoVazio("string");
            }

            if (objModel.PerfilAdministrador.HasValue)
            {
                msg0105.PerfilAdministrador = objModel.PerfilAdministrador;
            }

            if (objModel.PerfilAluno.HasValue)
            {
                msg0105.PerfilAluno = objModel.PerfilAluno;
            }

            if (objModel.PerfilAnalista.HasValue)
            {
                msg0105.PerfilAnalista = objModel.PerfilAnalista;
            }

            if (objModel.PerfilAutor.HasValue)
            {
                msg0105.PerfilAutor = objModel.PerfilAutor;
            }

            if (objModel.PerfilGestor.HasValue)
            {
                msg0105.PerfilGestor = objModel.PerfilGestor;
            }

            if (objModel.PerfilInstrutor.HasValue)
            {
                msg0105.PerfilInstrutor = objModel.PerfilInstrutor;
            }

            if (objModel.PerfilModerador.HasValue)
            {
                msg0105.PerfilModerador = objModel.PerfilModerador;
            }

            if (objModel.PerfilMonitor.HasValue)
            {
                msg0105.PerfilMonitor = objModel.PerfilMonitor;
            }

            if (objModel.PerfilTutor.HasValue)
            {
                msg0105.PerfilTutor = objModel.PerfilTutor;
            }

            if (usuarioIntegracao != null)
            {
                msg0105.Proprietario     = usuarioIntegracao.ID.Value.ToString();
                msg0105.TipoProprietario = "systemuser";
            }
            else
            {
                msg0105.Proprietario     = "259A8E4F-15E9-E311-9420-00155D013D39";
                msg0105.TipoProprietario = "systemuser";
            }

            msg0105.Situacao = (objModel.Status.HasValue ? objModel.Status.Value : (int)Enum.StateCode.Ativo);

            #endregion

            return(msg0105);
        }
コード例 #15
0
        public List <KeyValuePair <ExecuteMultipleResponse, ExecuteMultipleRequest> > AtualizarAcessosKonvivaInconsistentes(DateTime dataInicial)
        {
            var           listaDePara               = RepositoryService.DeParaDeUnidadeDoKonviva.ListarPor(new Dictionary <string, object>(), dataInicial, false);
            var           listaAcessosKonviva       = new List <AcessoKonviva>();
            var           listaAcessosKonvivaPadrao = new List <AcessoKonviva>();
            var           novaListaKonvivaUpdate    = new List <AcessoKonviva>();
            var           novaListaKonvivaAdd       = new List <AcessoKonviva>();
            var           retornosPaginacao         = new List <KeyValuePair <ExecuteMultipleResponse, ExecuteMultipleRequest> >();
            List <object> deParaUnidadesKonviva     = new List <object>();

            if (listaDePara.Count > 0)
            {
                foreach (var item in listaDePara)
                {
                    deParaUnidadesKonviva.Add(item.ID.Value);
                }
                listaAcessosKonviva = RepositoryService.AcessoKonviva.ListarPor(deParaUnidadesKonviva.ToArray());

                var aKService = new AcessoKonvivaService(RepositoryService);
                #region Correção de entradas de Acesso do Konviva que tiveram critérios alterados

                foreach (var item in listaAcessosKonviva)
                {
                    if (item.Contato != null)
                    {
                        var           contato = new ContatoService(RepositoryService).BuscaContato(item.Contato.Id);
                        AcessoKonviva akTmp   = this.ProcessaAcessoKonviva(contato, item);
                        if (akTmp != null)
                        {
                            novaListaKonvivaUpdate.Add(akTmp);
                        }
                    }
                }
                #endregion

                #region Correção de entradas de acesso padrão do Konviva, avaliando se algum dos novos critérios se enquadram

                listaDePara = RepositoryService.DeParaDeUnidadeDoKonviva.ListarPor(new Dictionary <string, object>(), dataInicial, true);
                foreach (var item in listaDePara)
                {
                    var listaMudar = new List <AcessoKonviva>();
                    if (item.Categoria != null || item.TipoDeRelacao == null)
                    {
                        listaMudar = RepositoryService.AcessoKonviva.ListarPorCriterioDeParaContas(item, this.unidadeKonvivaPadrao.Value);
                    }
                    else
                    {
                        if (item.PapelNoCanalIntelbras.HasValue)
                        {
                            listaMudar = RepositoryService.AcessoKonviva.ListarPorCriterioDeParaContatos(item, this.unidadeKonvivaPadrao.Value);
                        }
                    }

                    foreach (var itemMudar in listaMudar)
                    {
                        itemMudar.UnidadeKonviva       = item.UnidadeDoKonviva;
                        itemMudar.DeParaUnidadeKonviva = new Lookup(item.ID.Value, "");
                        novaListaKonvivaUpdate.Add(itemMudar);
                    }
                }
                #endregion

                List <AcessoKonviva> acessosTimeout = new List <AcessoKonviva>();
                for (int i = 0; i < novaListaKonvivaUpdate.Count; i += 10)
                {
                    try
                    {
                        retornosPaginacao.Add(RepositoryService.AcessoKonviva.ExecuteMultiple(novaListaKonvivaUpdate.Skip(i).Take(10).ToList(), new UpdateRequest()));
                    }
                    catch (TimeoutException e)
                    {
                        Console.WriteLine("Erro de Timeout nos seguintes GUIDs:");
                        foreach (var itemTimeout in novaListaKonvivaUpdate.Skip(i).Take(10).ToList())
                        {
                            Console.WriteLine(itemTimeout.ID.ToString());
                        }
                        Console.WriteLine("------------------------------------");
                        acessosTimeout.AddRange(novaListaKonvivaUpdate.Skip(i).Take(10).ToList());
                    }
                }
                for (int i = 0; i < acessosTimeout.Count; i += 10)
                {
                    try
                    {
                        retornosPaginacao.Add(RepositoryService.AcessoKonviva.ExecuteMultiple(acessosTimeout.Skip(i).Take(10).ToList(), new UpdateRequest()));
                    }
                    catch (TimeoutException e)
                    {
                        Console.WriteLine("Erro de Timeout nos seguintes GUIDs (2a):");
                        foreach (var itemTimeout in novaListaKonvivaUpdate.Skip(i).Take(10).ToList())
                        {
                            Console.WriteLine(itemTimeout.ID.ToString());
                        }
                        Console.WriteLine("------------------------------------");
                    }
                }
            }

            return(retornosPaginacao);
        }