private async void EnviarRespostas() { await Task.Run(async() => { if (UtilAcessibilidade.VerificaAcessoInternet(this)) { ProgressDialog loading = null; RunOnUiThread(() => { loading = ProgressDialog.Show(this, "Enviando coletas realizadas", "Isso pode demorar um pouco.\nFavor aguardar!", true); }); var respostasDB = UtilDataBase.GetItems(QuestionarioDB.TableName); var questionariosInseridos = new List <ColetaEntradaDTO>(); var registro = new QuestionarioDB(); var request = new ColetaEntradaDTO(); string guid = string.Empty; var respostas = new List <RespostaDto>(); foreach (DataRow item in respostasDB.Rows) { registro.ConvertDr(item); if (guid != registro.Guid) { if (respostas.Count > 0) { request.Respostas = respostas; await WebService.PostSemSaida <ColetaEntradaDTO>(request, CaminhoWebService.RESPOSTAS, Aplicacao.Token); respostas = new List <RespostaDto>(); } request = new ColetaEntradaDTO() { Data = Convert.ToDateTime(registro.Data), Latitude = Convert.ToDouble(registro.Latitude), Longitude = Convert.ToDouble(registro.Longitude), }; } respostas.Add(new RespostaDto() { IdOpcaoResposta = registro.IdResposta > 0 ? (int?)registro.IdResposta : null, IdPergunta = registro.IdPergunta, Valor = registro.Resposta }); guid = registro.Guid; } if (respostas.Count > 0) { request.Respostas = respostas; await WebService.PostSemSaida <ColetaEntradaDTO>(request, CaminhoWebService.RESPOSTAS, Aplicacao.Token); respostas = new List <RespostaDto>(); } UtilDataBase.Delete(QuestionarioDB.TableName); if (loading.IsShowing && loading != null) { loading.Dismiss(); } RunOnUiThread(() => { Toast.MakeText(this, "Coletas sincronizadas com sucesso!", ToastLength.Long).Show(); ValidarExibicaoSicronizarColeta(); }); } else { Modal.ExibirModal(this, GetString(Resource.String.ConexaoInternetTitulo), "", GetString(Resource.String.ConexaoInternetMensagem)); } }); }