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 }); }
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); }
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); }
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); }
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; } }
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); }
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; } }