Exemple #1
0
        public void GravarResposta(RespostaQuestionarioForm resposta, string usuario)
        {
            IdentidadeApp app = _conexao.Table <IdentidadeApp>().FirstOrDefault();

            string idDevice;

            if (app == null)
            {
                idDevice = Guid.NewGuid().ToString("d");
            }
            else
            {
                idDevice = app.IdDevice;
            }

            resposta.IdDevice = idDevice;
            DateTime dataHora = DateTime.Now;

            resposta.DataHoraDevice = dataHora;
            resposta.Usuario        = usuario;

            _conexao.Insert(new QuestionarioRespondido()
            {
                Formulario       = JsonConvert.SerializeObject(resposta),
                DataHoraResposta = dataHora,
                Usuario          = usuario,
                IdDevice         = idDevice
            });
        }
Exemple #2
0
        public void GravarQuestionario(RespostaQuestionarioForm questionarioForm)
        {
            RespostaQuestionario questionario = new RespostaQuestionario();

            questionario.IdtRespostaQuestionario = questionarioForm.IdtRespostaQuestionario;

            questionario.NomQuestionario = questionarioForm.NomeRelatorio;

            questionario.Objeto = JsonConvert.SerializeObject(questionarioForm);

            _conexao.Insert(questionario);
        }
Exemple #3
0
        public static RespostaQuestionarioForm BaixarQuestionario(long id)
        {
            string urlAux = String.Format(UrlBase, "/Questionario/Preencher?Id=" + id.ToString());

            RespostaQuestionarioForm resultado = null;

            HttpClient          requisicao = new HttpClient();
            HttpResponseMessage resposta   = requisicao.GetAsync(urlAux).GetAwaiter().GetResult();

            if (resposta.StatusCode == HttpStatusCode.OK)
            {
                resultado = JsonConvert.DeserializeObject <RespostaQuestionarioForm>(resposta.Content.ReadAsStringAsync().Result);
            }

            return(resultado);
        }
Exemple #4
0
        public static bool TransmitirResposta(RespostaQuestionarioForm form)
        {
            string urlGravar = String.Format(UrlBase, "Questionario/GravarRespostas");
            bool   sucesso   = false;

            HttpClient requisicao = new HttpClient();

            requisicao.DefaultRequestHeaders.Accept.Clear();
            requisicao.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            var content = new StringContent(JsonConvert.SerializeObject(form), Encoding.UTF8, "application/json");

            HttpResponseMessage resposta = requisicao.PostAsync(urlGravar, content).GetAwaiter().GetResult();

            if (resposta.StatusCode != HttpStatusCode.OK)
            {
                sucesso = true;
            }

            return(sucesso);
        }
Exemple #5
0
        public async void AcaoSincronizar(object sender, EventArgs args)
        {
            try
            {
                try
                {
                    (sender as Button).IsEnabled = false;
                    activityIndicator.IsVisible  = true;
                    await Task.Delay(500);

                    AcessoBanco banco = new AcessoBanco();

                    string usuario = Session.Instance.UsuarioLogado.IdAspNetUser;

                    List <long> questionarios = UsuarioServico.PegarQuestionariosUsuario(usuario);

                    banco.GravarQuestionariosUsuario(usuario, questionarios);

                    foreach (var item in questionarios)
                    {
                        if (!banco.ExisteQuestionario(item))
                        {
                            RespostaQuestionarioForm rqf = UsuarioServico.BaixarQuestionario(item);

                            banco.GravarQuestionario(rqf);
                        }
                    }

                    List <Municipio> municipios = UsuarioServico.BaixarMunicipios();

                    foreach (var item in municipios)
                    {
                        banco.GravarMunicipio(item);
                    }

                    List <AlternativaICQ> alteranativas = UsuarioServico.BaixarAlternativas();

                    foreach (var item in alteranativas)
                    {
                        banco.GravarAlternativa(item);
                    }

                    List <OpcaoTipoResposta> opcoes = UsuarioServico.BaixarOpcoes();

                    foreach (var item in opcoes)
                    {
                        banco.GravarOpcao(item);
                    }

                    List <QuestionarioRespondido> pendentes = banco.ListarRespostasNaoEnvidas();

                    foreach (var item in pendentes)
                    {
                        RespostaQuestionarioForm formTmp = JsonConvert.DeserializeObject <RespostaQuestionarioForm>(item.Formulario);
                        if (UsuarioServico.TransmitirResposta(formTmp))
                        {
                            banco.MarcarRespostaComoEnviada(item.Id);
                        }
                    }

                    lblUltimaSincronizacao.Text = banco.GravarUltimaSincronizacao(usuario).ToString("dd/MM/yyyy HH:mm:ss");

                    activityIndicator.IsVisible = false;
                    await DisplayAlert("Sincronização", "Efetuada com Sucesso!", "OK");
                }
                catch (Exception e)
                {
                    activityIndicator.IsVisible = false;
                    await DisplayAlert("Falha na Sincronização", e.Message, "OK");
                }
            }
            finally
            {
                (sender as Button).IsEnabled = true;
            }
        }
Exemple #6
0
        public ResponderQuestionario(long id)
        {
            InitializeComponent();

            _alternativas            = new Dictionary <int, RadioButtonGroupView>();
            _opcoes                  = new Dictionary <int, RadioButtonGroupView>();
            _IdtRespostaQuestionario = id;

            AcessoBanco banco = new AcessoBanco();

            RespostaQuestionario questionario = banco.PegarQuestionario(id);

            _form = JsonConvert.DeserializeObject <RespostaQuestionarioForm>(questionario.Objeto);

            List <Municipio> municipios = banco.ListarMunicipios();

            List <AlternativaICQ> alternativas = banco.ListarAlternativas();

            List <OpcaoTipoResposta> opcoes = banco.ListarOpcoes();

            NomeRelatorio.Text  = _form.NomeRelatorio;
            TextoCabecalho.Text = _form.TextoCabecalho;

            foreach (var item in municipios)
            {
                Municipio.Items.Add(item.NomMunicipio);
            }

            foreach (var item in _form.RespostasPerfil)
            {
                StackLayoutPrincipal.Children.Add(new Label()
                {
                    Text = item.DescPergunta
                });

                var rbgAlternativa = new RadioButtonGroupView();

                foreach (var alternativa in alternativas.Where(a => a.IdtItemCabecalhoQuestionario == item.IdtItemCabecalhoQuestionario).ToList())
                {
                    rbgAlternativa.Children.Add(new RadioButton()
                    {
                        Value        = alternativa.IdtAlternativaICQ,
                        Text         = alternativa.DescAlternativa,
                        TextFontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label))
                    });
                }

                StackLayoutPrincipal.Children.Add(rbgAlternativa);
                _alternativas.Add(item.IdtItemCabecalhoQuestionario, rbgAlternativa);
            }

            foreach (var item in _form.Competencias)
            {
                StackLayoutPrincipal.Children.Add(new Label()
                {
                    Text     = item.DescCompetencia,
                    FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label))
                });
                AdicionarLinha();

                foreach (var resposta in item.Respostas)
                {
                    StackLayoutPrincipal.Children.Add(new Label()
                    {
                        Text = resposta.DescPergunta
                    });

                    var rbgOpcao = new RadioButtonGroupView();

                    foreach (var opcao in opcoes.Where(o => o.IdtTipoResposta == resposta.IdtTipoResposta).ToList())
                    {
                        rbgOpcao.Children.Add(new RadioButton()
                        {
                            Value        = opcao.IdtOpcaoTipoResposta,
                            Text         = opcao.DescOpcao,
                            TextFontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label))
                        });
                    }
                    StackLayoutPrincipal.Children.Add(rbgOpcao);
                    _opcoes.Add(resposta.IdtQuestionarioPergunta, rbgOpcao);
                }
            }


            Button btnConfirmar = new Button()
            {
                Text = "Salvar",
                HorizontalOptions = LayoutOptions.Center,
                Margin            = 20
            };

            btnConfirmar.Clicked += Salvar;

            StackLayoutPrincipal.Children.Add(btnConfirmar);
        }
Exemple #7
0
        private void Salvar(object sender, EventArgs args)
        {
            if (_executandoBotao)
            {
                return;
            }
            try
            {
                _executandoBotao = true;
                if (Municipio.SelectedIndex == -1)
                {
                    DisplayAlert("Questionário", "Selecione o Município!", "OK");
                    return;
                }

                foreach (var item in _opcoes)
                {
                    if (item.Value.SelectedIndex == -1)
                    {
                        DisplayAlert("Questionário", "Uma ou mais perguntas estão sem resposta selecionada!", "OK");
                        return;
                    }
                }

                foreach (var item in _alternativas)
                {
                    if (item.Value.SelectedIndex == -1)
                    {
                        DisplayAlert("Questionário", "Uma ou mais perguntas estão sem resposta selecionada!", "OK");
                        return;
                    }
                }

                AcessoBanco banco = new AcessoBanco();

                Municipio municipio = banco.PegarMunicipioPorNome((string)Municipio.SelectedItem);

                _form.Municipio = municipio;

                foreach (var item in _form.RespostasPerfil)
                {
                    item.IdtAlternativaICQ = (int)_alternativas[item.IdtItemCabecalhoQuestionario].SelectedItem;
                }

                foreach (var comp in _form.Competencias)
                {
                    foreach (var item in comp.Respostas)
                    {
                        item.IdtOpcaoTipoResposta = (int)_opcoes[item.IdtQuestionarioPergunta].SelectedItem;
                    }
                }

                banco.GravarResposta(_form, Session.Instance.UsuarioLogado.IdAspNetUser);

                try
                {
                    List <QuestionarioRespondido> pendentes = banco.ListarRespostasNaoEnvidas();

                    foreach (var item in pendentes)
                    {
                        RespostaQuestionarioForm formTmp = JsonConvert.DeserializeObject <RespostaQuestionarioForm>(item.Formulario);
                        if (UsuarioServico.TransmitirResposta(formTmp))
                        {
                            banco.MarcarRespostaComoEnviada(item.Id);
                        }
                    }
                }
                catch (Exception)
                {
                }

                DisplayAlert("Questionário", "Incluído com Sucesso", "OK");
                Navigation.PopAsync();
            }
            finally
            {
                _executandoBotao = false;
            }
        }