Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }