/// <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; } }
/// <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); } }