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);
     }
 }