public CadastroPage() { try { this.BindingContext = model = App.Container.Resolve<CadastroViewModel>(); model.ConfiguraNavigation(this.Navigation); MessagingCenter.Subscribe<CategoriasPage,ICollection<Categoria>>(this, "gravarCategorias", (sender, arg) => { this.model.AdicionaCategoriasSelecionadas(arg); var _categorias = arg.Select(x => x.Nome).Aggregate((a, b) => a + ',' + b).TrimEnd(','); if (_categorias.Length > 1) this.btnCategorias.Text = String.Format("{0} Categorias selecionadas!", arg.Count); else this.btnCategorias.Text = String.Format("{0} Categoria selecionada!", arg.Count); }); var imgLogo = new Image { Source = ImageSource.FromResource(RetornaCaminhoImagem.GetImagemCaminho("logo_mini.png")), VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center }; sexoPicker = new PickerSexoMais(); if (Device.OS == TargetPlatform.Android) sexoPicker.Title = "Sexo"; else if (Device.OS == TargetPlatform.iOS) { sexoPicker.Focused += (sender, e) => { ((PickerSexoMais)sender).Items.Add("Selecione uma opção"); ((PickerSexoMais)sender).Items.Add(AppResources.TextoSexoMasculino); ((PickerSexoMais)sender).Items.Add(AppResources.TextoSexoFeminino); }; } sexoPicker.SetBinding<CadastroViewModel>(PickerSexoMais.SelectedIndexProperty, x => x.Usuario.Sexo, BindingMode.Default, new SexoValueConverter(), null); var nascimentoPicker = new DatePickerMais(); nascimentoPicker.SetBinding(DatePickerMais.DateProperty, "Usuario.DataNascimento"); var entEmail = new Entry { Placeholder = AppResources.TextoPlaceHolderEmailCadastro, HorizontalOptions = LayoutOptions.FillAndExpand }; entEmail.SetBinding<CadastroViewModel>(Entry.TextProperty, x => x.Usuario.Email); entNome = new Entry { Placeholder = AppResources.TextoPlaceHolderNomeCadastro, HorizontalOptions = LayoutOptions.FillAndExpand }; entNome.SetBinding<CadastroViewModel>(Entry.TextProperty, x => x.Usuario.Nome); var entSenha = new Entry { Placeholder = AppResources.TextoPlaceHolderSenhaCadastro, HorizontalOptions = LayoutOptions.FillAndExpand, IsPassword = true }; entSenha.SetBinding<CadastroViewModel>(Entry.TextProperty, x => x.Usuario.Senha); var entDDD = new Entry { Placeholder = AppResources.TextoPlaceHolderDDDCadastro, }; entDDD.SetBinding<CadastroViewModel>(Entry.TextProperty, x => x.Usuario.DDD); var entTelefone = new Entry { Placeholder = AppResources.TextoPlaceHolderTelefoneCadastro }; entTelefone.SetBinding<CadastroViewModel>(Entry.TextProperty, x => x.Usuario.Telefone); var entMunicipio = new Entry { Placeholder = AppResources.TextoPlaceHolderMunicipioCadastro, HorizontalOptions = LayoutOptions.FillAndExpand }; entMunicipio.SetBinding<CadastroViewModel>(Entry.TextProperty, x => x.Usuario.Municipio); btnCategorias = new Button { Text = AppResources.TextoPlaceHolderCategoriasCadastro, HorizontalOptions = LayoutOptions.FillAndExpand, Style = Estilos._estiloPadraoButtonFonteMenor }; btnCategorias.Clicked += async (sender, e) => { if (model != null && model.Usuario != null && (model.Usuario.Categorias != null && model.Usuario.Categorias.Any() || !String.IsNullOrEmpty(model.Usuario.CategoriaMobileSelection))) { var dbCategorias = new Repositorio<Categoria>(); var categorias = new List<Categoria>(); foreach (var item in model.Usuario.CategoriaMobileSelection.Split(';')) { var catId = Convert.ToInt32(item); var c = await dbCategorias.RetornarPorId(catId); categorias.Add(c); } await this.Navigation.PushModalAsync(new CategoriasPage(categorias)); } else await this.Navigation.PushModalAsync(new CategoriasPage(null)); }; var gridWrapSexoNascimento = new Grid(); gridWrapSexoNascimento.Children.Add(sexoPicker, 0, 0); gridWrapSexoNascimento.Children.Add(nascimentoPicker, 1, 0); var gridWrapDDDTelefone = new Grid(); gridWrapDDDTelefone.Children.Add(entDDD, 0, 0); gridWrapDDDTelefone.Children.Add(entTelefone, 1, 0); var btnCriar = new Button { Style = Estilos._estiloPadraoButton, Text = AppResources.TextoBotaoCriarConta, HorizontalOptions = LayoutOptions.End, VerticalOptions = LayoutOptions.Start }; //btnCriar.SetBinding<CadastroViewModel>(Button.CommandProperty, x => x.btnCadastrar_Click); btnCriar.Clicked += async (sender, e) => { var _sexo = sexoPicker.SelectedIndex; var _nascimento = nascimentoPicker.Date; var _email = entEmail.Text; var _nome = entNome.Text; var _ddd = entDDD.Text; var _tel = entTelefone.Text; var _municipio = entMunicipio.Text; var _senha = entSenha.Text; await this.model.EfetuarCadastro(_sexo, _nascimento, _email, _nome, _ddd, _tel, _municipio, _senha); }; var btnVoltar = new Button { Style = Estilos._estiloPadraoButton, Text = AppResources.TextoBotaoVoltarTelaLogin, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start }; //btnVoltar.SetBinding<CadastroViewModel>(Button.CommandProperty, x => x.btnVoltar_Click); btnVoltar.Clicked += async (sender, e) => await this.model.Voltar(); var gridWrapButtons = new Grid { ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) }, new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) } }, RowDefinitions = { new RowDefinition { Height = GridLength.Auto } } }; gridWrapButtons.Children.Add(btnVoltar, 0, 0); gridWrapButtons.Children.Add(btnCriar, 1, 0); var mainLayout = new StackLayout { Children = { imgLogo, gridWrapSexoNascimento, btnCategorias, entEmail, entNome, entSenha, gridWrapDDDTelefone, entMunicipio, gridWrapButtons }, VerticalOptions = LayoutOptions.FillAndExpand, Spacing = 5, Padding = new Thickness(5, 50, 5, 50) }; this.Content = new ScrollView { Content = mainLayout }; } catch (Exception ex) { Insights.Report(ex); } }
public CadastroEdicaoPage() { try { this.BindingContext = model = App.Container.Resolve<CadastroViewModel>(); model.ConfiguraNavigation(this.Navigation); MessagingCenter.Subscribe<CategoriasPage,ICollection<Categoria>>(this, "gravarCategorias", (sender, arg) => { this.model.AdicionaCategoriasSelecionadas(arg); if (arg.Count > 1) this.btnCategorias.Text = String.Format("{0} Categorias selecionada", arg.Count); else this.btnCategorias.Text = String.Format("{0} Categoria selecionadas", arg.Count); }); var imgLogo = new Image { Source = ImageSource.FromResource(RetornaCaminhoImagem.GetImagemCaminho("logo_mini.png")), VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center }; sexoPicker = new PickerSexoMais(); if (Device.OS == TargetPlatform.Android) sexoPicker.Title = "Sexo"; sexoPicker.SetBinding<CadastroViewModel>(PickerSexoMais.SelectedIndexProperty, x => x.Usuario.Sexo, BindingMode.Default, new SexoValueConverter(), null); var nascimentoPicker = new DatePickerMais(); var entEmail = new Entry { Placeholder = AppResources.TextoPlaceHolderEmailCadastro, HorizontalOptions = LayoutOptions.FillAndExpand }; entEmail.SetBinding(Entry.TextProperty, "Email"); var entNome = new Entry { Placeholder = AppResources.TextoPlaceHolderNomeCadastro, HorizontalOptions = LayoutOptions.FillAndExpand }; entNome.SetBinding(Entry.TextProperty, "Nome"); var entDDD = new Entry { Placeholder = AppResources.TextoPlaceHolderDDDCadastro, }; entDDD.SetBinding(Entry.TextProperty, "DDD"); var entTelefone = new Entry { Placeholder = AppResources.TextoPlaceHolderTelefoneCadastro }; entTelefone.SetBinding(Entry.TextProperty, "Telefone"); var entMunicipio = new Entry { Placeholder = AppResources.TextoPlaceHolderMunicipioCadastro, HorizontalOptions = LayoutOptions.FillAndExpand }; entMunicipio.SetBinding(Entry.TextProperty, "Municipio"); btnCategorias = new Button { Text = AppResources.TextoPlaceHolderCategoriasCadastro, HorizontalOptions = LayoutOptions.FillAndExpand, Style = Estilos._estiloPadraoButtonFonteMenor }; dataNasc = new DatePicker(); sexoPickerDois = new PickerSexoMais(); gridWrapSexoNascimento = new Grid(); gridWrapSexoNascimento.Children.Add(sexoPicker, 0, 0); gridWrapSexoNascimento.Children.Add(nascimentoPicker, 1, 0); gridWrapSexoNascimentoEdicao = new Grid(); gridWrapSexoNascimentoEdicao.Children.Add(sexoPickerDois, 0, 0); gridWrapSexoNascimentoEdicao.Children.Add(dataNasc, 1, 0); var gridWrapDDDTelefone = new Grid(); gridWrapDDDTelefone.Children.Add(entDDD, 0, 0); gridWrapDDDTelefone.Children.Add(entTelefone, 1, 0); var btnCriar = new Button { Style = Estilos._estiloPadraoButton, Text = "Atualizar", HorizontalOptions = LayoutOptions.End, VerticalOptions = LayoutOptions.Start }; btnCriar.Clicked += async (sender, e) => { var result = await model.AtualizarCadastro(model.Usuario, this.Navigation, gridWrapSexoNascimento.IsVisible ? nascimentoPicker.Date : dataNasc.Date, gridWrapSexoNascimento.IsVisible ? sexoPicker.SelectedIndex : sexoPickerDois.SelectedIndex); if (result) await this.Navigation.PushModalAsync(new MainPage()); }; var gridWrapButtons = new Grid { ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) }, new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) } }, RowDefinitions = { new RowDefinition { Height = GridLength.Auto } } }; //gridWrapButtons.Children.Add(btnVoltar, 0, 0); gridWrapButtons.Children.Add(btnCriar, 1, 0); var mainLayout = new StackLayout { Children = { imgLogo, gridWrapSexoNascimento, gridWrapSexoNascimentoEdicao, btnCategorias, entEmail, entNome, gridWrapDDDTelefone, entMunicipio, gridWrapButtons }, VerticalOptions = LayoutOptions.FillAndExpand, Spacing = 5, Padding = new Thickness(5, 50, 5, 50) }; this.Content = new ScrollView { Content = mainLayout }; } catch (Exception ex) { Insights.Report(ex); } }