예제 #1
0
        public async Task <List <FreteInfo> > listarFreteAsync()
        {
            var ret = await FreteFactory.create().listar();

            var regraMotorista = MotoristaFactory.create();
            var motorista      = regraMotorista.pegarAtual();
            var aux            = ret.Where(x => x.IdMotorista == motorista.Id);

            if (aux != null)
            {
                foreach (var entrega in aux)
                {
                    entrega.MostraP = true;
                }
            }
            var auxEstados = new List <FreteLocalInfo>();

            foreach (var entrega in ret)
            {
                foreach (var local in entrega.Locais)
                {
                    auxEstados.Add(local);
                }
            }
            _filtro.Estados = auxEstados.GroupBy(x => x.Uf).Select(y => y.First()).Where(a => a.Uf != null).Select(z => z.Uf).ToList();
            return(ret);
        }
예제 #2
0
        //private const string CLIENTE = "Preciso de um barco";
        //private const string MOTORISTA = "Sou marinheiro";

        public static LoginPage gerarLogin(Action aoLogar)
        {
            var loginPage = new LoginPage
            {
                Title = "Entrar"
            };

            loginPage.AoLogar += async(sender, usuario) => {
                if (usuario == null)
                {
                    await((Page)sender).DisplayAlert("Erro", "Usuário não informado.", "Fechar");
                    return;
                }
                var regraMotorista = MotoristaFactory.create();
                var motorista      = await regraMotorista.pegar(usuario.Id);

                if (motorista != null)
                {
                    regraMotorista.gravarAtual(motorista);
                }
                aoLogar?.Invoke();
                //App.Current.MainPage = App.gerarRootPage(new PrincipalPage());
            };
            return(loginPage);
        }
예제 #3
0
        public static async void buscarFreteComoMotorista(bool carregando = true)
        {
            if (carregando)
            {
                UserDialogs.Instance.ShowLoading("carregando...");
            }
            try
            {
                var regraMotorista = MotoristaFactory.create();
                var motorista      = regraMotorista.pegarAtual();
                var regraFrete     = FreteFactory.create();
                var fretes         = await regraFrete.listar(0, 0, FreteSituacaoEnum.ProcurandoMotorista);

                var freteListaPage = new FreteListaPage
                {
                    Title       = "Buscar atendimentos",
                    Fretes      = fretes,
                    FiltroBotao = false,
                    NovoBotao   = false
                };
                if (carregando)
                {
                    UserDialogs.Instance.HideLoading();
                }
                ((RootPage)App.Current.MainPage).PushAsync(freteListaPage);
            }
            catch (Exception e)
            {
                if (carregando)
                {
                    UserDialogs.Instance.HideLoading();
                }
                await UserDialogs.Instance.AlertAsync(e.Message, "Erro", "Entendi");
            }
        }
예제 #4
0
        public static async void listarMeuFreteComoMotorista()
        {
            UserDialogs.Instance.ShowLoading("carregando...");
            try
            {
                var regraMotorista = MotoristaFactory.create();
                var motorista      = regraMotorista.pegarAtual();
                var regraFrete     = FreteFactory.create();
                var fretes         = await regraFrete.listar(0, motorista.Id);

                var freteListaPage = new FreteListaPage
                {
                    Title       = "Meus atendimentos",
                    Fretes      = fretes,
                    FiltroBotao = false,
                    NovoBotao   = false
                };
                UserDialogs.Instance.HideLoading();
                ((RootPage)App.Current.MainPage).PushAsync(freteListaPage);
            }
            catch (Exception e)
            {
                UserDialogs.Instance.HideLoading();
                await UserDialogs.Instance.AlertAsync(e.Message, "Erro", "Entendi");
            }
        }
예제 #5
0
        public static async void atualizarPosicao(GPSLocalInfo local)
        {
            try
            {
                //var regraFrete = FreteFactory.create();
                //var frete = regraFrete.pegarAtual();
                var regraMotorista = MotoristaFactory.create();
                var motorista      = regraMotorista.pegarAtual();

                //if (motorista != null && frete != null)
                if (motorista != null)
                {
                    var retorno = await regraMotorista.atualizar(new MotoristaEnvioInfo
                    {
                        IdMotorista        = motorista.Id,
                        Latitude           = local.Latitude,
                        Longitude          = local.Longitude,
                        CodDisponibilidade = 1
                    });

                    if (AcompanhaPageAtual != null)
                    {
                        var mapaRota = new MapaRotaInfo
                        {
                            Distancia    = retorno.Distancia.HasValue ? retorno.Distancia.Value : 0,
                            DistanciaStr = retorno.DistanciaStr,
                            Tempo        = retorno.Tempo.HasValue ? retorno.Tempo.Value : 0,
                            TempoStr     = retorno.TempoStr,
                            PolylineStr  = retorno.Polyline,
                            PosicaoAtual = new Mapa.Model.LocalInfo
                            {
                                Latitude  = local.Latitude,
                                Longitude = local.Longitude
                            },
                            Polyline = MapaUtils.decodePolyline(retorno.Polyline)
                        };
                        if (string.IsNullOrEmpty(retorno.Polyline) && retorno.IdFrete.HasValue)
                        {
                            var regraFrete = FreteFactory.create();
                            var frete      = await regraFrete.pegar(retorno.IdFrete.Value);

                            mapaRota.Polyline = new List <Position>();
                            foreach (var freteLocal in frete.Locais)
                            {
                                mapaRota.Polyline.Add(new Position(freteLocal.Latitude, freteLocal.Longitude));
                            }
                        }
                        if (AcompanhaPageAtual != null)
                        {
                            AcompanhaPageAtual.atualizarMapa(mapaRota);
                        }
                    }
                }
            }
            catch (Exception erro)
            {
                UserDialogs.Instance.Alert(erro.Message, "Erro", "Entendi");
            }
        }
예제 #6
0
        private async void aceitar(FreteInfo frete)
        {
            var regraMotorista = MotoristaFactory.create();
            var motorista      = regraMotorista.pegarAtual();

            if (motorista == null)
            {
                await UserDialogs.Instance.AlertAsync("Você não é um motorista.", "Erro", "Entendi");

                return;
            }

            var aceitePage = new AceitePage {
                Frete = frete
            };

            aceitePage.AoAceitar += async(sender, f) => {
                UserDialogs.Instance.ShowLoading("aceitando...");
                try
                {
                    var regraFrete = FreteFactory.create();
                    var retorno    = await regraFrete.aceitar(new AceiteEnvioInfo
                    {
                        IdFrete     = frete.Id,
                        IdMotorista = motorista.Id,
                        Aceite      = true
                    });

                    if (retorno != null)
                    {
                        if (retorno.Aceite)
                        {
                            var novoFrete = await regraFrete.pegar(retorno.IdFrete);

                            UserDialogs.Instance.HideLoading();
                            AoAtualizarTela?.Invoke(this, novoFrete);
                        }
                        else
                        {
                            UserDialogs.Instance.HideLoading();
                            await UserDialogs.Instance.AlertAsync(retorno.Mensagem, "Erro", "Entendi");
                        }
                    }
                    else
                    {
                        UserDialogs.Instance.HideLoading();
                    }
                }
                catch (Exception erro)
                {
                    UserDialogs.Instance.HideLoading();
                    await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi");
                }
            };
            await Navigation.PushAsync(aceitePage);
        }
예제 #7
0
        private void acompanharClicked(object sender, EventArgs e)
        {
            var regraUsuario = UsuarioFactory.create();
            var usuario      = regraUsuario.pegarAtual();

            var regraMotorista = MotoristaFactory.create();
            var motorista      = regraMotorista.pegarAtual();

            if (motorista != null)
            {
                CaronaUtils.acompanharComoMotorista(Frete);
            }
            else
            {
                CaronaUtils.acompanharComoCliente(Frete);
            }
        }
예제 #8
0
        protected async void aceitarClicked(object sender, EventArgs e)
        {
            UserDialogs.Instance.ShowLoading("Efetuando pagamento...");
            try
            {
                var regraMotorista = MotoristaFactory.create();
                var motorista      = regraMotorista.pegarAtual();
                if (motorista == null)
                {
                    UserDialogs.Instance.HideLoading();
                    UserDialogs.Instance.Alert("Você não é um motorista.", "Erro", "Entendi");
                    return;
                }
                var regraCartao = PagamentoCartaoFactory.create();
                var cartoes     = await regraCartao.listar(motorista.Id);

                if (cartoes != null && cartoes.Count > 0)
                {
                    var pagamento      = gerarPagamento(motorista, _frete, cartoes[0]);
                    var regraPagamento = PagamentoFactory.create();
                    var retorno        = await regraPagamento.pagarComToken(pagamento);

                    if (retorno.Situacao == SituacaoPagamentoEnum.Pago)
                    {
                        pagamento = await regraPagamento.pegar(retorno.IdPagamento);

                        var mensagem = "Foram debitados R$ {0} do seu cartão de crédito.";
                        CrossLocalNotifications.Current.Show("Easy Barcos", string.Format(mensagem, pagamento.ValorTotalStr));

                        var regraFrete = FreteFactory.create();
                        _frete = await regraFrete.pegar(_frete.Id);

                        _frete.IdPagamento = pagamento.IdPagamento;
                        await regraFrete.alterar(_frete);

                        UserDialogs.Instance.HideLoading();
                        AoAceitar?.Invoke(this, _frete);
                    }
                    else
                    {
                        UserDialogs.Instance.HideLoading();
                        await DisplayAlert("Erro", retorno.Mensagem, "Entendi");
                    }
                }
                else
                {
                    UserDialogs.Instance.HideLoading();
                    var cartaoPage = new CartaoPage
                    {
                        UsaCredito   = true,
                        UsaDebito    = false,
                        TotalVisivel = true,
                        Pagamento    = gerarPagamento(motorista, _frete)
                    };
                    cartaoPage.AoEfetuarPagamento += async(s2, pagamento) =>
                    {
                        UserDialogs.Instance.ShowLoading("Atualizando frete...");
                        try
                        {
                            var regraFrete = FreteFactory.create();
                            _frete = await regraFrete.pegar(_frete.Id);

                            _frete.IdPagamento = pagamento.IdPagamento;
                            await regraFrete.alterar(_frete);

                            UserDialogs.Instance.HideLoading();
                            AoAceitar?.Invoke(this, _frete);
                        }
                        catch (Exception erro)
                        {
                            UserDialogs.Instance.HideLoading();
                            await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi");
                        }
                    };
                    await Navigation.PushAsync(cartaoPage);
                }
            }
            catch (Exception erro)
            {
                UserDialogs.Instance.HideLoading();
                await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi");
            }
        }
        private async void CadastroClicked(object sender, EventArgs e)
        {
            var usuario = Usuario;

            var regraUsuario = UsuarioFactory.create();

            /*
             * var antt = usuario.Preferencias.Where(x => x.Chave == "ANTT").FirstOrDefault();
             * if (!String.IsNullOrEmpty(_ANTTEntry.Text)) {
             *  if (antt != null) {
             *      antt.Valor = _ANTTEntry.Text;
             *  }
             *  else {
             *      usuario.Preferencias.Add(new UsuarioPreferenciaInfo {
             *          Chave = "ANTT",
             *          Valor = _ANTTEntry.Text
             *      });
             *  }
             * }
             */

            if (Gravar)
            {
                UserDialogs.Instance.ShowLoading("Enviando...");
            }
            try
            {
                if (String.IsNullOrEmpty(_CNHEntry.Text))
                {
                    await DisplayAlert("Aviso", "Preencha a CNH", "Fechar");

                    return;
                }

                /*
                 * var regraUsuario = UsuarioFactory.create();
                 * _usuario.Preferencias.Add(new UsuarioPreferenciaInfo
                 * {
                 *  Chave = "ANTT",
                 *  Valor = _ANTTEntry.Text
                 * });
                 */
                TipoVeiculoInfo    tipo       = (TipoVeiculoInfo)_TipoVeiculoEntry.Value;
                TipoCarroceriaInfo carroceria = (TipoCarroceriaInfo)_CarroceriaEntry.Value;

                var motorista = new MotoristaInfo
                {
                    Id       = _usuario.Id,
                    IdTipo   = tipo.Id,
                    Placa    = _PlacaEntry.Text,
                    Veiculo  = _VeiculoEntry.Text,
                    ANTT     = _ANTTEntry.Text,
                    Situacao = MotoristaSituacaoEnum.Ativo
                };
                if (carroceria != null)
                {
                    motorista.IdCarroceria = carroceria.Id;
                }

                if (Gravar)
                {
                    await regraUsuario.alterar(_usuario);

                    var regraMotorista = MotoristaFactory.create();
                    var motorista      = new MotoristaInfo
                    {
                        Id       = _usuario.Id,
                        Usuario  = _usuario,
                        IdTipo   = tipo.Id,
                        CNH      = _CNHEntry.Text,
                        Placa    = _PlacaEntry.Text,
                        ANTT     = _ANTTEntry.Text,
                        Situacao = MotoristaSituacaoEnum.Ativo,
                    };
                    if (carroceria != null)
                    {
                        motorista.IdCarroceria = carroceria.Id;
                    }
                    if (motorista.Id > 0)
                    {
                        await regraMotorista.alterar(motorista);
                    }
                    else
                    {
                        motorista.Id = await regraMotorista.inserir(motorista);
                    }
                    motorista = await regraMotorista.pegar(motorista.Id);

                    /*
                     * var motoristaAtual = await regraMotorista.pegar(_usuario.Id);
                     * if (motoristaAtual != null)
                     * {
                     *  await regraMotorista.alterar(motorista);
                     * }
                     * else
                     * {
                     *  await regraMotorista.inserir(motorista);
                     * }
                     */
                    //var usuarioCadastrado = await regraUsuario.pegar(_usuario.Id);
                    //motorista = await regraMotorista.pegar(_usuario.Id);
                    var regraUsuario = UsuarioFactory.create();
                    regraUsuario.gravarAtual(motorista.Usuario);
                    regraMotorista.gravarAtual(motorista);
                    UserDialogs.Instance.HideLoading();
                    AoCompletar?.Invoke(this, motoristaCadastrado);
                }
                else
                {
                    //UserDialogs.Instance.HideLoading();
                    AoCompletar?.Invoke(this, motorista);
                }
            }
            catch (Exception erro)
            {
                if (Gravar)
                {
                    UserDialogs.Instance.HideLoading();
                }
                await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi");
            }
        }
예제 #10
0
        private void atualizarTela(FreteInfo frete)
        {
            var regraUsuario = UsuarioFactory.create();
            var usuario      = regraUsuario.pegarAtual();

            var regraMotorista = MotoristaFactory.create();
            var motorista      = regraMotorista.pegarAtual();

            switch (frete.Situacao)
            {
            case FreteSituacaoEnum.ProcurandoMotorista:
                if (motorista != null && frete.IdUsuario != motorista.Id)
                {
                    _acaoButton.Text  = "Quero essa viagem";
                    _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO];
                    _mainLayout.Children.Add(_acaoButton);
                }
                break;

            case FreteSituacaoEnum.Aguardando:
                _acaoButton.Text  = "Iniciar";
                _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO];
                _mainLayout.Children.Add(_acaoButton);
                break;

            case FreteSituacaoEnum.PegandoEncomenda:
                if (motorista != null && frete.IdMotorista == motorista.Id)
                {
                    _acaoButton.Text  = "Peguei a encomenda";
                    _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO];
                    _mainLayout.Children.Add(_acaoButton);
                }
                break;

            case FreteSituacaoEnum.Entregando:
                if (motorista != null && frete.IdMotorista == motorista.Id)
                {
                    _acaoButton.Text  = "Entreguei!";
                    _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO];
                    _mainLayout.Children.Add(_acaoButton);
                }
                break;

            case FreteSituacaoEnum.Entregue:
                if (usuario != null && frete.IdUsuario == usuario.Id)
                {
                    _acaoButton.Text  = "Confirmar entrega!";
                    _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO];
                    _mainLayout.Children.Add(_acaoButton);
                }
                break;
            }
            var situacoes = new List <FreteSituacaoEnum>()
            {
                FreteSituacaoEnum.PegandoEncomenda,
                FreteSituacaoEnum.Entregando
            };

            if (situacoes.Contains(frete.Situacao))
            {
                _mainLayout.Children.Add(_acompanharButton);
            }

            _mainLayout.Children.Add(_abrirRotaButton);
            situacoes = new List <FreteSituacaoEnum>()
            {
                FreteSituacaoEnum.EntregaConfirmada,
                FreteSituacaoEnum.Entregue
            };
            if (situacoes.Contains(frete.Situacao))
            {
                if (frete.IdUsuario == usuario.Id && !(frete.NotaMotorista > 0))
                {
                    _avaliarButton.Text = "Avaliar Motorista";
                    _mainLayout.Children.Add(_avaliarButton);
                }
                else if (frete.IdMotorista == usuario.Id && !(frete.NotaFrete > 0))
                {
                    _avaliarButton.Text = "Avaliar Cliente";
                    _mainLayout.Children.Add(_avaliarButton);
                }
            }
        }
예제 #11
0
        private void atualizarTela(FreteInfo frete)
        {
            var regraUsuario = UsuarioFactory.create();
            var usuario      = regraUsuario.pegarAtual();

            var regraMotorista = MotoristaFactory.create();
            var motorista      = regraMotorista.pegarAtual();

            _mainLayout.Children.Clear();
            if (frete.RotaEncontrada)
            {
                if (!string.IsNullOrEmpty(frete.Polyline))
                {
                    _mainLayout.Children.Insert(0, _CustomMap);
                    var posicoes = MapaUtils.decodePolyline(frete.Polyline);
                    _CustomMap.Polyline = posicoes;
                }
                else
                {
                    if (frete.Locais.Count() > 0)
                    {
                        _mainLayout.Children.Insert(0, _CustomMap);
                        var posicoes = new List <Position>();
                        foreach (var local in frete.Locais)
                        {
                            posicoes.Add(new Position(local.Latitude, local.Longitude));
                        }
                        _CustomMap.Polyline = posicoes;
                    }
                }
            }
            else
            {
                if (frete.Locais.Count() > 0)
                {
                    _mainLayout.Children.Insert(0, _CustomMap);
                    var posicoes = new List <Position>();
                    foreach (var local in frete.Locais)
                    {
                        posicoes.Add(new Position(local.Latitude, local.Longitude));
                    }
                    _CustomMap.Polyline = posicoes;
                }
            }
            if (frete.NotaFrete > 0 && frete.NotaMotorista > 0)
            {
            }
            else if (frete.NotaFrete > 0)
            {
                var nota = gerarNota(frete.NotaFrete);
                nota.Margin = new Thickness(3, 6, 3, 0);
                _mainLayout.Children.Add(nota);
            }
            else if (frete.NotaMotorista > 0)
            {
                var nota = gerarNota(frete.NotaMotorista);
                nota.Margin = new Thickness(3, 6, 3, 0);
                _mainLayout.Children.Add(nota);
            }

            if (!(string.IsNullOrEmpty(frete.EnderecoOrigem) && string.IsNullOrEmpty(frete.EnderecoDestino)))
            {
                _mainLayout.Children.Add(gerarLocalizacao(frete));
            }
            _mainLayout.Children.Add(gerarBasico(frete));
            _mainLayout.Children.Add(gerarData(frete));
            var situacoes = new List <FreteSituacaoEnum>()
            {
                FreteSituacaoEnum.EntregaConfirmada,
                FreteSituacaoEnum.PegandoEncomenda,
                FreteSituacaoEnum.Entregando,
                FreteSituacaoEnum.Entregue
            };

            if (situacoes.Contains(frete.Situacao))
            {
                _mainLayout.Children.Add(gerarHorario(frete));
            }
            if (frete.IdUsuario != usuario.Id)
            {
                _mainLayout.Children.Add(gerarUsuario(frete.Usuario, "RESPONSÁVEL"));
            }
            if (frete.Motorista != null && frete.Motorista.Usuario != null && frete.IdMotorista != usuario.Id)
            {
                _mainLayout.Children.Add(gerarUsuario(frete.Motorista.Usuario, "MOTORISTA"));
            }
            _mainLayout.Children.Add(_acaoView);
            _acaoView.Frete = frete;
        }
예제 #12
0
        protected override void OnBindingContextChanged()
        {
            base.OnBindingContextChanged();
            var frete = (FreteInfo)BindingContext;

            var regraUsuario = UsuarioFactory.create();
            var usuario      = regraUsuario.pegarAtual();

            var regraMotorista = MotoristaFactory.create();
            var motorista      = regraMotorista.pegarAtual();

            var regraFrete = FreteFactory.create();
            var freteAtual = regraFrete.pegarAtual();

            _mainLayout.Children.Add(new StackLayout
            {
                Orientation       = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.Fill,
                VerticalOptions   = LayoutOptions.Start,
                Spacing           = 5,
                Children          =
                {
                    new IconImage {
                        HorizontalOptions = LayoutOptions.Start,
                        VerticalOptions   = LayoutOptions.Center,
                        //Icon = "fa-truck",
                        Icon         = "fa-ship",
                        IconSize     = 20,
                        WidthRequest = 20,
                        IconColor    = Estilo.Current.PrimaryColor
                    },
                    _SituacaoLabel
                }
            });
            if (frete != null && !string.IsNullOrEmpty(frete.EnderecoDestino))
            {
                _mainLayout.Children.Add(new StackLayout
                {
                    Orientation       = StackOrientation.Horizontal,
                    HorizontalOptions = LayoutOptions.Fill,
                    VerticalOptions   = LayoutOptions.Start,
                    Spacing           = 5,
                    Children          =
                    {
                        new IconImage {
                            HorizontalOptions = LayoutOptions.Start,
                            VerticalOptions   = LayoutOptions.Start,
                            Icon         = "fa-map-marker",
                            IconSize     = 16,
                            WidthRequest = 20,
                            IconColor    = Estilo.Current.PrimaryColor
                        },
                        _OrigemLabel
                    }
                });
            }
            _mainLayout.Children.Add(gerarAtributo(frete));
            if (frete != null && !string.IsNullOrEmpty(frete.Dimensao))
            {
                _mainLayout.Children.Add(new StackLayout
                {
                    Orientation       = StackOrientation.Horizontal,
                    HorizontalOptions = LayoutOptions.Fill,
                    VerticalOptions   = LayoutOptions.Start,
                    Spacing           = 5,
                    Children          =
                    {
                        new IconImage {
                            HorizontalOptions = LayoutOptions.Start,
                            VerticalOptions   = LayoutOptions.Center,
                            Icon         = "fa-arrows-alt",
                            IconSize     = 16,
                            WidthRequest = 20,
                            IconColor    = Estilo.Current.PrimaryColor
                        },
                        _DimensaoLabel
                    }
                });
            }
            if (motorista != null)
            {
                _mainLayout.Children.Add(new StackLayout
                {
                    Orientation       = StackOrientation.Horizontal,
                    HorizontalOptions = LayoutOptions.Fill,
                    VerticalOptions   = LayoutOptions.Start,
                    Spacing           = 5,
                    Children          =
                    {
                        new IconImage {
                            HorizontalOptions = LayoutOptions.Start,
                            VerticalOptions   = LayoutOptions.Center,
                            Icon         = "fa-user",
                            IconSize     = 16,
                            WidthRequest = 20,
                            IconColor    = Estilo.Current.PrimaryColor
                        },
                        new Label     {
                            HorizontalOptions = LayoutOptions.Start,
                            VerticalOptions   = LayoutOptions.Start,
                            FontAttributes    = FontAttributes.Bold,
                            TextColor         = Estilo.Current.PrimaryColor,
                            Text = frete.Usuario.Nome
                        }
                    }
                });
                if (freteAtual != null && freteAtual.Id == frete.Id && frete.IdMotorista == motorista.Id)
                {
                    _mainLayout.Children.Add(new StackLayout
                    {
                        Orientation       = StackOrientation.Horizontal,
                        HorizontalOptions = LayoutOptions.Fill,
                        VerticalOptions   = LayoutOptions.Start,
                        Spacing           = 5,
                        Children          =
                        {
                            new IconImage {
                                HorizontalOptions = LayoutOptions.Start,
                                VerticalOptions   = LayoutOptions.Center,
                                Icon         = "fa-truck",
                                IconSize     = 16,
                                WidthRequest = 20,
                                IconColor    = Estilo.Current.PrimaryColor
                            },
                            new Label     {
                                HorizontalOptions = LayoutOptions.Start,
                                VerticalOptions   = LayoutOptions.Start,
                                FontAttributes    = FontAttributes.Bold,
                                TextColor         = Estilo.Current.PrimaryColor,
                                Text = "Em Andamento"
                            }
                        }
                    });
                }
            }
            else if (frete.IdMotorista > 0)
            {
                _mainLayout.Children.Add(new StackLayout
                {
                    Orientation       = StackOrientation.Horizontal,
                    HorizontalOptions = LayoutOptions.Fill,
                    VerticalOptions   = LayoutOptions.Start,
                    Spacing           = 5,
                    Children          =
                    {
                        new IconImage {
                            HorizontalOptions = LayoutOptions.Start,
                            VerticalOptions   = LayoutOptions.Center,
                            Icon         = "fa-user",
                            IconSize     = 16,
                            WidthRequest = 20,
                            IconColor    = Estilo.Current.PrimaryColor
                        },
                        new Label     {
                            HorizontalOptions = LayoutOptions.Start,
                            VerticalOptions   = LayoutOptions.Start,
                            FontAttributes    = FontAttributes.Bold,
                            TextColor         = Estilo.Current.PrimaryColor,
                            Text = frete.Motorista.Usuario.Nome
                        }
                    }
                });
            }
        }
예제 #13
0
        public async static void inicializar()
        {
            var regraUsuario = UsuarioFactory.create();
            var usuario      = regraUsuario.pegarAtual();

            if (usuario == null)
            {
                return;
            }
            UserDialogs.Instance.ShowLoading("carregando...");
            try
            {
                var regraFrete = FreteFactory.create();
                var fretes     = await regraFrete.listar(usuario.Id, usuario.Id);

                if (fretes.Count() > 0)
                {
                    var frete     = regraFrete.pegarAtual();
                    var situacoes = new List <FreteSituacaoEnum>()
                    {
                        FreteSituacaoEnum.PegandoEncomenda,
                        FreteSituacaoEnum.Entregando
                    };
                    var freteAtual = (
                        from f in fretes
                        where (frete == null || f.Id == frete.Id) && situacoes.Contains(f.Situacao)
                        select f
                        ).FirstOrDefault();
                    if (freteAtual != null)
                    {
                        regraFrete.gravarAtual(freteAtual);
                    }
                    else
                    {
                        regraFrete.limparAtual();
                    }
                }
                else
                {
                    regraFrete.limparAtual();
                }
                var regraMotorista = MotoristaFactory.create();
                var motorista      = regraMotorista.pegarAtual();
                var freteInfo      = regraFrete.pegarAtual();
                if (motorista != null)
                {
                    if (motorista.Situacao == MotoristaSituacaoEnum.AguardandoAprovacao)
                    {
                        UserDialogs.Instance.Alert("Conta de motorista aguardando aprovação!", "Aviso", "Entendi");
                    }
                    else
                    {
                        if (freteInfo != null)
                        {
                            CaronaUtils.acompanharComoMotorista(freteInfo);
                        }
                        else
                        {
                            CaronaUtils.buscarFreteComoMotorista(false);
                        }
                    }
                }
                else
                {
                    if (freteInfo != null)
                    {
                        CaronaUtils.acompanharComoCliente(freteInfo);
                    }
                    else
                    {
                        CaronaUtils.criar();
                    }
                }
                UserDialogs.Instance.HideLoading();
            }
            catch (Exception e)
            {
                UserDialogs.Instance.HideLoading();
                await UserDialogs.Instance.AlertAsync(e.Message, "Erro", "Entendi");
            }
        }