public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { //Trace.Add("Mensagem " + numeroMensagem + " XML: {0}", mensagem); var xml = this.CarregarMensagem <Pollux.MSG0078>(mensagem); Conta objetoConta = null; UnidadeNegocio objetoUnidade = null; Classificacao objetoclassificacao = null; Categoria objetocategoria = null; Estado objetoEstado = null; if (string.IsNullOrEmpty(xml.CodigoConta) && string.IsNullOrEmpty(xml.CodigoUnidadeNegocio) && string.IsNullOrEmpty(xml.ChaveIntegracaoEstado)) { resultadoConsulta.Sucesso = false; resultadoConsulta.Mensagem = "Paramêtros não enviados."; retorno.Add("Resultado", resultadoConsulta); return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno)); } if (!String.IsNullOrEmpty(xml.CodigoConta)) { objetoConta = new Intelbras.CRM2013.Domain.Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(new Guid(xml.CodigoConta)); if (objetoConta == null) { resultadoConsulta.Sucesso = false; resultadoConsulta.Mensagem = "[Conta] não encontrada."; retorno.Add("Resultado", resultadoConsulta); return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno)); } } if (!String.IsNullOrEmpty(xml.CodigoUnidadeNegocio)) { objetoUnidade = new Intelbras.CRM2013.Domain.Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.CodigoUnidadeNegocio); if (objetoUnidade == null) { resultadoConsulta.Sucesso = false; resultadoConsulta.Mensagem = "[Unidade Negócio] não encontrada."; retorno.Add("Resultado", resultadoConsulta); return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno)); } } //new if (!String.IsNullOrEmpty(xml.Classificacao)) { objetoclassificacao = new Intelbras.CRM2013.Domain.Servicos.ClassificacaoService(this.Organizacao, this.IsOffline).BuscaClassificacao(new Guid(xml.Classificacao)); if (objetoclassificacao == null) { resultadoConsulta.Sucesso = false; resultadoConsulta.Mensagem = "[Classificao] não encontrada."; retorno.Add("Resultado", resultadoConsulta); return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno)); } } if (!String.IsNullOrEmpty(xml.Categoria)) { objetocategoria = new Intelbras.CRM2013.Domain.Servicos.CategoriaService(this.Organizacao, this.IsOffline).BuscaCategoria(new Guid(xml. Categoria)); if (objetocategoria == null) { resultadoConsulta.Sucesso = false; resultadoConsulta.Mensagem = "[Categoria] não encontrada."; retorno.Add("Resultado", resultadoConsulta); return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno)); } } // if (!String.IsNullOrEmpty(xml.ChaveIntegracaoEstado)) { objetoEstado = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaEstado(xml.ChaveIntegracaoEstado); if (objetoEstado == null) { resultadoConsulta.Sucesso = false; resultadoConsulta.Mensagem = "[Estado] não encontrado."; retorno.Add("Resultado", resultadoConsulta); return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno)); } } List <CategoriasCanal> lstObjetoCategoria = new List <CategoriasCanal>(); List <Guid> lstUnd = new List <Guid>(); if (objetoConta != null) { if (objetoUnidade != null) { lstObjetoCategoria = new Intelbras.CRM2013.Domain.Servicos.CategoriaCanalService(this.Organizacao, this.IsOffline).ListarPor((Guid)objetoConta.ID, (Guid)objetoUnidade.ID); } else { lstObjetoCategoria = new Intelbras.CRM2013.Domain.Servicos.CategoriaCanalService(this.Organizacao, this.IsOffline).ListarPor((Guid)objetoConta.ID, null); } foreach (CategoriasCanal item in lstObjetoCategoria ?? Enumerable.Empty <CategoriasCanal>()) { if (!lstUnd.Contains(item.UnidadeNegocios.Id)) { lstUnd.Add(item.UnidadeNegocios.Id); } } if (lstUnd != null && lstUnd.Count == 0) { resultadoConsulta.Sucesso = true; retorno.Add("Resultado", resultadoConsulta); return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno)); } } else if (objetoUnidade != null) { lstUnd.Add(objetoUnidade.ID.Value); } var objetoMunicipio = new Intelbras.CRM2013.Domain.Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(objetoConta.Endereco1Municipioid.Id); List <LinhaCorteDistribuidor> objLinhaCorteItem = new Intelbras.CRM2013.Domain.Servicos.LinhaCorteService(this.Organizacao, this.IsOffline).ListarLinhadeCorteDistribuidor(lstUnd, objetoEstado, objetoMunicipio.CapitalOuInterior); foreach (var item in objLinhaCorteItem) { // service que pega o objLinhaCorte com base na unidade de negócio e o estadoId da conta List <LinhaCorteEstado> LinhaCorteEstado = new Intelbras.CRM2013.Domain.Servicos.LinhaCorteService(this.Organizacao, this.IsOffline).ObterLinhaDeCorteDistribuidorEstadoPorIdDistribuidor(item.ID.Value); retornoLinhaCorteItem.CodigoLinhaCorte = item.ID.ToString(); if (!String.IsNullOrEmpty(item.Nome)) { retornoLinhaCorteItem.Nome = item.Nome; } if (item.UnidadeNegocios != null) { retornoLinhaCorteItem.CodigoUnidadeNegocio = new Intelbras.CRM2013.Domain.Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(item.UnidadeNegocios.Id).ChaveIntegracao; retornoLinhaCorteItem.NomeUnidadeNegocio = item.UnidadeNegocios.Name; } retornoLinhaCorteItem.LinhaCorteSemestral = (decimal)item.LinhaCorteSemestral; retornoLinhaCorteItem.LinhaCorteTrimestral = (decimal)item.LinhaCorteTrimestral; if (item.Moeda != null) { retornoLinhaCorteItem.Moeda = item.Moeda.Name; } if (usuario != null) { retornoLinhaCorteItem.CodigoProprietario = usuario.ID.Value.ToString(); retornoLinhaCorteItem.NomeProprietario = usuario.Nome; } //if (LinhaCorteEstado.Count <= 0) //{ // retornoLinhaCorteItem.EstadosItens.Add(new Pollux.Entities.EstadoItem(){}); //} foreach (var estado in LinhaCorteEstado) { Estado objEstado = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorGuid(estado.Estado.Value); if (objEstado != null && item.ID == estado.LinhaCorteDistribuidor.Value) { if (!String.IsNullOrEmpty(objEstado.Nome)) { listaEstados.NomeEstado = objEstado.Nome; } if (!String.IsNullOrEmpty(objEstado.ChaveIntegracao)) { listaEstados.ChaveIntegracaoEstado = objEstado.ChaveIntegracao; } retornoLinhaCorteItem.EstadosItens.Add(listaEstados); listaEstados = new Pollux.Entities.EstadoItem { }; } } //Depois de pegar as infos adiciona o dictionary em uma lista de dictionaries response.Add(retornoLinhaCorteItem); retornoLinhaCorteItem = new Pollux.Entities.LinhaCorte { }; } retorno.Add("LinhasCorteItens", response); retorno.Add("Resultado", resultadoConsulta); return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno)); }
public Bens DefinirPropriedades(Intelbras.Message.Helper.MSG0066 xml) { var crm = new Bens(this.Organizacao, this.IsOffline); #region Propriedades Crm->Xml //ID não obrigatório - Create if (!String.IsNullOrEmpty(xml.CodigoImovel)) { crm.ID = new Guid(xml.CodigoImovel); } if (String.IsNullOrEmpty(xml.Contato) && String.IsNullOrEmpty(xml.Conta)) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Conta e Contato não foram enviados, deve ser enviado ao menos um destes objetos."; return(crm); } if (!String.IsNullOrEmpty(xml.Contato)) { if (xml.Contato.Length == 36) { crm.Contato = new Lookup(new Guid(xml.Contato), ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador do Contato enviado fora do padrão."; return(crm); } } if (!String.IsNullOrEmpty(xml.Conta)) { if (xml.Conta.Length == 36) { crm.Conta = new Lookup(new Guid(xml.Conta), ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador do Canal enviado fora do padrão."; return(crm); } } if (!String.IsNullOrEmpty(xml.EnderecoImovel.Numero)) { crm.Numero = xml.EnderecoImovel.Numero; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Numero do endereço do imóvel não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.EnderecoImovel.Logradouro)) { crm.Endereco = xml.EnderecoImovel.Logradouro; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Logradouro do endereço do imóvel não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.EnderecoImovel.Bairro)) { crm.Bairro = xml.EnderecoImovel.Bairro; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(Bairro do endereço do imóvel não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.EnderecoImovel.CEP)) { crm.CEP = xml.EnderecoImovel.CEP; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CEP do endereço do imóvel não enviado."; return(crm); } //Cidade - service if (!String.IsNullOrEmpty(xml.EnderecoImovel.Cidade)) { Municipio cidade = new Intelbras.CRM2013.Domain.Servicos.MunicipioServices(this.Organizacao, this.IsOffline).BuscaCidade(xml.EnderecoImovel.Cidade); if (cidade.ID.HasValue) { crm.Cidade = new Lookup(cidade.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Cidade do endereço do imóvel não encontrada!"; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Cidade do endereço do imóvel não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.EnderecoImovel.Complemento)) { crm.Complemento = xml.EnderecoImovel.Complemento; } else { crm.AddNullProperty("Complemento"); } // Estado (UF) - service if (!String.IsNullOrEmpty(xml.EnderecoImovel.Estado)) { Model.Estado estado = new Model.Estado(this.Organizacao, this.IsOffline); estado = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaEstado(xml.EnderecoImovel.Estado); if (estado != null && estado.ID.HasValue) { crm.Estado = new Lookup(estado.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Estado não encontrado!"; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Estado do endereço do imóvel não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.Matricula)) { crm.Matrícula = xml.Matricula; } else { crm.AddNullProperty("Matrícula"); } if (!String.IsNullOrEmpty(xml.Nome)) { crm.Nome = xml.Nome; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Nome do imóvel não enviado."; return(crm); } crm.Onus = xml.ValorOnus; // País if (!String.IsNullOrEmpty(xml.EnderecoImovel.Pais)) { Model.Pais pais = new Model.Pais(this.Organizacao, this.IsOffline); pais = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaPais(xml.EnderecoImovel.Pais); if (pais != null && pais.ID.HasValue) { crm.Pais = new Lookup(pais.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "País não encontrado!"; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "País do endereço do imóvel não enviado."; return(crm); } crm.TipoImovel = xml.TipoImovel; crm.Valor = xml.ValorImovel; crm.Status = xml.Situacao; // Moeda - service if (!String.IsNullOrEmpty(xml.Moeda)) { Model.Moeda moeda = new Model.Moeda(this.Organizacao, this.IsOffline); moeda = new Intelbras.CRM2013.Domain.Servicos.MoedaService(this.Organizacao, this.IsOffline).BuscaMoedaPorNome(xml.Moeda); if (moeda != null && moeda.ID.HasValue) { crm.Moeda = new Lookup(moeda.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Moeda não encontrada!"; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Moeda não enviada."; return(crm); } crm.NaturezaProprietario = xml.NaturezaProprietarioImovel; #endregion return(crm); }