Exemplo n.º 1
0
        public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario)
        {
            usuarioIntegracao = usuario;
            var xml = this.CarregarMensagem <Pollux.MSG0110>(mensagem);

            List <TipoDeDenuncia> lstTipoDenuncia = new Servicos.DenunciaService(this.Organizacao, this.IsOffline).ListarTipoDenuncia();


            if (lstTipoDenuncia != null && lstTipoDenuncia.Count > 0)
            {
                var objeto = this.DefinirRetorno(lstTipoDenuncia);
                if (objeto != null)
                {
                    resultadoPersistencia.Sucesso  = true;
                    resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso!";
                    retorno.Add("TiposDenunciaItens", objeto);
                    retorno.Add("Resultado", resultadoPersistencia);
                    return(CriarMensagemRetorno <Pollux.MSG0110R1>(numeroMensagem, retorno));
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Erro de consulta no Crm.";
                    retorno.Add("Resultado", resultadoPersistencia);
                    return(CriarMensagemRetorno <Pollux.MSG0110R1>(numeroMensagem, retorno));
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = true;
                resultadoPersistencia.Mensagem = "Não foram encontrados registros que satisfaçam os critérios de pesquisa.";
                retorno.Add("Resultado", resultadoPersistencia);
                return(CriarMensagemRetorno <Pollux.MSG0110R1>(numeroMensagem, retorno));
            }
        }
Exemplo n.º 2
0
        public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario)
        {

            usuarioIntegracao = usuario;
            var objeto = this.DefinirPropriedades(this.CarregarMensagem<Pollux.MSG0107>(mensagem));
            if (!resultadoPersistencia.Sucesso)
            {
                retorno.Add("Resultado", resultadoPersistencia);
                return CriarMensagemRetorno<Pollux.MSG0107R1>(numeroMensagem, retorno);
            }

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

            if (objeto != null)
            {
                retorno.Add("CodigoDenuncia", objeto.ID.Value.ToString());
                if (usuarioIntegracao != null)
                {
                    retorno.Add("Proprietario", usuarioIntegracao.ID.Value.ToString());
                    retorno.Add("TipoProprietario", "systemuser");
                }
                resultadoPersistencia.Sucesso = true;
                resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso!";
                retorno.Add("Resultado", resultadoPersistencia);
            }
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Erro de Persistência!";
                retorno.Add("Resultado", resultadoPersistencia);
            }
            return CriarMensagemRetorno<Pollux.MSG0107R1>(numeroMensagem, retorno);
        }
Exemplo n.º 3
0
        public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario)
        {
            usuarioIntegracao = usuario;
            var xml = this.CarregarMensagem <Pollux.MSG0109>(mensagem);

            if (!String.IsNullOrEmpty(xml.CodigoDenuncia) && xml.CodigoDenuncia.Length == 36)
            {
                Denuncia denuncia = new Servicos.DenunciaService(this.Organizacao, this.IsOffline).ObterDenuncia(new Guid(xml.CodigoDenuncia));
                if (denuncia != null)
                {
                    var objeto = this.DefinirRetorno(denuncia);
                    if (objeto == null)
                    {
                        resultadoPersistencia.Sucesso  = false;
                        resultadoPersistencia.Mensagem = "Erro de consulta no Crm.";
                        retorno.Add("Resultado", resultadoPersistencia);
                        return(CriarMensagemRetorno <Pollux.MSG0109R1>(numeroMensagem, retorno));
                    }
                    else
                    {
                        resultadoPersistencia.Sucesso  = true;
                        resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso!";
                        retorno.Add("Denuncia", objeto);
                        retorno.Add("Resultado", resultadoPersistencia);
                        return(CriarMensagemRetorno <Pollux.MSG0109R1>(numeroMensagem, retorno));
                    }
                }
                else
                {
                    resultadoPersistencia.Sucesso  = true;
                    resultadoPersistencia.Mensagem = "Não foram encontrados registros que satisfaçam os critérios de pesquisa.";
                    retorno.Add("Resultado", resultadoPersistencia);
                    return(CriarMensagemRetorno <Pollux.MSG0109R1>(numeroMensagem, retorno));
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Código Denúncia não enviado ou fora do padrão(Guid).";
                retorno.Add("Resultado", resultadoPersistencia);
                return(CriarMensagemRetorno <Pollux.MSG0109R1>(numeroMensagem, retorno));
            }
        }
Exemplo n.º 4
0
        public Denuncia DefinirPropriedades(Intelbras.Message.Helper.MSG0107 xml)
        {
            var crm = new Denuncia(this.Organizacao, this.IsOffline);

            #region Propriedades Crm->Xml


            if (!String.IsNullOrEmpty(xml.CodigoDenuncia))
            {
                if (xml.CodigoDenuncia.Length == 36)
                    crm.ID = new Guid(xml.CodigoDenuncia);
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "CodigoDenuncia enviado está fora do padrão(Guid).";
                    return crm;
                }
            }
            if (!String.IsNullOrEmpty(xml.Descricao))
                crm.Descricao = xml.Descricao;
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Descrição não enviada.";
                return crm;
            }

            if (!String.IsNullOrEmpty(xml.CodigoTipoDenuncia) && xml.CodigoTipoDenuncia.Length == 36)
            {
                TipoDeDenuncia tipoDenuncia = new Servicos.DenunciaService(this.Organizacao, this.IsOffline).ObterTipoDenuncia(new Guid(xml.CodigoTipoDenuncia));
                if (tipoDenuncia != null)
                {
                    crm.Nome = "Denúncia de : " + tipoDenuncia.Nome;
                    crm.TipoDenuncia = new Lookup(tipoDenuncia.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "Tipo de Denuncia não cadastrado no Crm.";
                    return crm;
                }

            }
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "CodigoTipoDenuncia fora do padrão(Guid) ou não enviado.";
                return crm;
            }
            if (!String.IsNullOrEmpty(xml.Justificativa))
            {
                crm.Justificativa = xml.Justificativa;
            }
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Justificativa não enviada.";
                return crm;
            }

            if (!String.IsNullOrEmpty(xml.CodigoCanalDenunciado) && xml.CodigoCanalDenunciado.Length == 36)
            {
                crm.Denunciado = new Lookup(new Guid(xml.CodigoCanalDenunciado), "");
            }
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Codigo Canal Denunciado não enviado ou fora do padrão(Guid).";
                return crm;
            }
            //Status 
            if (xml.Situacao == 1 || xml.Situacao == 0)
                crm.Status = xml.Situacao;
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Status não encontrado!";
                return crm;
            }

            if (System.Enum.IsDefined(typeof(Intelbras.CRM2013.Domain.Enum.Denuncia.StatusDenuncia), xml.SituacaoDenuncia))
                crm.RazaoStatus = xml.SituacaoDenuncia;
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "SituacaoDenuncia não encontrada!";
                return crm;
            }
            if (System.Enum.IsDefined(typeof(Intelbras.CRM2013.Domain.Enum.Denuncia.TipoDenunciante), xml.TipoDenunciante))
                crm.TipoDenunciante = xml.TipoDenunciante;
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "SituacaoDenuncia não encontrada!";
                return crm;
            }

            if (xml.CodigoRepresentante.HasValue)
            {

                Contato contato = new Contato(this.Organizacao, this.IsOffline);
                contato = new Intelbras.CRM2013.Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContatoPorCodigoRepresentante(xml.CodigoRepresentante.Value.ToString());

                if (contato != null)
                    crm.Representante = new Lookup(contato.ID.Value, "");
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "Representante não encontrado.";
                    return crm;
                }
            }
            else
            {
                crm.AddNullProperty("Representante");
            }

            if (!String.IsNullOrEmpty(xml.CodigoColaboradorIntelbras))
            {
                if (xml.CodigoColaboradorIntelbras.Length == 36)
                    crm.ColaboradorIntebras = new Lookup(new Guid(xml.CodigoColaboradorIntelbras), "");
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "CodigoColaboradorIntelbras fora do padrão(Guid).";
                    return crm;
                }
            }
            else
            {
                crm.AddNullProperty("ColaboradorIntebras");
            }

            if (!String.IsNullOrEmpty(xml.CodigoCanalDenunciante))
            {
                if (xml.CodigoCanalDenunciante.Length == 36)
                    crm.CanalDenunciante = new Lookup(new Guid(xml.CodigoCanalDenunciante), "");
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "CodigoCanalDenunciante fora do padrão(Guid).";
                    return crm;
                }
            }
            else
            {
                crm.AddNullProperty("CanalDenunciante");
            }

            if (!String.IsNullOrEmpty(xml.CodigoColaboradorCanal))
            {
                if (xml.CodigoColaboradorCanal.Length == 36)
                    crm.ColaboradorCanal = new Lookup(new Guid(xml.CodigoColaboradorCanal), "");
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "CodigoColaboradorCanal fora do padrão(Guid).";
                    return crm;
                }
            }
            else
            {
                crm.AddNullProperty("ColaboradorCanal");
            }

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




            string tipoProprietario;

            if (xml.TipoProprietario == "team" || xml.TipoProprietario == "systemuser")
                tipoProprietario = xml.TipoProprietario;
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Tipo Proprietário não Enviado.";
                return crm;
            }

            #endregion

            return crm;
        }
Exemplo n.º 5
0
        public List <Pollux.Entities.DenunciaItem> DefinirRetorno(Intelbras.Message.Helper.MSG0108 xml)
        {
            #region Propriedades Crm->Xml
            List <Denuncia> lstDenunciaCrm = new List <Denuncia>();
            List <Pollux.Entities.DenunciaItem> lstRetorno = new List <Pollux.Entities.DenunciaItem>();

            if (xml.SituacaoDenuncia != null)
            {
                if (!System.Enum.IsDefined(typeof(Intelbras.CRM2013.Domain.Enum.Denuncia.StatusDenuncia), xml.SituacaoDenuncia))
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "SituaçãoDenuncia não cadastrada no Crm.";
                    return(null);
                }
            }
            List <Guid> lstCanalDenunciantes = new List <Guid>();
            if (xml.CanaisDenunciantes != null && xml.CanaisDenunciantes.Count > 0)
            {
                foreach (var itemDenunciante in xml.CanaisDenunciantes)
                {
                    if (itemDenunciante.Length == 36)
                    {
                        var canalItemDenunciante = new Guid(itemDenunciante);
                        lstCanalDenunciantes.Add(canalItemDenunciante);
                    }
                    else
                    {
                        resultadoPersistencia.Sucesso  = false;
                        resultadoPersistencia.Mensagem = "Canal Denunciante fora do padrão(Guid)";
                        return(null);
                    }
                }
            }

            List <Guid> lstCanalDenunciado = new List <Guid>();
            if (xml.CanaisDenunciados != null && xml.CanaisDenunciados.Count > 0)
            {
                foreach (var itemDenunciado in xml.CanaisDenunciados)
                {
                    if (itemDenunciado.Length == 36)
                    {
                        var canalItem = new Guid(itemDenunciado);
                        lstCanalDenunciado.Add(canalItem);
                    }
                    else
                    {
                        resultadoPersistencia.Sucesso  = false;
                        resultadoPersistencia.Mensagem = "Canal Denunciado fora do padrão(Guid)";
                        return(null);
                    }
                }
            }
            Guid?representanteKeyAccountId = null;

            if (xml.CodigoRepresentante.HasValue)
            {
                Contato contato = new Contato(this.Organizacao, this.IsOffline);
                contato = new Intelbras.CRM2013.Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContatoPorCodigoRepresentante(xml.CodigoRepresentante.Value.ToString());

                if (contato != null)
                {
                    representanteKeyAccountId = contato.ID.Value;
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Representante não encontrado.";
                    return(null);
                }
            }


            lstDenunciaCrm = new Servicos.DenunciaService(this.Organizacao, this.IsOffline).ListarDenuncias(xml.DataInicio, xml.DataFinal, lstCanalDenunciantes, lstCanalDenunciado, representanteKeyAccountId, xml.SituacaoDenuncia);
            //De -Para - Crm - pollux
            if (lstDenunciaCrm != null && lstDenunciaCrm.Count > 0)
            {
                foreach (var itemCrm in lstDenunciaCrm)
                {
                    Pollux.Entities.DenunciaItem denunciaItem = new Pollux.Entities.DenunciaItem();
                    if (itemCrm.Descricao != null && !String.IsNullOrEmpty(itemCrm.Descricao))
                    {
                        denunciaItem.Descricao = itemCrm.Descricao;
                    }
                    else
                    {
                        denunciaItem.Descricao = "N/A";
                    }
                    if (itemCrm.Nome != null && !String.IsNullOrEmpty(itemCrm.Nome))
                    {
                        denunciaItem.NomeDenuncia = itemCrm.Nome;
                    }
                    else
                    {
                        denunciaItem.NomeDenuncia = "N/A";
                    }

                    if (itemCrm.RazaoStatus.HasValue)
                    {
                        denunciaItem.SituacaoDenuncia = itemCrm.RazaoStatus.Value;
                    }
                    else
                    {
                        denunciaItem.SituacaoDenuncia = 0;
                    }

                    switch (itemCrm.RazaoStatus.Value)
                    {
                    case (int)Enum.Denuncia.StatusDenuncia.EmAnalise:
                        denunciaItem.NomeSituacaoDenuncia = "Em Análise";
                        break;

                    case (int)Enum.Denuncia.StatusDenuncia.AguardandoJustificativa:
                        denunciaItem.NomeSituacaoDenuncia = "Aguardando Justificativa";
                        break;

                    case (int)Enum.Denuncia.StatusDenuncia.JustificativaProvida:
                        denunciaItem.NomeSituacaoDenuncia = "Justificativa Provida";
                        break;

                    case (int)Enum.Denuncia.StatusDenuncia.AnaliseJustificativa:
                        denunciaItem.NomeSituacaoDenuncia = "Análise de Justificativa";
                        break;

                    case (int)Enum.Denuncia.StatusDenuncia.DenunciaProcedente:
                        denunciaItem.NomeSituacaoDenuncia = "Denúncia Procedente";
                        break;

                    case (int)Enum.Denuncia.StatusDenuncia.DenunciaImprocedente:
                        denunciaItem.NomeSituacaoDenuncia = "Denúncia Improcedente";
                        break;

                    default:
                        denunciaItem.NomeSituacaoDenuncia = "N/A";
                        break;
                    }

                    if (itemCrm.TipoDenuncia != null)
                    {
                        denunciaItem.NomeTipoDenuncia   = itemCrm.TipoDenuncia.Name;
                        denunciaItem.CodigoTipoDenuncia = itemCrm.TipoDenuncia.Id.ToString();
                    }
                    else
                    {
                        denunciaItem.NomeTipoDenuncia   = "N/A";
                        denunciaItem.CodigoTipoDenuncia = Guid.Empty.ToString();
                    }
                    if (!String.IsNullOrEmpty(itemCrm.Justificativa))
                    {
                        denunciaItem.Justificativa = itemCrm.Justificativa;
                    }

                    if (itemCrm.DataCriacao.HasValue)
                    {
                        denunciaItem.DataCriacao = itemCrm.DataCriacao.Value;
                    }
                    else
                    {
                        denunciaItem.DataCriacao = DateTime.MinValue;
                    }
                    denunciaItem.CodigoDenuncia = itemCrm.ID.Value.ToString();

                    lstRetorno.Add(denunciaItem);
                }
            }

            return(lstRetorno);

            #endregion
        }