Ejemplo n.º 1
0
        private async void GetCombustivel()
        {
            List <Models.Combustivel> combustiveis = await ds.GetCombustivelAsync();

            combustivel = controller.GetCombustivelByCadastro(combustiveis, user);
            InitializeComponent();
            txtEtanol.Text   = "R$" + combustivel.etanol.ToString("F");
            txtDiesel.Text   = "R$" + combustivel.diesel.ToString("F");
            txtGasolina.Text = "R$" + combustivel.gasolina.ToString("F");
            txtOutro.Text    = "R$" + combustivel.outro.ToString("F");
        }
Ejemplo n.º 2
0
        private async void btnIniciarFinalizar(object sender, EventArgs e)
        {
            if (!iniciado)
            {
                try
                {
                    var locator = CrossGeolocator.Current;                                           //Variavel que vai atribuir Localização atual
                    locator.DesiredAccuracy = 50;                                                    //Precisão 50mt
                    var position = await locator.GetPositionAsync(timeout : new TimeSpan(0, 0, 10)); //Pega posição do celular

                    iniciado = true;
                    btnIniciarFinalizarPercurso.Text            = "Finalizar Percurso";
                    btnIniciarFinalizarPercurso.BackgroundColor = Color.Red;
                    carro.status = "Em movimento";
                    await dsCarro.UpdateCarroAsync(carro); //atualizando o status do carro

                    txtStatus.Text      = "Status:" + carro.status;
                    txtStatus.TextColor = Color.Red;
                    tempoInicio         = DateTime.UtcNow;
                    latitudeInicial     = position.Latitude;
                    longitudeInicial    = position.Longitude;
                    CalculaDistancia();
                    await CrossExternalMaps.Current.NavigateTo("", latitudeFinal, longitudeFinal); //acessa o mapa padrão
                }
                catch (Exception ex)
                {
                    await DisplayAlert("Erro", "Ative sua Localização para continuar.", "OK");
                }
            }
            else
            {
                try
                {
                    relatorio = new Models.Relatorio
                    {
                        carro       = carro.placa.Trim(),
                        endinicial  = txtEndinic.Text.Trim(),
                        endfinal    = txtEndfinal.Text.Trim(),
                        datainicial = tempoInicio.AddHours(-3),
                        datafinal   = DateTime.UtcNow.AddHours(-3)
                    };
                }
                catch (Exception ex)
                {
                    await DisplayAlert("Erro:", "Preencha todos os campos.", "OK");
                }
                try
                {
                    finalizado = true;
                    var locator = CrossGeolocator.Current;                                           //Variavel que vai atribuir Localização atual
                    locator.DesiredAccuracy = 50;                                                    //Precisão 50mt
                    var position = await locator.GetPositionAsync(timeout : new TimeSpan(0, 0, 10)); //Pega posição do celular

                    latitudeFinal  = position.Latitude;
                    longitudeFinal = position.Longitude;

                    Location locationInic        = new Location(latitudeInicial, longitudeInicial);
                    Location locationFinal       = new Location(latitudeFinal, longitudeFinal);
                    var      distanciaPercorrida = distancia + Location.CalculateDistance(locationInic, locationFinal, DistanceUnits.Kilometers);

                    carro.status   = "Parado";
                    carro.kmatual += float.Parse((distanciaPercorrida).ToString("N3"));        //3 casas decimais - Soma e iguala ao kmatual
                    await dsCarro.UpdateCarroAsync(carro);                                     //atualiza os valores do carro no banco

                    relatorio.kmpercorridos = float.Parse(distanciaPercorrida.ToString("N3")); //insere no relatório o valores

                    List <Models.Combustivel> combustiveis = await dsCombustivel.GetCombustivelAsync();

                    Models.Combustivel combustivel = combController.GetCombustivelByCadastro(combustiveis, user);

                    relController.AddRelatorio(relatorio, combustivel, carro, combustivelUtilizado); //instância para calcular o custo

                    await Navigation.PushAsync(new FinalizaPercurso(user, carro, relatorio));

                    Navigation.RemovePage(Navigation.NavigationStack[Navigation.NavigationStack.Count - 2]);
                }
                catch (Exception ex)
                {
                    await DisplayAlert("Erro:", "Ative sua Localização para continuar.", "OK");
                }
            }
        }