public void DesativarAncora(PosicaoHistorico posicaoHistorico) { ModelPosicao _modelPosicao = new ModelPosicao(); _tokensource = new CancellationTokenSource(); Task.Run(async() => { ServiceResult <Int32> result = new ServiceResult <Int32>(); _view.ExibirLoad(); BtnTopIsEnabled = false; try { result = await _modelPosicao.DesativarAncora( posicaoHistorico , _tokensource.Token ); } catch { result.MessageError = "Exception"; } finally { DesativarAncora_Finish( result , posicaoHistorico ); } }, _tokensource.Token); }
private void BuscarPosicao() { try { _tokensource = new CancellationTokenSource(); Task.Run(async() => { try { //Task.Run(async () => //{ if (String.IsNullOrEmpty(_posicaoDetalhes.Endereco)) { String endereco = await FindAddressByPosition(_posicaoDetalhes.Latitude.Value, _posicaoDetalhes.Longitude.Value); _posicaoDetalhes.Endereco = endereco; } //}); BtnTopIsEnabled = false; ModelPosicao _modelPosicao = new ModelPosicao(); Device.BeginInvokeOnMainThread(() => { this._bllMapa.LimpaMapa(); }); Int64?idPosicao = null; if (_posicaoDetalhes.ExibeUltimaPosicao == false) { idPosicao = _posicaoDetalhes.IdPosicao; } ServiceResult <Posicao> resultPainel = await _modelPosicao.Get( idPosicao , _posicaoDetalhes.IdUnidadeRastreada , _posicaoDetalhes.OrdemRastreador , _tokensource.Token ); if (!_tokensource.IsCancellationRequested) { UpdateToken(resultPainel.RefreshToken); if (String.IsNullOrWhiteSpace(resultPainel.MessageError)) { Posicao tempPosicao = resultPainel.Data; if (tempPosicao.Latitude != null) { tempPosicao.Endereco = _posicaoDetalhes.Endereco; PainelResumoListViewSource = tempPosicao; PosicaoHistorico posicao = new PosicaoHistorico() { CorRegraPrioritaria = tempPosicao.CorRegraPrioritaria, DataEvento = tempPosicao.DataEvento.ToLocalTime(), Identificacao = tempPosicao.Identificacao, IdTipoUnidadeRastreada = tempPosicao.IdTipoUnidadeRastreada, //Ignicao = tempPosicao.Ignicao, Latitude = tempPosicao.Latitude, Longitude = tempPosicao.Longitude, NomeRegraViolada = tempPosicao.NomeRegraViolada, Velocidade = tempPosicao.Velocidade, ResponsavelUnidadeRastreada = tempPosicao.ResponsavelUnidadeRastreada, Endereco = _posicaoDetalhes.Endereco }; if (tempPosicao.Ignicao != null) { posicao.Ignicao = tempPosicao.Ignicao; } //Monta StreetView MontaStreetView(posicao.Latitude.Value, posicao.Longitude.Value); posicao.ExibeUltimaPosicao = _posicaoDetalhes.ExibeUltimaPosicao; posicao.IdUnidadeRastreada = _posicaoDetalhes.IdUnidadeRastreada; if (tempPosicao.Ancora_Latitude != null) { posicao.Ancora_Latitude = tempPosicao.Ancora_Latitude; posicao.Ancora_Longitude = tempPosicao.Ancora_Longitude; posicao.Ancora_Tolerancia = tempPosicao.Ancora_Tolerancia; } posicao.OrdemRastreador = _posicaoDetalhes.OrdemRastreador; if (_painelDto.Id == 2 && _posicaoDetalhes.CorRegraPrioritaria != null) //Fixa Cor Alerta { posicao.CorRegraPrioritaria = _posicaoDetalhes.CorRegraPrioritaria; posicao.NomeRegraViolada = _posicaoDetalhes.NomeRegraViolada; } _view.MontaDetalheTopoPosicao(posicao); _posicaoHistorico = posicao; PainelSensoresListViewSource = tempPosicao.Sensores; PainelAtuadoresListViewSource = tempPosicao.Atuadores; PainelTelemetriaListViewSource = tempPosicao.Telemetrias; PainelInformacoesListViewSource = tempPosicao.Informacoes; //Monta Mapa da Posicao MontaMapa(posicao); if (posicao.Ancora_Tolerancia != null) { _bllMapa.MontaMapaAncora(posicao, posicao.Ancora_Tolerancia.Value); } } else { this._messageService.ShowAlertAsync(AppResources.NaoHaDetalhesPosicao); } } else { ShowErrorAlert(resultPainel.MessageError); } _view.EscondeLoad(); this.PainelDetalhes_IsRefreshing = false; BtnTopIsEnabled = true; } } catch (Exception ex) { ShowErrorAlert("Exception"); } }, _tokensource.Token); } catch (Exception ex) { ShowErrorAlert("Exception"); } }