Exemplo n.º 1
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");
        }