コード例 #1
0
 protected virtual void efetuarCadastro(UsuarioInfo usuario)
 {
     AoCadastrar?.Invoke(this, usuario);
 }
コード例 #2
0
        private void inicializarComponente()
        {
            _PassageiroEntry = new XfxEntry
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Placeholder       = "Qtd. Passageiros",
                Keyboard          = Keyboard.Numeric,
                ErrorDisplay      = ErrorDisplay.None
            };

            _ObservacaoEntry = new XfxEntry
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Placeholder       = "Qual a carga?",
                ErrorDisplay      = ErrorDisplay.None
            };
            _TipoVeiculoLayout = new StackLayout
            {
                Orientation       = StackOrientation.Vertical,
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Children          =
                {
                    criarTipoVeiculoEntry()
                }
            };

            _UsaCargaSwitch = new Switch
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Start,
                IsToggled         = false
            };
            _UsaCargaSwitch.Toggled += (sender, e) =>
            {
                _cargaStackLayout.Children.Clear();
                if (e.Value)
                {
                    _cargaStackLayout.Children.Add(new Label {
                        HorizontalOptions = LayoutOptions.Fill,
                        VerticalOptions   = LayoutOptions.Start,
                        Style             = Estilo.Current[Estilo.TITULO2],
                        Text = "Informações de carga:"
                    });
                    _cargaStackLayout.Children.Add(_PesoEntry);
                    _cargaStackLayout.Children.Add(_AlturaEntry);
                    _cargaStackLayout.Children.Add(_ProfundidadeEntry);
                    _cargaStackLayout.Children.Add(_LarguraEntry);
                }
            };

            _cargaStackLayout = new StackLayout
            {
                Orientation       = StackOrientation.Vertical,
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };

            _PesoEntry = new XfxEntry
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Keyboard          = Keyboard.Numeric,
                Style             = Estilo.Current[Estilo.ENTRY_PADRAO],
                Placeholder       = "Peso em Toneladas",
                ErrorDisplay      = ErrorDisplay.None
            };

            _LarguraEntry = new XfxEntry
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Keyboard          = Keyboard.Numeric,
                Style             = Estilo.Current[Estilo.ENTRY_PADRAO],
                Placeholder       = "Largura total (m)",
                ErrorDisplay      = ErrorDisplay.None
            };

            _AlturaEntry = new XfxEntry
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Keyboard          = Keyboard.Numeric,
                Style             = Estilo.Current[Estilo.ENTRY_PADRAO],
                Placeholder       = "Altura total (m)",
                ErrorDisplay      = ErrorDisplay.None
            };

            _ProfundidadeEntry = new XfxEntry
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Keyboard          = Keyboard.Numeric,
                Style             = Estilo.Current[Estilo.ENTRY_PADRAO],
                Placeholder       = "Comprimento total (m)",
                ErrorDisplay      = ErrorDisplay.None
            };

            _AgendandoSwitch = new Switch
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Start,
                IsToggled         = false
            };
            _AgendandoSwitch.Toggled += (sender, e) => {
                _agendadoStackLayout.Children.Clear();
                if (e.Value)
                {
                    _agendadoStackLayout.Children.Add(new Label
                    {
                        HorizontalOptions = LayoutOptions.Fill,
                        VerticalOptions   = LayoutOptions.Start,
                        Text  = "Data hora da Retirada:",
                        Style = Estilo.Current[Estilo.LABEL_CONTROL]
                    });
                    _agendadoStackLayout.Children.Add(new StackLayout {
                        Orientation       = StackOrientation.Horizontal,
                        HorizontalOptions = LayoutOptions.Fill,
                        VerticalOptions   = LayoutOptions.Start,
                        Children          =
                        {
                            new IconImage {
                                Icon = "fa-calendar",
                                HorizontalOptions = LayoutOptions.Start,
                                VerticalOptions   = LayoutOptions.Center,
                                Style             = Estilo.Current[Estilo.ICONE_PADRAO]
                            },
                            _DataRetiradaPicker,
                            new IconImage {
                                Icon = "fa-clock-o",
                                HorizontalOptions = LayoutOptions.Start,
                                VerticalOptions   = LayoutOptions.Center,
                                Style             = Estilo.Current[Estilo.ICONE_PADRAO]
                            },
                            _HoraRetiradaPicker
                        }
                    });
                    _agendadoStackLayout.Children.Add(new Label
                    {
                        HorizontalOptions = LayoutOptions.Fill,
                        VerticalOptions   = LayoutOptions.Start,
                        Text  = "Data hora máxima para entrega:",
                        Style = Estilo.Current[Estilo.LABEL_CONTROL]
                    });
                    _agendadoStackLayout.Children.Add(new StackLayout
                    {
                        Orientation       = StackOrientation.Horizontal,
                        HorizontalOptions = LayoutOptions.Fill,
                        VerticalOptions   = LayoutOptions.Start,
                        Children          =
                        {
                            new IconImage {
                                Icon = "fa-calendar",
                                HorizontalOptions = LayoutOptions.Start,
                                VerticalOptions   = LayoutOptions.Center,
                                Style             = Estilo.Current[Estilo.ICONE_PADRAO]
                            },
                            _DataEntregaPicker,
                            new IconImage {
                                Icon = "fa-clock-o",
                                HorizontalOptions = LayoutOptions.Start,
                                VerticalOptions   = LayoutOptions.Center,
                                Style             = Estilo.Current[Estilo.ICONE_PADRAO]
                            },
                            _HoraEntregaPicker
                        }
                    });
                }
            };

            _agendadoStackLayout = new StackLayout
            {
                Orientation       = StackOrientation.Vertical,
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };

            _DataRetiradaPicker = new DatePicker
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.Start,
                Style             = Estilo.Current[Estilo.ENTRY_DATA]
            };
            _HoraRetiradaPicker = new TimePicker
            {
                WidthRequest      = 100,
                HorizontalOptions = LayoutOptions.Start,
                VerticalOptions   = LayoutOptions.Start,
                Style             = Estilo.Current[Estilo.ENTRY_TEMPO]
            };

            _DataEntregaPicker = new DatePicker
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.Start,
                Style             = Estilo.Current[Estilo.ENTRY_DATA]
            };
            _HoraEntregaPicker = new TimePicker
            {
                WidthRequest      = 100,
                HorizontalOptions = LayoutOptions.Start,
                VerticalOptions   = LayoutOptions.Start,
                Style             = Estilo.Current[Estilo.ENTRY_TEMPO]
            };

            _PrecoEntry = new XfxEntry
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Keyboard          = Keyboard.Numeric,
                Style             = Estilo.Current[Estilo.ENTRY_PADRAO],
                Placeholder       = "Valor do Frete",
                ErrorDisplay      = ErrorDisplay.None
            };

            _EnviarButton = new Button
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Style             = Estilo.Current[Estilo.BTN_PRINCIPAL],
                Text = "SALVAR"
            };
            _EnviarButton.Clicked += async(sender, e) => {
                var regraFrete = FreteFactory.create();
                UserDialogs.Instance.ShowLoading("Enviando...");
                try
                {
                    var frete = this.Frete;
                    definirTipoPorOrdem(frete);
                    var id_frete = await regraFrete.inserir(frete);

                    frete = await regraFrete.pegar(id_frete);

                    UserDialogs.Instance.HideLoading();
                    AoCadastrar?.Invoke(this, frete);
                    //await DisplayAlert("Aviso", "Frete cadastro com sucesso.", "Fechar");
                    //await Navigation.PopAsync();
                }
                catch (Exception erro)
                {
                    UserDialogs.Instance.HideLoading();
                    await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi");
                }
            };
        }