public SimuladorGeoArquivoBus() { _config = new ConfiguracaoSimuladorGeo(); _configSistema = new ConfiguracaoSistema(); _arquivoDa = new ArquivoDa(_configSistema.Obter <string>(ConfiguracaoSistema.KeyUsuarioPublicoGeo)); _gerenciador = new GerenciadorArquivo(_config.DiretoriosArquivo, _configSistema.Obter <string>(ConfiguracaoSistema.KeyUsuarioPublicoGeo)); _gerenciadorTemp = new GerenciadorArquivo(_config.DiretoriosArquivoTemp, _configSistema.Obter <string>(ConfiguracaoSistema.KeyUsuarioPublicoGeo)); }
public Sobreposicoes ObterGeoSobreposiacao(int id, eCaracterizacao tipo) { Sobreposicoes sobreposicoes = new Sobreposicoes(); try { sobreposicoes.DataVerificacao = DateTime.Now.ToString("dd/MM/yyyy - HH:mm", CultureInfo.CurrentCulture.DateTimeFormat); #region Empreendimento Sobreposicao sobreposicaoEmp = _da.ObterGeoSobreposicaoIdaf(id, tipo); if (sobreposicaoEmp == null) { sobreposicaoEmp = CriarObjSobreposicao(string.Empty); sobreposicaoEmp.Identificacao = " - "; } else { sobreposicaoEmp.TipoTexto = SobreposicaoTipo.Single(y => y.Id == (int)sobreposicaoEmp.Tipo).Texto; } sobreposicoes.Itens.Add(sobreposicaoEmp); #endregion #region Feicoes Geobases string ATPWkt = _da.ObterWktATP(id, tipo); string urlGeoBasesWebService = _config.Obter <string>(ConfiguracaoSistema.KeyUrlGeoBasesWebServices); urlGeoBasesWebService = urlGeoBasesWebService + "/Topologia/Relacao"; if (String.IsNullOrEmpty(ATPWkt)) { Validacao.Add(Mensagem.ProjetoGeografico.ATPNaoEncontrada); return(null); } //teste //urlGeoBasesWebService = "http://localhost:33716/Topologia/Relacao"; List <string> feicoes = new List <string>() { "HID_BACIA_HIDROGRAFICA", "LIM_TERRA_INDIGENA", "LIM_UNIDADE_PROTECAO_INTEGRAL", "LIM_UNIDADE_CONSERV_NAO_SNUC", "LIM_OUTRAS_UNID_PROTEGIDAS", "LIM_UNIDADE_USO_SUSTENTAVEL" }; RequestJson request = new RequestJson(); ResponseJsonData <List <FeicaoJson> > responseData = request.Executar <List <FeicaoJson> >(urlGeoBasesWebService, RequestJson.POST, new { feicoes = feicoes, wkt = ATPWkt }); if (responseData.Erros != null && responseData.Erros.Count > 0) { responseData.Erros.Insert(0, new Mensagem() { Tipo = eTipoMensagem.Erro, Texto = "Erro no WebService GeoBases" }); Validacao.Erros.AddRange(responseData.Erros); return(null); } Sobreposicao sobreposicao = null; foreach (var key in feicoes) { sobreposicao = CriarObjSobreposicao(key); if (!responseData.Data.Exists(x => x.Nome == key)) { sobreposicao.Identificacao = " - "; sobreposicoes.Itens.Add(sobreposicao); continue; } FeicaoJson feicaoJson = responseData.Data.First(x => x.Nome == key); List <string> lst = null; if (!feicaoJson.Geometrias.SelectMany(x => x.Atributos).Any(x => x.Nome == "ADMINISTRACAO")) { sobreposicao.Identificacao = String.Join("; ", feicaoJson.Geometrias.SelectMany(x => x.Atributos).Select(x => x.Valor).ToArray()); } else { lst = feicaoJson.Geometrias .Select(x => String.Format("{0} - {1}", x.Atributos.Single(y => y.Nome == "Nome").Valor, x.Atributos.Single(y => y.Nome == "ADMINISTRACAO").Valor)).ToList(); sobreposicao.Identificacao = String.Join("; ", lst.ToArray()); } sobreposicoes.Itens.Add(sobreposicao); } #endregion } catch (Exception exc) { Validacao.AddErro(exc); } return(sobreposicoes); }