Example #1
0
 /// <summary>
 /// Resposável por salvar os dados do ganhador
 /// </summary>
 /// <param name="ganhador"> objeto ganhador </param>
 /// <returns> long </returns>
 public long salvar(GANHADOR ganhador)
 {
     try
     {
         using (TRABALHOEntities ctxTrabalho = new TRABALHOEntities())
         {
             ctxTrabalho.GANHADOR.Add(ganhador);
             ctxTrabalho.SaveChanges();
             return(ganhador.ID);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Example #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);
            }
        }