/// <summary> /// METODO RESPONSÁVEL POR PERSISTIR OS DADOS DO RESTAURANTE VENCEDOR /// </summary> /// <param name=""></param> /// <returns>BOOLEAN</returns> public async Task <SurveyWinners> PostSurveyFinishAsync() { try { var surveyResult = await GetSurveyResultPartialAsync(); //teste.GetType().GetProperty("VOTES").GetValue(teste, null); int higherVoting = 0; int idxSurveyWinner = 0; for (int i = 0; i < surveyResult.Count; i++) { int votesReceived = int.Parse(surveyResult[i].GetType().GetProperty("VOTES").GetValue(surveyResult[i], null).ToString()); if (votesReceived > higherVoting) { idxSurveyWinner = i; higherVoting = votesReceived; } else if (votesReceived == higherVoting) { //Caso o número de votação empatar, será gerado um randomico para escolher o restaurante sorteado. Random random = new Random(); if (random.Next(0, 2) == 1) { idxSurveyWinner = i; } } } SurveyWinners sw = new SurveyWinners(); sw.SVW_RESTAURANT_ID = int.Parse(surveyResult[idxSurveyWinner].GetType().GetProperty("SRV_RESTAURANT_ID").GetValue(surveyResult[idxSurveyWinner], null).ToString()); sw.SVW_DATE = DateTime.Now; sw.SVW_VOTES = int.Parse(surveyResult[idxSurveyWinner].GetType().GetProperty("VOTES").GetValue(surveyResult[idxSurveyWinner], null).ToString()); sw.SVW_TOTAL_VOTES = int.Parse(surveyResult[idxSurveyWinner].GetType().GetProperty("TOTAL").GetValue(surveyResult[idxSurveyWinner], null).ToString()); _dbContext.Add(sw); await _dbContext.SaveChangesAsync(); return(sw); } catch (Exception ex) { throw ex; } }
/// <summary> /// METODO RESPONSÁVEL POR RETORNAR O RESTAURANTE VENCEDOR DO DIA ATUAL /// </summary> /// <param name=""></param> /// <returns>OBJETO</returns> public async Task <Object> GetSurveyWinnerAsync() { try { SurveyWinners sw = await _dbContext.QuerySurveyWinners.Where(x => x.SVW_DATE.Date == DateTime.Now.Date).AsNoTracking().FirstOrDefaultAsync(); Entities.Restaurant rest = await _dbContext.QueryRestaurant.Where(x => x.RES_IDENTI == sw.SVW_RESTAURANT_ID).AsNoTracking().FirstOrDefaultAsync(); return(new { RESTAURANT_ID = sw.SVW_RESTAURANT_ID, DATE = sw.SVW_DATE, VOTES = sw.SVW_VOTES, TOTAL_VOTES = sw.SVW_TOTAL_VOTES, RESTAURANT = rest, }); } catch (Exception ex) { throw ex; } }