public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { usuarioIntegracao = usuario; //resultadoPersistencia.Sucesso = true; //resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso!"; var objeto = this.DefinirPropriedades(this.CarregarMensagem <Pollux.MSG0137>(mensagem)); if (!resultadoPersistencia.Sucesso) { retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0137R1>(numeroMensagem, retorno)); } objeto = new Servicos.RelacionamentoCanalService(this.Organizacao, this.IsOffline).Persistir(objeto); if (objeto != null) { retorno.Add("CodigoRelacionamentoCanal", objeto.ID.Value.ToString()); retorno.Add("Proprietario", usuarioIntegracao.ID.Value.ToString()); retorno.Add("TipoProprietario", "systemuser"); retorno.Add("Resultado", resultadoPersistencia); } return(CriarMensagemRetorno <Pollux.MSG0137R1>(numeroMensagem, retorno)); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { usuarioIntegracao = usuario; var objeto = this.DefinirPropriedades(this.CarregarMensagem <Pollux.MSG0124>(mensagem)); List <Pollux.Entities.RelacionamentoCanal> lstPolluxRelCanal = new List <Pollux.Entities.RelacionamentoCanal>(); if (!resultadoPersistencia.Sucesso) { retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno)); } List <RelacionamentoCanal> lstRelacionamentoCanal = new Servicos.RelacionamentoCanalService(this.Organizacao, this.IsOffline).ListarAtivosPorCanal(objeto.Canal.Id); if (lstRelacionamentoCanal != null && lstRelacionamentoCanal.Count > 0) { foreach (RelacionamentoCanal item in lstRelacionamentoCanal) { Pollux.Entities.RelacionamentoCanal relCanal = new Pollux.Entities.RelacionamentoCanal(); if (item.Assistente != null) { Usuario objUsuario = new Intelbras.CRM2013.Domain.Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(item.Assistente.Id); if (objUsuario != null) { relCanal.CodigoAssistente = (int)objUsuario.CodigoAssistenteComercial; relCanal.NomeAssistente = item.Assistente.Name; relCanal.CodigoAssistenteCRM = objUsuario.ID.Value.ToString(); } if (item.KeyAccount != null) { Contato contato = new Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(item.KeyAccount.Id); if (contato != null && contato.CodigoRepresentante != null && (!String.IsNullOrEmpty(contato.CodigoRepresentante) && (!contato.CodigoRepresentante.Equals("0")) && contato.PrimeiroNome != null && (!String.IsNullOrEmpty(contato.PrimeiroNome)))) { relCanal.CodigoRepresentante = Convert.ToInt32(contato.CodigoRepresentante); relCanal.NomeRepresentante = contato.PrimeiroNome; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Erro de inconsistência de dados no Crm. Elemento 'NomeRepresentante / CodigoRepresentante' não preenchido na base Crm para o RelacionamentoCanal - " + item.ID.Value.ToString(); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno)); } } if (item.Supervisor != null) { Usuario usuarioSuper = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(item.Supervisor.Id); if (usuarioSuper != null) { relCanal.CodigoSupervisor = item.Supervisor.Id.ToString(); relCanal.NomeSupervisor = usuarioSuper.Nome; if (!String.IsNullOrEmpty(usuarioSuper.CodigoSupervisorEMS)) { relCanal.CodigoSupervisorEMS = usuarioSuper.CodigoSupervisorEMS; } else { throw new Exception("Codigo Supervisor EMS não preenchido."); } } } if (item.DataInicial.HasValue) { relCanal.DataInicial = item.DataInicial.Value; } if (item.DataFinal.HasValue) { relCanal.DataFinal = item.DataFinal.Value; } //Nome Obrigatorio if (!String.IsNullOrEmpty(item.Nome)) { relCanal.Nome = item.Nome; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Erro de inconsistência de dados no Crm. Elemento 'Nome' não preenchido na base Crm para o RelacionamentoCanal - " + item.ID.Value.ToString(); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno)); } } relCanal.CodigoRelacionamentoCanal = item.ID.ToString(); lstPolluxRelCanal.Add(relCanal); } } else { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Não encontrado RelacionamentoCanal para este Canal no CRM."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno)); } resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso."; retorno.Add("RelacionamentosCanalItens", lstPolluxRelCanal); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno)); }