Subversion Repositories Integrator Subversion

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.controller.managedbean;

import java.io.Serializable;

import javax.annotation.PostConstruct;
import javax.inject.Named;

import org.springframework.context.annotation.Scope;

import br.com.ec.domain.dto.MegaCombinacaoDTO;
import br.com.ec.domain.dto.MegaDTO;
import br.com.ec.domain.service.email.impl.GerenciadorEmailImpl;
import br.com.ec.domain.shared.ConstantesSEC;
import br.edu.cesmac.core.util.DataUtils;
import br.edu.cesmac.web.exception.VerificadorLancamentoException;
import br.edu.cesmac.web.exception.VerificadorLancamentoException.CommandBean;
import br.edu.cesmac.web.message.LancadorMensagem;

@Named
@Scope("view")
public class MegaBean implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private Integer limiteEscolhas = 20;
        private MegaDTO megaDTO;
        private Integer numero;
       
        @PostConstruct
        public void preCarregamento() {
                megaDTO = new MegaDTO();
        }
       
        public MegaDTO getMegaDTO() {
                return megaDTO;
        }
        public void setMegaDTO(MegaDTO megaDTO) {
                this.megaDTO = megaDTO;
        }
       
        public Integer getNumero() {
                return numero;
        }
        public void setNumero(Integer numero) {
                this.numero = numero;
        }
       
        public Integer getLimiteEscolhas() {
                return limiteEscolhas;
        }
        public void setLimiteEscolhas(Integer limiteEscolhas) {
                this.limiteEscolhas = limiteEscolhas;
        }
       
        /*********************************************/
       
        public void adicionarNumero() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                getMegaDTO().adicionarNumero(getNumero());
                                setNumero(null);
                                LancadorMensagem.lancarSucesso("NÚMERO ADICIONADO COM SUCESSO");
                        }
                });
        }
       
        public void retirarNumeroEscolhido(final Integer numero) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                getMegaDTO().retirarNumero(numero);
                                LancadorMensagem.lancarSucesso("NÚMERO RETIRADO COM SUCESSO");
                        }
                });
        }
       
        public void gerarCombinacoes() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                getMegaDTO().gerarCombinacoes();
                                StringBuilder combinacoes = new StringBuilder();
                                combinacoes.append("COMBINAÇÕES:");
                                for (MegaCombinacaoDTO combinacao : getMegaDTO().getCombinacoes()) {
                                        combinacoes.append(combinacao.getSequencia());
                                }
                               
                                String diaAtual = DataUtils.converterDataParaString(DataUtils.getDataAtual());
                                new GerenciadorEmailImpl()
                                        .comEmailsDestino(ConstantesSEC.DESTINATARIOS_EMAIL_DIRECAO)
                                        .comAssunto("ESPAÇO CASE - MEGA: " + diaAtual)
                                        .comConteudo(combinacoes.toString())
                                        .enviar();
                                LancadorMensagem.lancarSucesso("COMBINAÇÕES GERADAS COM SUCESSO");
                        }
                });
        }
       
}