private List <SendQuestao> GenerateQuestaoToSend() { List <SendQuestao> sendQuestoes = new List <SendQuestao>(); for (int i = 0; i < _questoes.Count; i++) { Questao q = _questoes[i]; List <SendResposta> respostas = GenerateRespostaToSend(q.TipoQuestao, i); if (respostas.Count > 0) { SendQuestao sendQuestao = new SendQuestao(); sendQuestao.Id = q.QuestaoId; sendQuestao.Respostas = respostas; sendQuestoes.Add(sendQuestao); } } return(sendQuestoes); }
public int NextPage(int current, List <Logica> logica) { int jumpToPage = current + 1; if (logica == null || logica.Count <= 0) { return(jumpToPage); } IEnumerable <Logica> IELogica = logica; var ITLogica = IELogica.GetEnumerator(); while (ITLogica.MoveNext()) { Logica log = ITLogica.Current; bool temp = true; bool containsCurrentPage = false; IEnumerable <Regra> IERegras = log.Regras; var ITRegra = IERegras.GetEnumerator(); int page = 0; while (ITRegra.MoveNext()) { Regra regra = ITRegra.Current; page = pageFrom(regra.QuestaoId); containsCurrentPage = page == current; if (page > -1) { Questao questao = _questoes[page]; if (questao.TipoQuestao == 0) { temp &= true; continue; } else if (questao.TipoQuestao == 1) { temp &= true; continue; } else if (questao.TipoQuestao == 2) { temp &= true; continue; } else if (questao.TipoQuestao == 3) { temp &= true; continue; } else if (questao.TipoQuestao == 4) { temp &= true; continue; } else { continue; } } if (!temp) { break; } } if (temp && containsCurrentPage) { string action = log.Acao; if (action == "finish") { return(int.MaxValue); } if (!action.StartsWith("jump_")) { return(jumpToPage); } page = pageFrom(Convert.ToInt16(action.Replace("jump_", ""))); if (page <= -1 || page <= current) { return(jumpToPage); } return(page); } } return(jumpToPage); }