public ActionResult CadastrarVagaJson(VagaModel model) { try { VagaModel vaga = new VagaModel(); vaga.DataCadastro = DateTime.Now; vaga.Empresa = model.Empresa; vaga.Descricao = model.Descricao; vaga.Cep = model.Cep; vaga.Habilidades = model.Habilidades; VagaDB db = new VagaDB(); db.Vaga.Add(vaga); db.SaveChanges(); object resultado = new object(); resultado = new { mensagem = "Sucesso" }; return Json(resultado, JsonRequestBehavior.AllowGet); } catch (Exception) { object resultado = new object(); resultado = new { mensagem = "Ocorreu um erro ao tentar gravar a vaga" }; return Json(resultado, JsonRequestBehavior.AllowGet); } }
// metodos de listar public ViewResult Vagas() { VagaDB db = new VagaDB(); List<VagaModel> listaDeVagas = db.Vaga.ToList(); return View("Vagas", listaDeVagas); }
//metodos json public JsonResult VagasJson() { VagaDB db = new VagaDB(); List<VagaModel> listaDeVagas = db.Vaga.ToList(); List<Object> resultado = new List<object>(); foreach (var x in listaDeVagas) { resultado.Add(new { DataCadastro = x.DataCadastro.ToShortDateString() + " " + x.DataCadastro.ToShortTimeString(), Empresa = x.Empresa, Descricao = x.Descricao, Cep = x.Cep, Habilidades = x.Habilidades, Id = x.Id }); } return Json(resultado, JsonRequestBehavior.AllowGet); }
//metodos de pesquisa public ViewResult PesquisarVaga() { string idVaga = Request.QueryString.ToString(); int id = Int32.Parse(idVaga); VagaDB vagadb = new VagaDB(); List<VagaModel> vaga = vagadb.Vaga.Where(vg => vg.Id == id).ToList(); VagaModel model = new VagaModel(); if (vaga != null) { foreach (var item in vaga) { model.Id = item.Id; model.Empresa = item.Empresa; model.Descricao = item.Descricao; model.Cep = item.Cep; model.Habilidades = item.Habilidades; } } return View("VagaEditar", model); }
public JsonResult PesquisaDistancia(DistanciaModel model) { var idVaga = Request.QueryString.ToString(); idVaga = idVaga.Substring(idVaga.IndexOf("id") + 2); idVaga = idVaga.Substring(0, idVaga.IndexOf("id")); int id = Int32.Parse(idVaga); VagaDB vagadb = new VagaDB(); List<VagaModel> vaga = vagadb.Vaga.Where(vg => vg.Id == id).ToList(); CandidatoDB candidatodb = new CandidatoDB(); List<CandidatoModel> candidatos = candidatodb.Candidato.ToList(); String[] HabilidadesCancdidato = new String[20]; String[] HabilidadesVaga = new String[30]; foreach (var item in vaga) { if (!string.IsNullOrEmpty(item.Habilidades)) { HabilidadesVaga = item.Habilidades.Split(','); } } foreach (var item in vaga) { model.CepVaga = item.Cep; if (!model.CepVaga.Contains('-')) { model.CepVaga = model.CepVaga.Insert(5, "-"); } } int distanciaAtual = 0, distanciaNova = 0; foreach (var item in candidatos) { if (!item.Cep.Contains('-')) { item.Cep = item.Cep.Insert(5, "-"); } var url = "https://maps.googleapis.com/maps/api/distancematrix/json"; string queryString = "?origins=" + item.Cep + "&destinations=" + model.CepVaga + "&mode=driving"; try { String distancia = string.Empty; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + queryString); WebResponse response = request.GetResponse(); using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); distancia = reader.ReadToEnd(); } distancia = distancia.Substring(distancia.IndexOf("text") + 9); distancia = distancia.Substring(0, distancia.IndexOf(",")); decimal porcentagem = 0, indice = 100 / HabilidadesVaga.Length; if (distancia.Contains(" m")) { HabilidadesCancdidato = item.Habilidades.Split(','); foreach (var habilidade in HabilidadesCancdidato) { if (HabilidadesVaga.Contains(habilidade)) { porcentagem += indice; } } model.Porcentagem = porcentagem.ToString(); string pattern = "\\D"; string replacement = ""; distancia = Regex.Replace(distancia, pattern, replacement); model.NomeCandidato = item.Nome; model.CepCandidato = item.Cep; model.Distancia = distancia + " m"; break; } if (distancia.Contains(" km")) { HabilidadesCancdidato = item.Habilidades.Split(','); foreach (var habilidade in HabilidadesCancdidato) { if (HabilidadesVaga.Contains(habilidade)) { porcentagem += indice; } } model.Porcentagem = porcentagem.ToString(); if (distancia.Contains(".")) { distancia = distancia.Substring(0, distancia.IndexOf(".")); } string pattern = "\\D"; string replacement = ""; distancia = Regex.Replace(distancia, pattern, replacement); distanciaNova = Int32.Parse(distancia); if (distanciaAtual == 0) { distanciaAtual = distanciaNova; model.NomeCandidato = item.Nome; model.CepCandidato = item.Cep; model.Distancia = distanciaNova.ToString() + " km"; } else { if (distanciaAtual > distanciaNova) { distanciaAtual = distanciaNova; model.NomeCandidato = item.Nome; model.CepCandidato = item.Cep; model.Distancia = distanciaNova.ToString() + " km"; } } } } catch (Exception erro) { TempData["mensagem"] = "Ocorreu um erro!"; throw erro; } } List<Object> resultado = new List<object>(); resultado.Add(new { Nome = model.NomeCandidato, Distancia = model.Distancia, Cep = model.CepCandidato, Porcentagem = model.Porcentagem }); return Json(resultado, JsonRequestBehavior.AllowGet); }
public ViewResult Index() { VagaDB db = new VagaDB(); List<VagaModel> listaDeVagas = db.Vaga.ToList(); return View(listaDeVagas); }
//metodos de excluir public ViewResult ExcluirVaga() { string idVaga = Request.QueryString.ToString(); int id = Int32.Parse(idVaga); VagaDB vagadb = new VagaDB(); var vaga = vagadb.Vaga.First(vg => vg.Id == id); if (vaga != null) { vagadb.Vaga.Remove(vaga); vagadb.SaveChanges(); } List<VagaModel> listaDeVagas = vagadb.Vaga.ToList(); return View("Vagas", listaDeVagas); }
public ActionResult EditarVaga(VagaModel model) { try { using (var db = new VagaDB()) { var atualiza = db.Vaga.FirstOrDefault(vaga => vaga.Id == model.Id); if (atualiza != null) { atualiza.Empresa = model.Empresa; atualiza.Descricao = model.Descricao; atualiza.Cep = model.Cep; atualiza.Habilidades = model.Habilidades; db.SaveChanges(); } } TempData["mensagem"] = "Realizado!"; return View("VagaEditar"); } catch (Exception erro) { TempData["mensagem"] = "Ocorreu um erro!"; throw erro; } }