public ActionResult BuscaResultado(string dataVotacao) { DateTime data; //Verifica se parametro foi enviado corretamente if (!string.IsNullOrEmpty(dataVotacao)) { data = Convert.ToDateTime(dataVotacao); } else { //Monta objeto de retorno RetornoVazio ret = new RetornoVazio(); ret.mensagem1 = "Data inválida!"; ret.mensagem2 = "A data solicitada está no formato incorreto"; return Json(ret, JsonRequestBehavior.AllowGet); } Resultado resultado = new Resultado(); List<Resultado> listaResultado = new List<Resultado>(); //Busca os resultados da votacao listaResultado = resultado.LerResultado(data); //Verifica se lista esta vazia if (listaResultado.Count < 1) { //Monta objeto de retorno RetornoVazio ret = new RetornoVazio(); ret.mensagem1 = "Nenhuma votação foi encontrada!"; ret.mensagem2 = "Não foi possível encontrar a votação do dia selecionado"; return Json(ret, JsonRequestBehavior.AllowGet); } else { return Json(listaResultado, JsonRequestBehavior.AllowGet); } }
public List<Restaurante> CampeoesDaSemana() { //Instacia o objeto resultado Resultado resultado = new Resultado(); //Pesquisa os restaurantes já votados List<Resultado> listaResultadoDay1 = new List<Resultado>(); List<Resultado> listaResultadoDay2 = new List<Resultado>(); List<Resultado> listaResultadoDay3 = new List<Resultado>(); List<Resultado> listaResultadoDay4 = new List<Resultado>(); List<Resultado> listaResultadoDay5 = new List<Resultado>(); List<Resultado> listaResultadoDay6 = new List<Resultado>(); //cria variavel para armazenar data atual var today = DateTime.Now; //Se for mais que 11 da manha, o dia de votacao atual eh o proximo if (today.Hour >= 11) { today = today.AddDays(1); } //Carrega as variaveis com os dias da semana var day1 = today.AddDays(-1); var day2 = today.AddDays(-2); var day3 = today.AddDays(-3); var day4 = today.AddDays(-4); var day5 = today.AddDays(-5); var day6 = today.AddDays(-6); //Pesquisa os resultados de cada data listaResultadoDay1 = resultado.LerResultado(day1); listaResultadoDay2 = resultado.LerResultado(day2); listaResultadoDay3 = resultado.LerResultado(day3); listaResultadoDay4 = resultado.LerResultado(day4); listaResultadoDay5 = resultado.LerResultado(day5); listaResultadoDay6 = resultado.LerResultado(day6); //Cria a lista de retorno List<Restaurante> restaurantesCampeoes = new List<Restaurante>(); //Carrega a lista com os restaurantes campeoes, verificando se existe resultado if (listaResultadoDay1.Count > 0) { restaurantesCampeoes.Add(listaResultadoDay1.First().Restaurante); } if (listaResultadoDay2.Count > 0) { restaurantesCampeoes.Add(listaResultadoDay2.First().Restaurante); } if (listaResultadoDay3.Count > 0) { restaurantesCampeoes.Add(listaResultadoDay3.First().Restaurante); } if (listaResultadoDay4.Count > 0) { restaurantesCampeoes.Add(listaResultadoDay4.First().Restaurante); } if (listaResultadoDay5.Count > 0) { restaurantesCampeoes.Add(listaResultadoDay5.First().Restaurante); } if (listaResultadoDay6.Count > 0) { restaurantesCampeoes.Add(listaResultadoDay6.First().Restaurante); } //Retorna a lista return restaurantesCampeoes; }
public ActionResult ColaboradorPodeVotar(int idColaborador) { //Monta os possiveis retornos StatusRetorno retornoNulo = new StatusRetorno(); retornoNulo.status = "PodeVotar"; retornoNulo.valor = "NULL"; StatusRetorno retornoSim = new StatusRetorno(); retornoSim.status = "PodeVotar"; retornoSim.valor = "SIM"; StatusRetorno retornoNao = new StatusRetorno(); retornoNao.status = "PodeVotar"; retornoNao.valor = "NAO"; StatusRetorno retorno = new StatusRetorno(); //Verifica se parametro foi passado corretamente if (idColaborador > 0) { //Busca resultado da votacao Resultado resultado = new Resultado(); List<Resultado> listaResultado = resultado.LerResultado(DataVotacao()); //Verifica se existe algum resultado if (listaResultado == null) { //Caso nao exista resultado, pode votar retorno = retornoSim; } else { //Percorre cada resultado foreach (var resultadoItem in listaResultado) { //Verifica se existe colaboradores nessa votacao if (resultadoItem.Colaboradores == null) { //Caso nao, pode votar retorno = retornoSim; } else { //Percorre todos os colaboradores da votacao foreach (var colaborador in resultadoItem.Colaboradores) { //Verifica se o colaborador ja havia votado if (colaborador.ID == idColaborador) { retorno = retornoNao; } else { retorno = retornoSim; } } } } } } else { //Retorna nulo caso o parametro seja invalido retorno = retornoNulo; } //Retorna dados return Json(retorno, JsonRequestBehavior.AllowGet); }
//Verifica se votacao esta aberta public bool VotacaoAberta() { bool retorno; //Cria os objetos de resultado Resultado resultado = new Resultado(); List<Resultado> listaResultado = new List<Resultado>(); //Verifico se nao tem votacao apos a data atual, caso o usuario altere o horario do SO DateTime dataPosterior = DataVotacao().AddDays(1); if (resultado.LerResultado(dataPosterior).Count < 1) { retorno = true; } //Carrega lista de resultados listaResultado = resultado.LerResultado(DataVotacao()); int totalVotos = 0; //Faz contagem total dos votos if (listaResultado.Count > 0) { for (int i = 0; i < listaResultado.Count(); i++) { totalVotos += listaResultado[i].QuantidadeVotos; } //Busca quantidade total de colaboradores ColaboradorManager colaboradoresManager = new ColaboradorManager(); List<Colaborador> listaColaboradores = new List<Colaborador>(); listaColaboradores = colaboradoresManager.GetAll(); //Verifica quantos votos ainda podem ser computados int votosRestantes = listaColaboradores.Count() - totalVotos; //Verifica a diferenca de votos entre o primeiro e o segundo colocado int difVotos; if (listaResultado.Count() > 1) { difVotos = listaResultado[0].QuantidadeVotos - listaResultado[1].QuantidadeVotos; } else { difVotos = listaResultado[0].QuantidadeVotos; } //Caso a diferenca seja superior a quantidade de votos restantes, encerra votacao if (difVotos > votosRestantes) { retorno = false; } else { retorno = true; } } else { retorno = true; } return retorno; }