public ActionResult EditarCandidato(CandidatoModel model) { try { using (var db = new CandidatoDB()) { var atualiza = db.Candidato.FirstOrDefault(cand => cand.id == model.id); if (atualiza != null) { atualiza.Nome = model.Nome; atualiza.Cep = model.Cep; atualiza.Habilidades = model.Habilidades; db.SaveChanges(); } } TempData["mensagem"] = "Realizado!"; return View("CandidatoEditar"); } catch (Exception erro) { TempData["mensagem"] = "Ocorreu um erro!"; throw erro; } }
public ViewResult Candidatos() { CandidatoDB candidatodb = new CandidatoDB(); List<CandidatoModel> candidatos = candidatodb.Candidato.ToList(); return View("Candidatos", candidatos); }
public ActionResult CadastrarCandidato(CandidatoModel model) { try { model.DataCadastro = DateTime.Now; CandidatoDB candidatoBanco = new CandidatoDB(); candidatoBanco.Candidato.Add(model); candidatoBanco.SaveChanges(); TempData["mensagem"] = "Realizado!"; return View("CandidatoCadastro"); } catch (Exception) { TempData["mensagem"] = "Ocorreu um erro!"; throw new Exception(); } }
public ViewResult PesquisarCandidato() { string idCandidato = Request.QueryString.ToString(); int id = Int32.Parse(idCandidato); CandidatoDB db = new CandidatoDB(); List<CandidatoModel> vaga = db.Candidato.Where(vg => vg.id == id).ToList(); CandidatoModel model = new CandidatoModel(); if (vaga != null) { foreach (var item in vaga) { model.id = item.id; model.Nome = item.Nome; model.Cep = item.Cep; model.Habilidades = item.Habilidades; } } return View("CandidatoEditar", 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 ExcluirCandidato() { string idCandidato = Request.QueryString.ToString(); int id = Int32.Parse(idCandidato); CandidatoDB db = new CandidatoDB(); var vaga = db.Candidato.First(cand => cand.id == id); if (vaga != null) { db.Candidato.Remove(vaga); db.SaveChanges(); } List<CandidatoModel> listaDeCandidatos = db.Candidato.ToList(); return View("Candidatos", listaDeCandidatos); }