예제 #1
0
        public Retorno getGanhadoresSemanaAnterior()
        {
            Retorno       retorno      = new Retorno();
            IRelatorioDAO relatorioDAO = new RelatorioDAO();
            DataVotacao   dataVotacao  = new DataVotacao();

            retorno.status = true;
            try
            {
                List <DateTime>   dias      = dataVotacao.retornaDataSemanaPassada();
                List <GANHADORES> resultado = relatorioDAO.getGanhadoresByDates(dias);
                retorno.objeto = resultado;
                if (resultado.Count() > 0)
                {
                    retorno.mensagem = "Listagem realizado com sucesso.";
                }
                else
                {
                    retorno.mensagem = "Nenhum restaurante ganhou semana passada.";
                }

                return(retorno);
            }
            catch (Exception ex)
            {
                retorno.status   = false;
                retorno.mensagem = ex.Message;
                return(retorno);
            }
        }
예제 #2
0
        /// <summary>
        /// Lista os restaurantes se o horario for menor 11:30
        /// Se o horario for maior ou igual a 11:30, devolve apenas o ganhador do dia
        /// </summary>
        /// <returns></returns>
        public Retorno listarRestaurante(long usuario_id)
        {
            IVotacaoDAO     votacaoDAO     = new VotacaoDAO();
            IGanhadorDAO    ganhadorDAO    = new GanhadorDAO();
            IRestauranteDAO restauranteDAO = new RestauranteDAO();
            DataVotacao     dataVotacao    = new DataVotacao();
            Retorno         retorno        = new Retorno();

            DateTime thisDay = DateTime.Now;

            try
            {
                if (thisDay.Hour > 12 || (thisDay.Hour == 11 && thisDay.Minute > 29))
                {
                    List <GANHADOR> ganhadores = ganhadorDAO.getGanhador(thisDay);
                    if (ganhadores.Count() == 1)
                    {
                        retorno.status   = true;
                        retorno.objeto   = restauranteDAO.consultar(ganhadores[0].RESTAURANTE_ID);
                        retorno.mensagem = "Listagem realizada com sucesso.";
                    }
                    else if (ganhadores.Count() == 0)
                    {
                        long restaurante_ganhador = votacaoDAO.getRestauranteGanhador(thisDay);

                        if (restaurante_ganhador > 0)
                        {
                            GANHADOR ganhador = new GANHADOR();
                            ganhador.DATA           = thisDay;
                            ganhador.RESTAURANTE_ID = restaurante_ganhador;
                            long id = ganhadorDAO.salvar(ganhador);

                            retorno.status   = true;
                            retorno.objeto   = restauranteDAO.consultar(restaurante_ganhador);
                            retorno.mensagem = "Listagem realizada com sucesso.";
                        }
                        else
                        {
                            retorno.status   = true;
                            retorno.objeto   = "";
                            retorno.mensagem = "Nenhum restaurante foi votado hoje.";
                        }
                    }
                    else
                    {
                        retorno.status   = false;
                        retorno.objeto   = "";
                        retorno.mensagem = "Ocorreu um erro. Comunique o administrador. Mais de um ganhador nesse dia: " + thisDay.Date;
                    }
                }
                else
                {
                    // testa se o usuario ja votou hoje
                    List <VOTACAO> votacao_dia = votacaoDAO.getVotacaoPorUsuarioDia(usuario_id, thisDay);
                    if (votacao_dia.Count() > 0)
                    {
                        retorno.status   = false;
                        retorno.mensagem = "Usuário já votou hoje. Aguarde o fim da votação.";
                        return(retorno);
                    }

                    List <DateTime> dias = dataVotacao.retornarData();
                    // recupera o id de todos os restaurantes que ganharam na semana
                    List <long>        ganhadores   = ganhadorDAO.listaRestauranteId(dias);
                    List <RESTAURANTE> restaurantes = restauranteDAO.listarPorGanhores(ganhadores);

                    retorno.status   = true;
                    retorno.objeto   = restaurantes;
                    retorno.mensagem = "Listagem realizada com sucesso.";
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                retorno.status   = false;
                retorno.mensagem = ex.Message;
                return(retorno);
            }
        }