示例#1
0
        public override void AtribuirResposta(RespostaDTO resposta)
        {
            base.AtribuirResposta(resposta);

            if (resposta.RespostaGrade != null)
            {
                foreach (var item in resposta.RespostaGrade)
                {
                    var itemRespondido = Respostas.SingleOrDefault(d => d.LinhaPerguntaGradeID == item.LinhaPerguntaGradeID);
                    if (itemRespondido == null)
                    {
                        itemRespondido = new RespostaLinhaPerguntaGrade {
                            LinhaPerguntaGradeID = item.LinhaPerguntaGradeID,
                            OpcaoRespondidaID    = item.OpcaoRespondidaID
                        };
                        Respostas.Add(itemRespondido);
                    }
                    else
                    {
                        itemRespondido.OpcaoRespondidaID    = item.OpcaoRespondidaID;
                        itemRespondido.LinhaPerguntaGradeID = item.LinhaPerguntaGradeID;
                    }
                }
            }

            ControleAtualizacao = ControleUsuario.Criar(resposta.UsuarioID);
        }
示例#2
0
        public async Task <IActionResult> PutFaqtb004Sessao([FromBody] RespostaDTO resposta)
        {
            ListaConversaDTO lsResposta = new ListaConversaDTO();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Faqtb004Sessao faqtb004Sessao = _context.Faqtb004Sessao
                                            .Include(s => s.Faqtb006Envio)
                                            .Where(s => s.NuSessao == resposta.nuSessao)
                                            .FirstOrDefault()
            ;
            int nuUltimaConversa =
                faqtb004Sessao
                .Faqtb006Envio
                .OrderByDescending(e => e.DhEnvio)
                .FirstOrDefault().NuConversa;
            Faqtb002Conversa ultima = _context.Faqtb002Conversa
                                      .Include(c => c.Faqtb003RegraNuConversaAnteriorNavigation)
                                      .Include(c => c.IcTipoConversaNavigation)
                                      .Where(c => c.NuConversa == nuUltimaConversa)
                                      .FirstOrDefault()
            ;
            Faqtb005Resposta faqtb005Resposta = new Faqtb005Resposta(resposta.deResposta, ultima, resposta.nuSessao);

            _context.Faqtb005Resposta.Add(faqtb005Resposta);
            await _context.SaveChangesAsync();

            MotorConversa(lsResposta, faqtb004Sessao, ultima);
            await _context.SaveChangesAsync();

            lsResposta.nuSessao = faqtb004Sessao.NuSessao;
            return(Ok(lsResposta));
        }
示例#3
0
        public override void AtribuirResposta(RespostaDTO resposta)
        {
            base.AtribuirResposta(resposta);

            if (resposta.Valor != null)
            {
                Convert.ToDecimal(resposta.Valor);
            }
        }
示例#4
0
        public override void AtribuirResposta(RespostaDTO resposta)
        {
            base.AtribuirResposta(resposta);

            if (resposta.Valor != null)
            {
                Valor = Convert.ToDateTime(resposta.Valor);
            }
        }
示例#5
0
        public override void AtribuirResposta(RespostaDTO resposta)
        {
            base.AtribuirResposta(resposta);

            if (resposta.Valor != null)
            {
                Valor = resposta.Valor.ToString();
            }
        }
示例#6
0
        public override void AtribuirResposta(RespostaDTO resposta)
        {
            base.AtribuirResposta(resposta);

            if (resposta.OpcaoID != null && resposta.OpcaoID.HasValue)
            {
                OpcaoEscolhidaID = resposta.OpcaoID.Value;
            }
        }
示例#7
0
    private RespostaDTO CriaRespostaSemPreenchimento(int totalDeAlunos, int quantidadeTotalRespostasPergunta)
    {
        var respostaSemPreenchimento = new RespostaDTO();

        respostaSemPreenchimento.Nome        = "Sem preenchimento";
        respostaSemPreenchimento.quantidade  = totalDeAlunos - quantidadeTotalRespostasPergunta;
        respostaSemPreenchimento.porcentagem = (respostaSemPreenchimento.quantidade > 0 ? (respostaSemPreenchimento.quantidade * 100) / (Double)totalDeAlunos : 0).ToString("0.00");
        respostaSemPreenchimento.porcentagem = respostaSemPreenchimento.porcentagem;
        return(respostaSemPreenchimento);
    }
示例#8
0
        public override Resposta AtribuirResposta(RespostaDTO resposta)
        {
            base.AtribuirResposta(resposta);

            if (resposta.Valor != null)
            {
                Valor = Convert.ToDecimal(resposta.Valor);
            }

            return(this);
        }
示例#9
0
        public override Resposta AtribuirResposta(RespostaDTO resposta)
        {
            base.AtribuirResposta(resposta);

            if (resposta.Valor != null)
            {
                Valor = resposta.Valor.ToString();
            }

            return(this);
        }
示例#10
0
        public override void AtribuirResposta(RespostaDTO resposta)
        {
            base.AtribuirResposta(resposta);

            OpcoesEscolhida.Clear();
            OpcoesEscolhida = resposta.Opcoes.Select(c => new OpcaoRespondida
            {
                OpcaoID             = c,
                RespostaID          = resposta.RespostaID,
                ControleAtualizacao = ControleUsuario.Criar(resposta.UsuarioID)
            }).ToList();
        }
示例#11
0
        protected Resposta CriarResposta(RespostaDTO respostaDTO, eTipoPergunta tipoPergunta)
        {
            Resposta resposta = null;

            switch (tipoPergunta)
            {
            case eTipoPergunta.Texto:
                resposta = CreateInstance <RespostaTexto>();
                break;

            case eTipoPergunta.Anexo:
                resposta = CreateInstance <RespostaAnexo>();
                break;

            case eTipoPergunta.EscolhaUnica:
                resposta = CreateInstance <RespostaUnica>();
                break;

            case eTipoPergunta.Numero:
                resposta = CreateInstance <RespostaNumero>();
                break;

            case eTipoPergunta.Data:
                resposta = CreateInstance <RespostaData>();
                break;

            case eTipoPergunta.Grade:
                resposta = CreateInstance <RespostaGrade>();
                break;

            case eTipoPergunta.MultiplaEscolha:
                resposta = CreateInstance <RespostaMultipla>();
                break;

            default:
                throw new NotImplementedException();
            }

            try
            {
                resposta.AtribuirResposta(respostaDTO);
            }
            catch (Exception)
            {
                throw;
            }

            return(resposta);
        }
示例#12
0
        private void CalculaPercentualRespostas(int totalDeAlunos, PerguntaDTO pergunta, List <PerguntasRespostasDTO> listaPr, int totalRespostas)
        {
            foreach (var item in listaPr)
            {
                var resposta = new RespostaDTO();
                resposta.Nome        = item.RespostaDescricao;
                resposta.quantidade  = item.QtdRespostas;
                resposta.porcentagem = (item.QtdRespostas > 0 ? (item.QtdRespostas * 100) / (Double)totalDeAlunos : 0).ToString("0.00");
                pergunta.Respostas.Add(resposta);
            }

            var respostaSempreenchimento = CriaRespostaSemPreenchimento(totalDeAlunos, totalRespostas);

            pergunta.Respostas.Add(respostaSempreenchimento);
        }
示例#13
0
    private List <OrdemDTO> RetornaRelatorioPorOrdens(int totalDeAlunos, List <IGrouping <string, OrdemPerguntaRespostaDTO> > relatorioAgrupado)
    {
        var ListaOrdens = new List <OrdemDTO>();

        relatorioAgrupado.ForEach(ordemItem =>
        {
            var ordem       = new OrdemDTO();
            ordem.Ordem     = ordemItem.Where(y => y.OrdermId == ordemItem.Key).First().Ordem;
            ordem.Perguntas = new List <PerguntaDTO>();

            var relatorioAgrupadoPergunta = ordemItem.GroupBy(x => x.PerguntaId);

            relatorioAgrupadoPergunta.ForEach(x =>
            {
                var pergunta   = new PerguntaDTO();
                pergunta.Nome  = x.Where(y => y.PerguntaId == x.Key).First().PerguntaDescricao;
                pergunta.Total = new TotalDTO()
                {
                    Quantidade = totalDeAlunos,
                };

                pergunta.Total.Porcentagem = (pergunta.Total.Quantidade > 0 ? (pergunta.Total.Quantidade * 100) / (Double)totalDeAlunos : 0).ToString("0.00");
                pergunta.Respostas         = new List <RespostaDTO>();
                var totalRespostas         = x.Where(y => y.PerguntaId == x.Key).Sum(q => q.QtdRespostas);
                var listaPr = x.Where(y => y.PerguntaId == x.Key).ToList();

                foreach (var item in listaPr)
                {
                    var resposta         = new RespostaDTO();
                    resposta.Nome        = item.RespostaDescricao;
                    resposta.quantidade  = item.QtdRespostas;
                    resposta.porcentagem = (item.QtdRespostas > 0 ? (item.QtdRespostas * 100) / (Double)totalDeAlunos : 0).ToString("0.00");
                    pergunta.Respostas.Add(resposta);
                }


                var respostaSempreenchimento = CriaRespostaSemPreenchimento(totalDeAlunos, totalRespostas);
                pergunta.Respostas.Add(respostaSempreenchimento);



                ordem.Perguntas.Add(pergunta);
            });
            ListaOrdens.Add(ordem);
        });
        return(ListaOrdens);
    }
示例#14
0
        public Resposta CriarResposta(RespostaDTO respostaDTO, eTipoPergunta tipoPergunta)
        {
            Resposta resposta = null;

            switch (tipoPergunta)
            {
            case eTipoPergunta.Texto:
                resposta = new RespostaTexto();
                break;

            case eTipoPergunta.Anexo:
                resposta = new RespostaAnexo();
                break;

            case eTipoPergunta.EscolhaUnica:
                resposta = new RespostaUnica();
                break;

            case eTipoPergunta.Numero:
                resposta = new RespostaNumero();
                break;

            case eTipoPergunta.Data:
                resposta = new RespostaData();
                break;

            case eTipoPergunta.Grade:
                resposta = new RespostaGrade();
                break;

            case eTipoPergunta.MultiplaEscolha:
                resposta = new RespostaMultipla();
                break;

            default:
                throw new NotImplementedException();
            }

            resposta.AtribuirResposta(respostaDTO);

            return(resposta);
        }
示例#15
0
        public override void AtribuirResposta(RespostaDTO resposta)
        {
            Valor = new Respostas.RespostaAnexoContent
            {
                AnexoID  = 0,
                Checksum = null,
                Conteudo = Convert.FromBase64String((resposta.Valor ?? "").ToString()),
                Extensao = resposta.Extensao,
                Nome     = resposta.NomeArquivo,
                //Resposta = null,
                //RespostaID = resposta.RespostaID,
                UniqueIdentifier = Guid.NewGuid(),
                ControleUsuario  = new ComplexProperties.ControleUsuario
                {
                    Data      = DateTime.Now,
                    UsuarioID = resposta.UsuarioID
                }
            }.ComputeChecksum();

            Valor.Checksum = Valor.Conteudo.Checksum();
        }
示例#16
0
        public override Resposta AtribuirResposta(RespostaDTO resposta)
        {
            if (Valor == null)
            {
                Valor = new RespostaAnexoContent();
            }

            Valor.AnexoID         = Valor?.AnexoID ?? 0;
            Valor.Checksum        = null;
            Valor.Conteudo        = Convert.FromBase64String((resposta.Valor ?? "").ToString());
            Valor.Extensao        = resposta.Extensao;
            Valor.Nome            = resposta.NomeArquivo;
            Valor.ControleUsuario = new ComplexProperties.ControleUsuario
            {
                Data      = DateTime.Now,
                UsuarioID = resposta.UsuarioID
            };

            Valor.ComputeChecksum();

            return(this);
        }
示例#17
0
 public virtual Resposta AtribuirResposta(RespostaDTO resposta)
 {
     this.PerguntaID = resposta.PerguntaID;
     return(this);
 }
示例#18
0
 public void Add(RespostaDTO reposta)
 {
     throw new NotImplementedException();
 }
示例#19
0
 public void Update(RespostaDTO pergunta)
 {
     throw new NotImplementedException();
 }
示例#20
0
 public virtual void AtribuirResposta(RespostaDTO resposta)
 {
     this.PerguntaID = resposta.PerguntaID;
 }
示例#21
0
        protected RespostaDTO CriarRespostaDTO(Resposta r)
        {
            try
            {
                RespostaDTO resposta = new RespostaDTO
                {
                    OpcaoID       = null,
                    Opcoes        = null,
                    PerguntaID    = r.PerguntaID,
                    RespostaGrade = null,
                    RespostaID    = r.RespostaID,
                    UsuarioID     = r.ControleAtualizacao.UsuarioID,
                    Valor         = null
                };

                switch (CreateTipoPergunta(r.Pergunta))
                {
                case eTipoPergunta.Texto:
                    RespostaTexto rTexto = r as RespostaTexto;
                    resposta.Valor = rTexto.Valor;
                    break;

                case eTipoPergunta.EscolhaUnica:
                    RespostaUnica rUnica = r as RespostaUnica;
                    resposta.OpcaoID = rUnica.OpcaoEscolhidaID;
                    break;

                case eTipoPergunta.MultiplaEscolha:
                    RespostaMultipla rOpcoes = r as RespostaMultipla;
                    resposta.Opcoes = rOpcoes.OpcoesEscolhida.Select(c => c.OpcaoID).ToList();
                    break;

                case eTipoPergunta.Grade:
                    RespostaGrade rGrade = r as RespostaGrade;
                    resposta.RespostaGrade = rGrade.Respostas.Select(c => new RespostaGradeDTO
                    {
                        LinhaPerguntaGradeID = c.LinhaPerguntaGradeID,
                        OpcaoRespondidaID    = c.OpcaoRespondidaID
                    }).ToList();
                    break;

                case eTipoPergunta.Anexo:
                    RespostaAnexo rAnexo = r as RespostaAnexo;
                    //Lazy to performance
                    resposta.Valor = new { rAnexo.Valor.AnexoID, rAnexo.Valor.Nome, rAnexo.Valor.Extensao };
                    break;

                case eTipoPergunta.Numero:
                    RespostaNumero rNumero = r as RespostaNumero;
                    resposta.Valor = rNumero.Valor;
                    break;

                case eTipoPergunta.Data:
                    RespostaData rData = r as RespostaData;
                    resposta.Valor = rData.Valor;
                    break;

                default:
                    throw new NotImplementedException();
                }

                return(resposta);
            }
            catch (Exception)
            {
                throw;
            }
        }