public ActionResult <CidadeViewModel> Post([FromBody] CidadeViewModel cidadePayload) { try { var cidade = new Cidade(cidadePayload.ibge, cidadePayload.uf.ToUpper(), cidadePayload.nome.ToUpper(), cidadePayload.longitude, cidadePayload.latitude, cidadePayload.regiao.ToUpper()); var ibgeIgual = _context.Cidades.FirstOrDefault(c => c.ibge == cidade.ibge); if (ibgeIgual != null) { var error = new CidadeViewModel("O IBGE já existe!"); return(error); } var cidadeJaExiste = _context.Cidades.FirstOrDefault(c => c.uf == cidade.uf && c.nome_cidade == cidade.nome_cidade); if (cidadeJaExiste != null) { var error = new CidadeViewModel("Esta cidade já existe!"); return(error); } _context.Cidades.Add(cidade); _context.SaveChanges(); var newViewModel = new CidadeViewModel(cidade.id, cidade.ibge, cidade.uf, cidade.nome_cidade, cidade.longitude, cidade.latitude, cidade.regiao); return(newViewModel); } catch (Exception e) { throw new Exception(e.Message); } }
public List <CidadeViewModel> GerarRelatorioCidadesPorRegiao() { try { List <CidadeViewModel> listaCidades = new List <CidadeViewModel>(); List <string> listaRegiao = new List <string>(); var cidades = _context.Cidades.Select(cidade => new CidadeViewModel() { uf = cidade.uf, regiao = cidade.regiao }).ToList(); cidades?.ForEach(cidade => { if (!listaRegiao.Contains(cidade.uf)) { listaRegiao.Add(cidade.uf); CidadeViewModel dados = new CidadeViewModel(); dados.uf = cidade.uf; dados.regiao = cidade.regiao; dados.quantidadeCidadesPorRegiao = _context.Cidades.Where(c => c.regiao == cidade.regiao).Count(); listaCidades.Add(dados); } }); return(listaCidades); } catch (Exception e) { throw new Exception(e.Message); } }
public ActionResult <CidadeViewModel> Get(int id) { try { var cidade = _context.Cidades.FirstOrDefault(c => c.id == id); var cidadeViewModel = new CidadeViewModel(); cidadeViewModel.id = cidade.id; cidadeViewModel.ibge = cidade.ibge; cidadeViewModel.uf = cidade.uf; cidadeViewModel.nome = cidade.nome_cidade; cidadeViewModel.longitude = cidade.longitude; cidadeViewModel.latitude = cidade.latitude; cidadeViewModel.regiao = cidade.regiao; return(cidadeViewModel); } catch (Exception e) { throw new Exception(e.Message); } }