dijalmasilva.controllers.ControladorEvento.java Source code

Java tutorial

Introduction

Here is the source code for dijalmasilva.controllers.ControladorEvento.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package dijalmasilva.controllers;

import dijalmasilva.core.service.EventoService;
import dijalmasilva.core.service.GrupoService;
import dijalmasilva.entidades.Evento;
import dijalmasilva.entidades.Grupo;
import dijalmasilva.enums.TipoIdolo;
import dijalmasilva.enums.TipoResultado;
import java.sql.Date;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 *
 * @author Dijalma Silva <dijalmacz@gmail.com>
 */
@Controller
@RequestMapping("/event")
public class ControladorEvento {

    @Inject
    private EventoService service;
    @Inject
    private GrupoService grupoService;

    @RequestMapping(method = RequestMethod.POST)
    public String save(Long id_group, Date data, HttpServletRequest req, String descricao) {
        LocalDate dataEvento = data.toLocalDate();
        Grupo grupo = grupoService.buscar(id_group);
        List<TipoResultado> resultados = retornaPossveisResultados(grupo.getIdolo().getTipo());
        Evento e = new Evento();
        e.setDataDoEvento(dataEvento);
        e.setGrupo(grupo);
        e.setDescricao(descricao);
        e.setTiposDeResultados(resultados);
        Evento eve = service.save(e);

        if (eve != null) {
            req.setAttribute("result", "Evento cadastrado com sucesso!");
        } else {
            req.setAttribute("result", "Erro ao cadastrar evento");
        }

        List<Evento> eventos = service.findByIdOfGroup(grupo.getId());
        req.setAttribute("eventos", eventos);
        req.setAttribute("group", grupo);

        return "otherGroup";
    }

    private List<TipoResultado> retornaPossveisResultados(TipoIdolo tipo) {
        List<TipoResultado> resultados = new ArrayList<TipoResultado>();
        switch (tipo) {
        case ATLETA: {
            resultados.add(TipoResultado.MEDALHA_DE_BRONZE);
            resultados.add(TipoResultado.MEDALHA_DE_PRATA);
            resultados.add(TipoResultado.MEDALHA_DE_OURO);
        }
            break;
        case EQUIPE: {
            resultados.add(TipoResultado.TERCEIRO);
            resultados.add(TipoResultado.SEGUNDO);
            resultados.add(TipoResultado.PRIMEIRO);
        }
            break;
        case CORREDOR: {
            resultados.add(TipoResultado.TERCEIRO);
            resultados.add(TipoResultado.SEGUNDO);
            resultados.add(TipoResultado.PRIMEIRO);
        }
            break;
        case GINASTA: {
            resultados.add(TipoResultado.MEDALHA_DE_BRONZE);
            resultados.add(TipoResultado.MEDALHA_DE_PRATA);
            resultados.add(TipoResultado.MEDALHA_DE_OURO);
        }
            break;
        case JOGADOR: {
            resultados.add(TipoResultado.VITORIA);
            resultados.add(TipoResultado.EMPATE);
            resultados.add(TipoResultado.DERROTA);
        }
            break;
        case PILOTO: {
            resultados.add(TipoResultado.TERCEIRO);
            resultados.add(TipoResultado.SEGUNDO);
            resultados.add(TipoResultado.PRIMEIRO);
        }
            break;
        case TENISTA: {
            resultados.add(TipoResultado.VITORIA);
            resultados.add(TipoResultado.DERROTA);
        }
            break;
        case TIME: {
            resultados.add(TipoResultado.VITORIA);
            resultados.add(TipoResultado.EMPATE);
            resultados.add(TipoResultado.DERROTA);
        }
            break;
        default: {
            resultados.add(TipoResultado.TERCEIRO);
            resultados.add(TipoResultado.SEGUNDO);
            resultados.add(TipoResultado.PRIMEIRO);
            resultados.add(TipoResultado.VITORIA);
            resultados.add(TipoResultado.EMPATE);
            resultados.add(TipoResultado.DERROTA);
            resultados.add(TipoResultado.MEDALHA_DE_BRONZE);
            resultados.add(TipoResultado.MEDALHA_DE_PRATA);
            resultados.add(TipoResultado.MEDALHA_DE_OURO);
        }
        }

        return resultados;
    }
}