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); }
//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); }
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"); } }
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"); } }
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"); } }
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); }
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); } }
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"); } }
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); } } }
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; }
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 } } }); } }
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"); } }