Created
June 17, 2015 19:41
-
-
Save victorximenis/8ba1e6a8e873d9b64664 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package br.unipe.dsw.controller; | |
import br.unipe.dsw.entity.Categoria; | |
import br.unipe.dsw.entity.Quarto; | |
import br.unipe.dsw.repository.CategoriaRepository; | |
import br.unipe.dsw.repository.QuartoRepository; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.dao.DataIntegrityViolationException; | |
import org.springframework.stereotype.Controller; | |
import org.springframework.ui.Model; | |
import org.springframework.ui.ModelMap; | |
import org.springframework.web.bind.annotation.*; | |
import org.springframework.web.servlet.mvc.support.RedirectAttributes; | |
import java.util.ArrayList; | |
import java.util.HashMap; | |
import java.util.List; | |
import java.util.Map; | |
/** | |
* Created by victo on 03/06/2015. | |
*/ | |
@Controller | |
@RequestMapping("/quarto") | |
public class QuartoController { | |
@Autowired | |
QuartoRepository quartoRepository; | |
@Autowired | |
CategoriaRepository categoriaRepository; | |
@RequestMapping(value = "/novo", method = RequestMethod.GET) | |
public String create(ModelMap modelMap){ | |
modelMap.addAttribute("categorias", selectCategoria()); | |
Quarto quarto = new Quarto(); | |
quarto.setCategoria(new Categoria()); | |
modelMap.addAttribute("quarto", quarto); | |
return "quarto/novo"; | |
} | |
@RequestMapping(value = "/{id}/edit", method = RequestMethod.GET) | |
public String edit(@PathVariable(value = "id") String id, ModelMap modelMap){ | |
Quarto quarto = quartoRepository.findOne(Long.parseLong(id)); | |
modelMap.addAttribute("categorias", selectCategoria()); | |
modelMap.addAttribute("quarto", quarto); | |
return "quarto/novo"; | |
} | |
@RequestMapping(value = "/save", method = RequestMethod.POST) | |
public String add(@ModelAttribute("quarto") Quarto quarto){ | |
Quarto quartoSalvar = new Quarto(); | |
if(quarto.getId() != null){ | |
quartoSalvar = quartoRepository.findOne(quarto.getId()); | |
quartoSalvar.setNumero(quarto.getNumero()); | |
quartoSalvar.setAndar(quarto.getAndar()); | |
quartoSalvar.setCategoria(quarto.getCategoria()); | |
}else{ | |
quartoSalvar = quarto; | |
} | |
quartoRepository.save(quartoSalvar); | |
return "redirect:/quarto/list"; | |
} | |
@RequestMapping(value = "/{id}/delete", method = RequestMethod.GET) | |
public String delete(@PathVariable(value = "id") String id, RedirectAttributes redirectAttributes){ | |
Quarto quarto = quartoRepository.findOne(Long.parseLong(id)); | |
try { | |
quartoRepository.delete(quarto); | |
redirectAttributes.addFlashAttribute("successMessage", "Quarto removido com sucesso!"); | |
} catch (DataIntegrityViolationException e) { | |
e.printStackTrace(); | |
redirectAttributes.addFlashAttribute("errorMessage", "O quarto possui reservas ligadas a ele e não pode ser removido!"); | |
} | |
return "redirect:/quarto/list"; | |
} | |
@RequestMapping(value = "/list", method = RequestMethod.GET) | |
public String list(ModelMap modelMap, | |
@RequestParam(value = "numero", required = false) String numero, | |
@RequestParam(value = "categoriaId", required = false) String categoiraId){ | |
List<Quarto> quartoList = new ArrayList<Quarto>(); | |
if(numero != null & categoiraId != null){ | |
Categoria categoria = categoriaRepository.findOne(Long.parseLong(categoiraId)); | |
quartoList = (List<Quarto>)quartoRepository.findByNumeroAndCategoria(numero, categoria); | |
}else{ | |
quartoList = (List<Quarto>)quartoRepository.findAll(); | |
} | |
List<Categoria> categoriaList = (List<Categoria>)categoriaRepository.findAll(); | |
modelMap.addAttribute("quartos", quartoList); | |
modelMap.addAttribute("categorias", categoriaList); | |
return "quarto/list"; | |
} | |
public Map<Long, String> selectCategoria(){ | |
List<Categoria> categorias = (List<Categoria>)categoriaRepository.findAll(); | |
Map<Long, String> mapa = new HashMap<Long, String>(); | |
for(Categoria categoria:categorias){ | |
mapa.put(categoria.getId(), categoria.getDescricao()); | |
} | |
return mapa; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment