Exemplo n.º 1
0
        //
        // GET: /Map/
        public ActionResult Index()
        {
            tcc_imoveisEntities tcc = new tcc_imoveisEntities();

            ObjectResult<TipoDado_Result> listaTipoDadoCondicoes = tcc.ListaTipoDadoCondicoes();

            Hashtable grupoTipoCondicao = new Hashtable();

            List<string> tipos;
            foreach (var tipoCondicao in listaTipoDadoCondicoes.ToList())
            {
                //verifica se existe o ID do tipo de dado na hashtable
                if (grupoTipoCondicao.ContainsKey(tipoCondicao.idtipo_dado))
                {
                    //adiciona um item na lista de condicoes existentes para o tipo de dado acima.
                    ((List<string>)grupoTipoCondicao[tipoCondicao.idtipo_dado]).Add(tipoCondicao.idpesquisa_condicoes);
                }
                else
                {
                    //cria uma lista temporaria
                    tipos = new List<string>();

                    //adiciona uma condicao na lista
                    tipos.Add(tipoCondicao.idpesquisa_condicoes);

                    //adiciona a lista na hastable
                    grupoTipoCondicao.Add(tipoCondicao.idtipo_dado, tipos);

                }

            }

            ViewBag.grupoTipoCondicao = grupoTipoCondicao;

            ObjectResult<AtributosGerais_Result> atributos = tcc.ListaAtributosGerais();
            ViewBag.atributos = atributos.ToList();

            return View();
        }
Exemplo n.º 2
0
        public ActionResult PesquisaTempoReal()
        {
            tcc_imoveisEntities tcc = new tcc_imoveisEntities();

            ObjectResult<AtributosGerais_Result> atributos = tcc.ListaAtributosGerais();
            var listAtributos = atributos.ToList();

            string sessionId = System.Web.HttpContext.Current.Session.SessionID;

            ObjectResult<int?> insert = tcc.InserePesquisa(sessionId, "runtime_search_" + sessionId);
            List<int?> id = insert.ToList();
            if (id.ElementAt(0) != null)
            {
                int idPesquisa = Convert.ToInt32(id.ElementAt(0));

                System.Web.HttpContext.Current.Session.Add("pesquisa_id", idPesquisa);

                //varre os atributos validos no banco de dados
                foreach (var atributo in listAtributos)
                {

                    //varre as chaves vindas do post
                    foreach (string key in Request.Form.AllKeys)
                    {
                        //verifica se as chaves são validas
                        //verifica se o valor recuperado por post é referente a atributo.IdTipoDado
                        if (Regex.IsMatch(key, @"^" + atributo.IdImovelAtributoTipo.ToString() + "_[0-2]"))
                        {
                            if (!string.IsNullOrEmpty(Request.Form[key]))
                            {
                                string valor = Request.Form[key];
                                string condicao = Request["condicao_" + key];

                                tcc.InsereAtributoPesquisa(idPesquisa,
                                    atributo.IdImovelAtributoTipo,
                                    HttpUtility.HtmlDecode(condicao),
                                    valor);
                            }
                        }
                    }

                }

                //verifica se foi passado um poligono para ser gravado
                //verifica se a string esta no formato de poligono
                if (!string.IsNullOrEmpty(Request.Form["polygon"]) && Util.IsPolygon(Request.Form["polygon"]))
                {
                    string poligono = Util.ToPolygon(Request["polygon"]);
                    tcc.InserePoligono(idPesquisa, Util.ToPolygon(poligono));
                }

                //verifica se contem um ponto central para busca por raio
                //verifica se existeu ma distancia para busca por raio
                if (!string.IsNullOrEmpty(Request.Form["ponto_central"]) && !string.IsNullOrEmpty(Request.Form["distancia"]))
                {
                    string ponto = Request.Form["ponto_central"]; //
                    if (Util.IsPolygon(ponto))
                    {

                    }
                    ponto = "POINT" + ponto.Replace(",", "");
                    string distancia = Request.Form["distancia"];

                    tcc.InsereRaio(idPesquisa, ponto, distancia);
                }

                return RedirectToAction("ListaResult", new { id = idPesquisa });

            }
            return RedirectToAction("/Map/BuscaGeral");
        }