Пример #1
0
        public void Cadastrar(Vaga novaVaga)
        {
            novaVaga.IdEnderecoNavigation = EnderecoUtils.BuscarEndereco(novaVaga.IdEnderecoNavigation.Cep);

            // Adiciona novaVaga
            ctx.Vaga.Add(novaVaga);

            // Salva as informações para serem gravadas no banco de dados
            ctx.SaveChanges();
        }
Пример #2
0
        /// <summary>
        /// Cadastra um novo candidato
        /// </summary>
        /// <param name="novoCandidato"></param>
        public void Cadastrar(Candidato novoCandidato)
        {
            novoCandidato.IdUsuarioNavigation.IdTipoUsuario = (int)Enums.TipoUsuario.CANDIDATO;
            novoCandidato.IdStatusUsuario = (int)Enums.StatusUsuario.ATIVO;
            novoCandidato.IdUsuarioNavigation.DataCadastrado = DateTime.Now;
            novoCandidato.IdEnderecoNavigation = EnderecoUtils.BuscarEndereco(novoCandidato.IdEnderecoNavigation.Cep);

            ctx.Candidato.Add(novoCandidato);

            ctx.SaveChanges();
        }
Пример #3
0
        private async void boletoClicked(object sender, EventArgs e)
        {
            if (Pagamento == null)
            {
                await DisplayAlert("Erro", "Nenhum pagamento informado!", "Fechar");

                return;
            }
            Pagamento.Tipo = TipoPagamentoEnum.Boleto;

            if (Pagamento.TemEndereco)
            {
                gerarBoleto(Pagamento);
            }
            else
            {
                var regraUsuario = UsuarioFactory.create();
                var usuario      = regraUsuario.pegarAtual();
                if (usuario.Enderecos.Count == 1)
                {
                    preencherEndereco(Pagamento, usuario.Enderecos[0]);
                    gerarBoleto(Pagamento);
                }
                else if (usuario.Enderecos.Count > 0)
                {
                    var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) =>
                    {
                        preencherEndereco(Pagamento, endereco);
                        gerarBoleto(Pagamento);
                    });
                    var enderecos = new List <EnderecoInfo>();
                    foreach (var endereco in usuario.Enderecos)
                    {
                        enderecos.Add(endereco);
                    }
                    enderecoListaPage.Enderecos = enderecos;
                    enderecoListaPage.Title     = "Endereço de Cobrança";
                    await Navigation.PushAsync(enderecoListaPage);
                }
                else
                {
                    var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) =>
                    {
                        usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
                        var regraLogin = UsuarioFactory.create();
                        regraLogin.gravarAtual(usuario);

                        preencherEndereco(Pagamento, endereco);
                        gerarBoleto(Pagamento);
                    });
                    await Navigation.PushAsync(cepPage);
                }
            }
        }
        /// <summary>
        /// Cadastra uma nove empresa
        /// </summary>
        /// <param name="novaEmpresa"></param>
        public void Cadastrar(Empresa novaEmpresa)
        {
            novaEmpresa.IdUsuarioNavigation.IdTipoUsuario = (int)Enums.TipoUsuario.EMPRESA;
            novaEmpresa.IdStatusUsuario = (int)Enums.StatusUsuario.PENDENTE;
            novaEmpresa.IdUsuarioNavigation.DataCadastrado = DateTime.Now;
            novaEmpresa.IdEnderecoNavigation = EnderecoUtils.BuscarEndereco(novaEmpresa.IdEnderecoNavigation.Cep);

            ctx.Empresa.Add(novaEmpresa);

            ctx.SaveChanges();
        }
Пример #5
0
        private void atualizarSeguimento(SeguimentoInfo seguimento, int left, int top)
        {
            var seguimentoView = new SeguimentoView {
                Seguimento = seguimento
            };

            seguimentoView.AoClicar += (sender, e) =>
            {
                EnderecoUtils.selecionarEndereco((endereco) => {
                    AoClicar?.Invoke(sender, e);
                });
            };
            _seguimentoGrid.Children.Add(seguimentoView, left, top);
        }
Пример #6
0
 protected virtual void inicializarComponente()
 {
     _usuarioPage              = UsuarioFormPageFactory.create();
     _usuarioPage.Title        = "Dados";
     _usuarioPage.Gravar       = true;
     _usuarioPage.AoCadastrar += (sender, e) => {
         //UserDialogs.Instance.Alert("Dados alterados com sucesso.", "Aviso", "Fechar");
         _usuarioPage.DisplayAlert("Aviso", "Dados alterados com sucesso.", "Fechar");
     };
     _enderecoListaPage = EnderecoUtils.gerarEnderecoLista(null);
     _cartaoListaPage   = new CartaoListaPage {
         Title = "Meus cartões"
     };
 }
        public IActionResult Refresh()
        {
            var vagas      = _vagaRepository.Listar();
            var candidatos = _candidatoRepository.Listar();

            // Deleta tudo para se preparar para a operação.
            _matchingRepository.DeletarAll();

            foreach (Vaga v in vagas)
            {
                foreach (Candidato c in candidatos)
                {
                    double qtdeHc           = c.HabilidadeCandidato.Count;
                    double qtdeHv           = v.HabilidadeVaga.Count;
                    double qtdeRelacionadas = 0;
                    double percentage       = 0;
                    double distancia        = Math.Round(EnderecoUtils
                                                         .Distancia(c.IdEnderecoNavigation.Lat, c.IdEnderecoNavigation.Long, v.IdEnderecoNavigation.Lat, v.IdEnderecoNavigation.Long, 'K'), 2);

                    foreach (var hc in c.HabilidadeCandidato)
                    {
                        var hvMatch = v.HabilidadeVaga.FirstOrDefault(hv => hv.IdHabilidade == hc.IdHabilidade);
                        if (hvMatch != null)
                        {
                            qtdeRelacionadas++;
                        }
                    }

                    // Evitar dividir por 0.
                    if (qtdeRelacionadas > 0)
                    {
                        percentage = (qtdeRelacionadas / qtdeHv) * 100;
                    }

                    var match = new Matching
                    {
                        IdCandidato = c.IdUsuario,
                        IdVaga      = v.IdVaga,
                        Porcentagem = Math.Round((percentage / 1.5) + (33 - distancia), 2),
                        Distancia   = distancia
                    };

                    _matchingRepository.Cadastrar(match);
                }
            }
            return(StatusCode(204));
        }
Пример #8
0
        protected async void abrirProduto(BannerPecaInfo peca)
        {
            if (!peca.IdProduto.HasValue)
            {
                await UserDialogs.Instance.AlertAsync("Banner não está ligado a nenhum produto!", "Erro", "Entendi");

                return;
            }
            EnderecoUtils.selecionarEndereco(async(endereco) => {
                UserDialogs.Instance.ShowLoading("Carregando...");
                try
                {
                    var regraProduto = ProdutoFactory.create();
                    var regraLoja    = LojaFactory.create();
                    var produto      = await regraProduto.pegar(peca.IdProduto.Value);

                    var loja = await regraLoja.pegar(produto.IdLoja);
                    await regraLoja.gravarAtual(loja);
                    if (App.Current.MainPage is RootPage)
                    {
                        ((RootPage)App.Current.MainPage).atualizarMenu();
                    }

                    var produtoPage = new ProdutoPage()
                    {
                        Title   = produto.Nome,
                        Produto = produto
                    };
                    UserDialogs.Instance.HideLoading();
                    if (App.Current.MainPage is RootPage)
                    {
                        ((RootPage)App.Current.MainPage).PushAsync(produtoPage);
                    }
                    else
                    {
                        App.Current.MainPage = App.gerarRootPage(produtoPage);
                    }
                }
                catch (Exception erro)
                {
                    UserDialogs.Instance.HideLoading();
                    await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi");
                }
            });
        }
        public EnderecoListaPage()
        {
            Title = "Meus Endereços";
            Style = Estilo.Current[Estilo.TELA_PADRAO];

            _enderecos = new List <EnderecoInfo>();

            ToolbarItems.Add(new IconToolbarItem
            {
                Text      = "Adicionar",
                Icon      = "fa-plus",
                IconColor = Estilo.Current.BarTitleColor,
                Order     = ToolbarItemOrder.Primary,
                Command   = new Command(() => {
                    var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) =>
                    {
                        _enderecos.Add(endereco);
                        AoAtualizar?.Invoke(this, _enderecos);
                        Navigation.PopAsync();
                    }, false);
                    Navigation.PushAsync(cepPage);
                })
            });

            inicializarComponente();
            Content = new StackLayout
            {
                Margin            = new Thickness(3, 3),
                VerticalOptions   = LayoutOptions.Fill,
                HorizontalOptions = LayoutOptions.Fill,
                Children          =
                {
                    _enderecoListView
                }
            };
        }
Пример #10
0
        /// <summary>
        /// Atualiza o candidato por id
        /// </summary>
        /// <param name="id"></param>
        /// <param name="candidatoAtualizado"></param>
        public void Atualizar(int id, Candidato candidatoAtualizado)
        {
            var c = ctx.Candidato.Include(candidato => candidato.IdUsuarioNavigation)
                    .Include(hc => hc.HabilidadeCandidato)
                    .FirstOrDefault(candidato => candidato.IdUsuario == id);

            if (c != null)
            {
                if (candidatoAtualizado.CelularCandidato != null)
                {
                    c.CelularCandidato = candidatoAtualizado.CelularCandidato;
                }

                if (candidatoAtualizado.IdEnderecoNavigation != null)
                {
                    if (candidatoAtualizado.IdEnderecoNavigation.Cep != null)
                    {
                        c.IdEnderecoNavigation = EnderecoUtils.BuscarEndereco(candidatoAtualizado.IdEnderecoNavigation.Cep);
                    }
                }

                if (candidatoAtualizado.Cpf != null)
                {
                    c.Cpf = candidatoAtualizado.Cpf;
                }

                if (candidatoAtualizado.Curso != null)
                {
                    c.Curso = candidatoAtualizado.Curso;
                }

                if (candidatoAtualizado.FormacaoAcademica != null)
                {
                    c.FormacaoAcademica = candidatoAtualizado.FormacaoAcademica;
                }

                if (candidatoAtualizado.Nome != null)
                {
                    c.Nome = candidatoAtualizado.Nome;
                }

                if (candidatoAtualizado.Sobrenome != null)
                {
                    c.Sobrenome = candidatoAtualizado.Sobrenome;
                }

                if (candidatoAtualizado.DataNascimento != DateTime.MinValue)
                {
                    c.DataNascimento = candidatoAtualizado.DataNascimento;
                }

                if (candidatoAtualizado.Rg != null)
                {
                    c.Rg = candidatoAtualizado.Rg;
                }

                if (candidatoAtualizado.TelefoneCandidato != null)
                {
                    c.TelefoneCandidato = candidatoAtualizado.TelefoneCandidato;
                }


                foreach (var hc in c.HabilidadeCandidato)
                {
                    habilidadeCandidatoRepository.Deletar(hc.IdHabilidadeCandidato);
                }
                c.HabilidadeCandidato = candidatoAtualizado.HabilidadeCandidato;



                if (candidatoAtualizado.IdUsuarioNavigation != null)
                {
                    if (candidatoAtualizado.IdUsuarioNavigation.Email != null)
                    {
                        c.IdUsuarioNavigation.Email = candidatoAtualizado.IdUsuarioNavigation.Email;
                    }

                    if (candidatoAtualizado.IdUsuarioNavigation.Senha != null)
                    {
                        c.IdUsuarioNavigation.Senha = StringUtils.Criptografar(candidatoAtualizado.IdUsuarioNavigation.Senha);
                    }
                }
            }
            ctx.SaveChanges();
        }
Пример #11
0
        public void Atualizar(int id, Vaga v)
        {
            // Busca uma vaga através do id
            Vaga vagaBuscada = ctx.Vaga.Find(id);

            // Atribui os novos valores ao campos existentes
            if (v.Titulo != null)
            {
                vagaBuscada.Titulo = v.Titulo;
            }

            if (v.Salario != 0)
            {
                vagaBuscada.Salario = v.Salario;
            }


            if (v.IdEnderecoNavigation != null)
            {
                if (v.IdEnderecoNavigation.Cep != null)
                {
                    vagaBuscada.IdEnderecoNavigation = EnderecoUtils.BuscarEndereco(v.IdEnderecoNavigation.Cep);
                }
            }

            if (v.Qualificacao != null)
            {
                vagaBuscada.Qualificacao = v.Qualificacao;
            }

            if (v.DataCriado != DateTime.MinValue)
            {
                vagaBuscada.DataCriado = v.DataCriado;
            }

            if (v.DataExpiracao != DateTime.MinValue)
            {
                vagaBuscada.DataExpiracao = v.DataExpiracao;
            }

            if (v.CargaHoraria != 0)
            {
                vagaBuscada.CargaHoraria = v.CargaHoraria;
            }

            if (v.Descricao != null)
            {
                vagaBuscada.Descricao = v.Descricao;
            }

            if (v.Visualizacao != 0)
            {
                vagaBuscada.Visualizacao = v.Visualizacao;
            }

            if (v.IdEmpresaNavigation != null)
            {
                vagaBuscada.IdEmpresaNavigation = v.IdEmpresaNavigation;
            }

            if (v.BeneficioVaga.Count > 0)
            {
                vagaBuscada.BeneficioVaga = v.BeneficioVaga;
            }

            if (v.Candidatura.Count > 0)
            {
                vagaBuscada.Candidatura = v.Candidatura;
            }

            if (v.HabilidadeVaga.Count > 0)
            {
                vagaBuscada.HabilidadeVaga = v.HabilidadeVaga;
            }

            // Atualiza a vaga que foi buscada
            ctx.Vaga.Update(vagaBuscada);

            // Salva as informações para serem gravadas no banco
            ctx.SaveChanges();
        }
        /*
         * private async void abrirHorarioEntrega(PedidoInfo pedido) {
         *  UserDialogs.Instance.ShowLoading("Carregando horários de entrega...");
         *  try
         *  {
         *      var regraHorario = PedidoHorarioFactory.create();
         *      var horarios = await regraHorario.listar(Pedido.IdLoja);
         *      if (horarios.Count > 1)
         *      {
         *          var horarioEntregaPage = new HorarioEntregaPage()
         *          {
         *              Title = "Horário de Entrega",
         *              Horarios = horarios
         *          };
         *          horarioEntregaPage.AoSelecionar += (s2, horario) =>
         *          {
         *              Pedido.DiaEntrega = horarioEntregaPage.DiaEntrega;
         *              Pedido.HorarioEntrega = horario.Horario;
         *              definirEntrega(Pedido);
         *          };
         *          UserDialogs.Instance.HideLoading();
         *          await Navigation.PushAsync(horarioEntregaPage);
         *      }
         *      else
         *      {
         *          UserDialogs.Instance.HideLoading();
         *          definirEntrega(Pedido);
         *      }
         *  }
         *  catch (Exception erro)
         *  {
         *      UserDialogs.Instance.HideLoading();
         *      UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
         *      //await DisplayAlert("Erro", erro.Message, "Entendi");
         *  }
         * }
         */

        protected virtual void inicializarComponente()
        {
            _entregaButton = new MenuButton {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.Start,
                Icon  = "fa-motorcycle",
                Text  = "Receber em\nCasa",
                Style = Estilo.Current[Estilo.BTN_ROOT]
            };
            _entregaButton.Click += async(sender, e) => {
                Pedido.Entrega = EntregaEnum.Entrega;
                var regraUsuario = UsuarioFactory.create();
                var usuario      = regraUsuario.pegarAtual();

                /*
                 * if (usuario.Enderecos.Count == 1)
                 * {
                 *  var endereco = usuario.Enderecos[0];
                 *  Pedido.Cep = endereco.Cep;
                 *  Pedido.Logradouro = endereco.Logradouro;
                 *  Pedido.Complemento = endereco.Complemento;
                 *  Pedido.Numero = endereco.Numero;
                 *  Pedido.Bairro = endereco.Bairro;
                 *  Pedido.Cidade = endereco.Cidade;
                 *  Pedido.Uf = endereco.Uf;
                 *  Pedido.Latitude = endereco.Latitude;
                 *  Pedido.Longitude = endereco.Longitude;
                 *
                 *  definirEntrega(Pedido);
                 * }
                 */
                if (usuario.Enderecos.Count > 0)
                {
                    var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) => {
                        Pedido.Cep         = endereco.Cep;
                        Pedido.Logradouro  = endereco.Logradouro;
                        Pedido.Complemento = endereco.Complemento;
                        Pedido.Numero      = endereco.Numero;
                        Pedido.Bairro      = endereco.Bairro;
                        Pedido.Cidade      = endereco.Cidade;
                        Pedido.Uf          = endereco.Uf;
                        Pedido.Latitude    = endereco.Latitude;
                        Pedido.Longitude   = endereco.Longitude;

                        //abrirHorarioEntrega(Pedido);
                        definirEntrega(Pedido);
                    });
                    var enderecos = new List <EnderecoInfo>();
                    foreach (var endereco in usuario.Enderecos)
                    {
                        enderecos.Add(endereco);
                    }
                    enderecoListaPage.Enderecos = enderecos;
                    await Navigation.PushAsync(enderecoListaPage);
                }
                else
                {
                    var cepPage = EnderecoUtils.gerarBuscaPorCep(async(endereco) =>
                    {
                        UserDialogs.Instance.ShowLoading("Atualizando endereço...");
                        try
                        {
                            var regraLogin = UsuarioFactory.create();
                            usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
                            await regraLogin.alterar(usuario);
                            regraLogin.gravarAtual(usuario);

                            Pedido.Cep         = endereco.Cep;
                            Pedido.Logradouro  = endereco.Logradouro;
                            Pedido.Complemento = endereco.Complemento;
                            Pedido.Numero      = endereco.Numero;
                            Pedido.Bairro      = endereco.Bairro;
                            Pedido.Cidade      = endereco.Cidade;
                            Pedido.Uf          = endereco.Uf;
                            Pedido.Latitude    = endereco.Latitude;
                            Pedido.Longitude   = endereco.Longitude;

                            var regraHorario = PedidoHorarioFactory.create();
                            var horarios     = await regraHorario.listar(Pedido.IdLoja);
                            if (horarios.Count > 1)
                            {
                                var horarioEntregaPage = new HorarioEntregaPage()
                                {
                                    Title    = "Horário de Entrega",
                                    Horarios = horarios
                                };
                                horarioEntregaPage.AoSelecionar += (s2, e2) =>
                                {
                                    definirEntrega(Pedido);
                                };
                                UserDialogs.Instance.HideLoading();
                                await Navigation.PushAsync(horarioEntregaPage);
                            }
                            else
                            {
                                UserDialogs.Instance.HideLoading();
                                definirEntrega(Pedido);
                            }
                        }
                        catch (Exception erro)
                        {
                            UserDialogs.Instance.HideLoading();
                            UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                            //await DisplayAlert("Erro", erro.Message, "Entendi");
                        }
                    }, false);
                    await Navigation.PushAsync(cepPage);
                }
            };
            _retirarNoLocalButton = new MenuButton
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.Start,
                Icon  = "fa-home",
                Text  = "Retirar na Loja",
                Style = Estilo.Current[Estilo.BTN_ROOT]
            };
            _retirarNoLocalButton.Click += (sender, e) => {
                Pedido.Entrega = EntregaEnum.RetirarNaLoja;
                var regraUsuario = UsuarioFactory.create();
                var usuario      = regraUsuario.pegarAtual();
                if (usuario.Enderecos.Count == 1)
                {
                    var endereco = usuario.Enderecos[0];
                    Pedido.Cep         = endereco.Cep;
                    Pedido.Logradouro  = endereco.Logradouro;
                    Pedido.Complemento = endereco.Complemento;
                    Pedido.Numero      = endereco.Numero;
                    Pedido.Bairro      = endereco.Bairro;
                    Pedido.Cidade      = endereco.Cidade;
                    Pedido.Uf          = endereco.Uf;
                    Pedido.Latitude    = endereco.Latitude;
                    Pedido.Longitude   = endereco.Longitude;
                }
                definirEntrega(Pedido);
            };
        }
        /// <summary>
        /// Atualiza uma empresa pelo id
        /// </summary>
        /// <param name="id"></param>
        /// <param name="empresaAtualizada"></param>
        public void Atualizar(int id, Empresa empresaAtualizada)
        {
            var e = ctx.Empresa.Include(empresa => empresa.IdUsuarioNavigation)
                    .FirstOrDefault(empresa => empresa.IdUsuario == id);

            if (e != null)
            {
                if (empresaAtualizada.CelularEmpresa != null)
                {
                    e.CelularEmpresa = empresaAtualizada.CelularEmpresa;
                }

                if (empresaAtualizada.Foto != null)
                {
                    e.Foto = empresaAtualizada.Foto;
                }
                if (empresaAtualizada.IdEnderecoNavigation != null)
                {
                    if (empresaAtualizada.IdEnderecoNavigation.Cep != null)
                    {
                        e.IdEnderecoNavigation = EnderecoUtils.BuscarEndereco(empresaAtualizada.IdEnderecoNavigation.Cep);
                    }
                }

                if (empresaAtualizada.Cnae != null)
                {
                    e.Cnae = empresaAtualizada.Cnae;
                }

                if (empresaAtualizada.Cnpj != null)
                {
                    e.Cnpj = empresaAtualizada.Cnpj;
                }

                if (empresaAtualizada.RazaoSocial != null)
                {
                    e.RazaoSocial = empresaAtualizada.RazaoSocial;
                }

                if (empresaAtualizada.NomeFantasia != null)
                {
                    e.NomeFantasia = empresaAtualizada.NomeFantasia;
                }

                if (empresaAtualizada.TelefoneEmpresa != null)
                {
                    e.TelefoneEmpresa = empresaAtualizada.TelefoneEmpresa;
                }

                if (empresaAtualizada.Descricao != null)
                {
                    e.Descricao = empresaAtualizada.Descricao;
                }

                if (empresaAtualizada.Visualizacao != 0)
                {
                    e.Visualizacao = empresaAtualizada.Visualizacao;
                }

                if (empresaAtualizada.IdUsuarioNavigation != null)
                {
                    if (empresaAtualizada.IdUsuarioNavigation.Email != null)
                    {
                        e.IdUsuarioNavigation.Email = empresaAtualizada.IdUsuarioNavigation.Email;
                    }

                    if (empresaAtualizada.IdUsuarioNavigation.Senha != null)
                    {
                        e.IdUsuarioNavigation.Senha = StringUtils.Criptografar(empresaAtualizada.IdUsuarioNavigation.Senha);
                    }
                }
            }
            ctx.SaveChanges();
        }
Пример #14
0
        /*
         * public static Page gerarEndereco() {
         *  return EnderecoUtils.gerarBuscaPorCep((endereco) =>
         *  {
         *      var regraUsuario = UsuarioFactory.create();
         *      var usuarioCep = regraUsuario.pegarAtual();
         *      if (usuarioCep == null)
         *      {
         *          usuarioCep = new UsuarioInfo();
         *      }
         *      usuarioCep.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
         *      regraUsuario.gravarAtual(usuarioCep);
         *
         *      var lojaListaPage = new LojaListaPage
         *      {
         *          Title = "Selecione sua Loja"
         *      };
         *      lojaListaPage.AoCarregar += async (sender, e) =>
         *      {
         *          var regraLoja = LojaFactory.create();
         *          var regraBanner = BannerPecaFactory.create();
         *          e.Banners = await regraBanner.gerar(new BannerFiltroInfo {
         *              SlugBanner = BannerUtils.SEGUIMENTO,
         *              Latitude = endereco.Latitude.Value,
         *              Longitude = endereco.Longitude.Value,
         *              Raio = regraLoja.RaioBusca
         *          });
         *          e.Lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca);
         *      };
         *      if (App.Current.MainPage is RootPage) {
         *          ((RootPage)App.Current.MainPage).PushAsync(lojaListaPage);
         *      }
         *      else {
         *          App.Current.MainPage = App.gerarRootPage(lojaListaPage);
         *      }
         *  });
         * }
         */

        /*
         * public static Page gerarSelecionar() {
         *  var regraUsuario = UsuarioFactory.create();
         *  var usuario = regraUsuario.pegarAtual();
         *  if (usuario != null)
         *  {
         *      if (usuario.Enderecos.Count == 1)
         *      {
         *          var endereco = usuario.Enderecos[0];
         *          var lojaListaPage = new LojaListaPage {
         *              Title = "Selecione sua Loja"
         *          };
         *          lojaListaPage.AoCarregar += async (sender, e) =>
         *          {
         *              var regraLoja = LojaFactory.create();
         *              var regraBanner = BannerPecaFactory.create();
         *              e.Banners = await regraBanner.gerar(new BannerFiltroInfo
         *              {
         *                  SlugBanner = BannerUtils.SEGUIMENTO,
         *                  Latitude = endereco.Latitude.Value,
         *                  Longitude = endereco.Longitude.Value,
         *                  Raio = regraLoja.RaioBusca
         *              });
         *              e.Lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca);
         *          };
         *          return lojaListaPage;
         *      }
         *      else if (usuario.Enderecos.Count > 1)
         *      {
         *          //return EnderecoUtils.gerarEnderecoLista((endereco) =>
         *          var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) =>
         *          {
         *              var lojaListaPage = new LojaListaPage
         *              {
         *                  Title = "Selecione sua Loja"
         *              };
         *              lojaListaPage.AoCarregar += async (sender, e) =>
         *              {
         *                  var regraLoja = LojaFactory.create();
         *                  var regraBanner = BannerPecaFactory.create();
         *                  e.Banners = await regraBanner.gerar(new BannerFiltroInfo
         *                  {
         *                      SlugBanner = BannerUtils.SEGUIMENTO,
         *                      Latitude = endereco.Latitude.Value,
         *                      Longitude = endereco.Longitude.Value,
         *                      Raio = regraLoja.RaioBusca
         *                  });
         *                  e.Lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca);
         *              };
         *              if (App.Current.MainPage is RootPage) {
         *                  ((RootPage)App.Current.MainPage).PushAsync(lojaListaPage);
         *              }
         *              else {
         *                  App.Current.MainPage = App.gerarRootPage(lojaListaPage);
         *              }
         *          });
         *          var enderecos = new List<EnderecoInfo>();
         *          foreach (var endereco in usuario.Enderecos) {
         *              enderecos.Add(endereco);
         *          }
         *          enderecoListaPage.Enderecos = enderecos;
         *          return enderecoListaPage;
         *      }
         *      else
         *      {
         *          return gerarEndereco();
         *      }
         *  }
         *  else
         *  {
         *      return gerarEndereco();
         *  }
         * }
         */

        public static async Task <Page> gerarTelaInicial()
        {
            UserDialogs.Instance.ShowLoading("Carregando...");
            var telaInicialPage = new TelaInicialPage
            {
                Title = "Selecione o seguimento"
            };

            try
            {
                var regraLoja       = LojaFactory.create();
                var regraBanner     = BannerPecaFactory.create();
                var regraSeguimento = SeguimentoFactory.create();
                telaInicialPage.Banners = await regraBanner.gerar(new BannerFiltroInfo
                {
                    SlugBanner = BannerUtils.TELA_INICIAL,
                    Ordem      = BannerOrdemEnum.Aleatorio
                });

                telaInicialPage.Seguimentos = await regraSeguimento.listar();

                telaInicialPage.AoBuscarPorRaio += (sender, raio) => {
                    regraLoja.RaioBusca = raio;
                    EnderecoUtils.selecionarEndereco(async(endereco) => {
                        var seguimentoPage = await gerarSeguimento(endereco);
                        if (App.Current.MainPage is RootPage)
                        {
                            ((RootPage)App.Current.MainPage).PushAsync(seguimentoPage);
                        }
                        else
                        {
                            App.Current.MainPage = App.gerarRootPage(seguimentoPage);
                        }
                    });
                };
                telaInicialPage.AoClicar += (sender, seguimento) => {
                    if (seguimento.ApenasPJ)
                    {
                        LoginUtils.carregarUsuario((usuario) => {
                            if (usuario.PJ.HasValue && usuario.PJ.Value)
                            {
                                EnderecoUtils.selecionarEndereco(async(endereco) => {
                                    /*
                                     * var seguimentoPage = await gerarSeguimento(endereco);
                                     * if (App.Current.MainPage is RootPage) {
                                     *  ((RootPage)App.Current.MainPage).PushAsync(seguimentoPage);
                                     * }
                                     * else {
                                     *  App.Current.MainPage = App.gerarRootPage(seguimentoPage);
                                     * }
                                     */
                                    try {
                                        UserDialogs.Instance.ShowLoading("Carregando...");
                                        var lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca, seguimento.Id);
                                        if (lojas.Count > 0)
                                        {
                                            //var seguimentoPage = await gerarSeguimento(endereco);
                                            var lojaListaPage = await LojaUtils.gerarLojaLista(seguimento, endereco, lojas);
                                            UserDialogs.Instance.HideLoading();
                                            if (App.Current.MainPage is RootPage)
                                            {
                                                ((RootPage)App.Current.MainPage).PushAsync(lojaListaPage);
                                            }
                                            else
                                            {
                                                App.Current.MainPage = App.gerarRootPage(lojaListaPage);
                                            }
                                        }
                                        else
                                        {
                                            UserDialogs.Instance.HideLoading();
                                            await UserDialogs.Instance.AlertAsync("Você deve aumentar o raio da busca ou aguardar futura loja no seguimento.");
                                        }
                                    }
                                    catch (Exception erro)
                                    {
                                        UserDialogs.Instance.HideLoading();
                                        UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                                    }
                                });
                            }
                            else
                            {
                                UserDialogs.Instance.AlertAsync("Essa é uma área apenas para pessoas jurídicas.");
                            }
                        });
                    }
                    else
                    {
                        EnderecoUtils.selecionarEndereco(async(endereco) => {
                            try {
                                UserDialogs.Instance.ShowLoading("Carregando...");
                                var lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca, seguimento.Id);
                                if (lojas.Count > 0)
                                {
                                    //var seguimentoPage = await gerarSeguimento(endereco);
                                    var lojaListaPage = await LojaUtils.gerarLojaLista(seguimento, endereco, lojas);
                                    UserDialogs.Instance.HideLoading();
                                    if (App.Current.MainPage is RootPage)
                                    {
                                        ((RootPage)App.Current.MainPage).PushAsync(lojaListaPage);
                                    }
                                    else
                                    {
                                        App.Current.MainPage = App.gerarRootPage(lojaListaPage);
                                    }
                                }
                                else
                                {
                                    UserDialogs.Instance.HideLoading();
                                    await UserDialogs.Instance.AlertAsync("Você deve aumentar o raio da busca ou aguardar futura loja no seguimento.");
                                }
                            }
                            catch (Exception erro)
                            {
                                UserDialogs.Instance.HideLoading();
                                UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                            }
                        });
                    }
                };
                UserDialogs.Instance.HideLoading();
            }
            catch (Exception erro) {
                UserDialogs.Instance.HideLoading();
                UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
            }
            return(telaInicialPage);
        }
Пример #15
0
        public static Page gerarCarrinho(Action <PedidoInfo> AoSelecionarEndereco)
        {
            var carrinhoPage = new CarrinhoPage
            {
                Title = "Meu carrinho"
            };

            carrinhoPage.AoFinalizar += (s1, produtos) =>
            {
                var regraUsuario = UsuarioFactory.create();
                var usuario      = regraUsuario.pegarAtual();
                if (usuario != null && usuario.Id > 0)
                {
                    if (usuario.Enderecos.Count > 0)
                    {
                        var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) =>
                        {
                            AoSelecionarEndereco(PedidoUtils.gerar(produtos, endereco));
                        });
                        enderecoListaPage.Title = "Local de entrega";
                        ((Page)s1).Navigation.PushAsync(enderecoListaPage);
                    }
                    else
                    {
                        var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) =>
                        {
                            usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
                            var regraLogin = UsuarioFactory.create();
                            regraLogin.gravarAtual(usuario);

                            AoSelecionarEndereco(PedidoUtils.gerar(produtos, endereco));
                        });
                        ((Page)s1).Navigation.PushAsync(cepPage);
                    }
                }
                else
                {
                    if (usuario == null)
                    {
                        usuario = new UsuarioInfo();
                    }
                    var usuarioCadastroPage = UsuarioFormPageFactory.create();
                    usuarioCadastroPage.Title        = "Cadastre-se";
                    usuarioCadastroPage.Gravar       = true;
                    usuarioCadastroPage.Usuario      = usuario;
                    usuarioCadastroPage.AoCadastrar += (s2, usuario2) =>
                    {
                        var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) =>
                        {
                            usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
                            var regraLogin = UsuarioFactory.create();
                            regraLogin.gravarAtual(usuario);

                            AoSelecionarEndereco(PedidoUtils.gerar(produtos, endereco));
                        });
                        ((Page)s2).Navigation.PushAsync(cepPage);
                    };
                    ((Page)s1).Navigation.PushAsync(usuarioCadastroPage);
                }
            };
            return(carrinhoPage);
        }