private async void RecusarChamada() { if (!_isPendencia) { ValidaTempoEspera(); } if (_expirouTempo && !_isPendencia) { await NavigationService.NavigateAsync("/NavigationPage/Home", useModalNavigation : true); } try { UserDialogs.Instance.ShowLoading("Processando..."); CancelarChamadaParam param = new CancelarChamadaParam(); param.chamada = chamada; param.codChamadaVeiculo = chamada.codChamadaVeiculo; param.dataCancelamento = DateTime.Now; param.codVeiculo = CrossSettings.Current.Get <RetornoVeiculosMotorista>("VeiculoSelecionado").codVeiculo; var json = JsonConvert.SerializeObject(param); var content = new StringContent(json, Encoding.UTF8, "application/json"); CrossSettings.Current.Remove("ChamadaParaResposta"); var response = await IniciarCliente(true).PostAsync("motorista/cancelarChamada", content); var navParam = new NavigationParameters(); if (!_isPendencia) { CrossSettings.Current.Set("RecusouChamada", true); } else { CrossSettings.Current.Set("RecusouChamadaPendente", true); } if (response.IsSuccessStatusCode) { // CrossSettings.Current.Remove("ChamadaParaResposta"); await DialogService.DisplayAlertAsync("Aviso", "Corrida recusada.", "OK"); await NavigationService.NavigateAsync("//NavigationPage/Home"); } else { await DialogService.DisplayAlertAsync("Aviso", response.Content.ReadAsStringAsync().Result, "OK"); await NavigationService.NavigateAsync("//NavigationPage/Home"); } } catch (AccessViolationException e) { await DialogService.DisplayAlertAsync("Aviso", e.Message, "OK"); } catch (Exception e) { Crashes.TrackError(e); await DialogService.DisplayAlertAsync("Aviso", "Falha ao recusar corrida", "OK"); } finally { UserDialogs.Instance.HideLoading(); } //CrossSettings.Current.Remove("ChamadaParaResposta"); //await NavigationService.NavigateAsync("//NavigationPage/Home"); }
private async void CancelarFinalizarCorrida() { Plugin.Geolocator.Abstractions.Position pos = await GetCurrentPosition(); CrossSettings.Current.Set("UltimaLocalizacaoValida", pos); if (TextoBotaoFinal.Equals("Cancelar")) { var resposta = await UserDialogs.Instance.ConfirmAsync("Cancelar Chamada?", "Cancelamento", "Sim", "Não"); if (resposta) { try { UserDialogs.Instance.ShowLoading("Processando..."); CancelarChamadaParam param = new CancelarChamadaParam(); param.chamada = Chamada; param.latitudeAtual = pos.Latitude.ToString(); param.longitudeAtual = pos.Longitude.ToString(); param.codChamadaVeiculo = Chamada.codChamadaVeiculo; param.dataCancelamento = DateTime.Now; param.codVeiculo = CrossSettings.Current.Get <RetornoVeiculosMotorista>("VeiculoSelecionado").codVeiculo; var json = JsonConvert.SerializeObject(param); var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await IniciarCliente(true).PostAsync("motorista/cancelarChamada", content); if (response != null) { if (response.IsSuccessStatusCode) { CrossSettings.Current.Remove("ChamadaAceita"); await DialogService.DisplayAlertAsync("Aviso", "Corrida cancelada.", "OK"); await NavigationService.NavigateAsync("/NavigationPage/Home", useModalNavigation : true); } else { AdicionarInfoPendente(json, "cancelarChamada"); CrossSettings.Current.Remove("ChamadaAceita"); await DialogService.DisplayAlertAsync("Aviso", "Corrida cancelada.", "OK"); await NavigationService.NavigateAsync("/NavigationPage/Home", useModalNavigation : true); // await DialogService.DisplayAlertAsync("Aviso", response.Content.ReadAsStringAsync().Result, "OK"); } } } catch (AccessViolationException e) { await DialogService.DisplayAlertAsync("Aviso", e.Message, "OK"); } catch (Exception e) { Crashes.TrackError(e); await DialogService.DisplayAlertAsync("Aviso", "Falha ao cancelar corrida", "OK"); } finally { UserDialogs.Instance.HideLoading(); } } } else { try { UserDialogs.Instance.ShowLoading("Processando..."); Chamada chamadaFinal = CrossSettings.Current.Get <Chamada>("ChamadaEmCorrida"); // MessagingCenter.Unsubscribe<ViewModelBase>(this, "MudancaValor"); MessagingCenter.Unsubscribe <ViewModelBase>(this, "MudancaPosicao"); // Plugin.Geolocator.Abstractions.Position pos = await GetCurrentPosition(); chamadaFinal.latitudeFinalCorrida = pos.Latitude.ToString(); chamadaFinal.longitudeFinalCorrida = pos.Longitude.ToString(); chamadaFinal.dataFimCorrida = DateTime.Now; CancelarChamadaParam param = new CancelarChamadaParam(); chamadaFinal.valorFinalAjustado = float.Parse(chamadaFinal.valorFinal).ToString("N2"); param.chamada = chamadaFinal; param.latitudeAtual = pos.Latitude.ToString(); param.longitudeAtual = pos.Longitude.ToString(); param.codChamadaVeiculo = chamadaFinal.codChamadaVeiculo; param.codVeiculo = CrossSettings.Current.Get <RetornoVeiculosMotorista>("VeiculoSelecionado").codVeiculo; CrossSettings.Current.Remove("ChamadaEmCorrida"); var json = JsonConvert.SerializeObject(param); var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await IniciarCliente(true).PostAsync("motorista/finalizarCorrida", content); // var response = await ChamarServicoPost(true, "finalizarCorrida", content); if (response != null) { if (response.IsSuccessStatusCode) { await DialogService.DisplayAlertAsync("Aviso", "Corrida finalizada.\nValor Final : R$" + param.chamada.valorFinalAjustado, "OK"); await NavigationService.NavigateAsync("/NavigationPage/Home", useModalNavigation : true); } else { await DialogService.DisplayAlertAsync("Aviso", response.Content.ReadAsStringAsync().Result, "OK"); } } } catch (Exception e) { Crashes.TrackError(e); await DialogService.DisplayAlertAsync("Aviso", "Falha ao finalizar corrida", "OK"); } finally { UserDialogs.Instance.HideLoading(); } } }