public App () { SetStyles (); Current = this; var service = new RestService (); var loginResponse = UserData.Load (); if (loginResponse == null) { loginResponse = Properties.ContainsKey("Session") ? (LoginResponse)Properties ["Session"] : null; } if (loginResponse != null) { // Verifica a sessao na API if (service.CheckSession (loginResponse.Token)) { // Se estiver OK, inicia normalmente Properties["Session"] = loginResponse; ShowMainPage(loginResponse); } else { MainPage = new LoginPage (); } } else MainPage = new LoginPage (); }
public LoginPage () { InitializeComponent (); btnLogin.Clicked += async (sender, e) => { if (IsValid()) { var service = new RestService(); // Obter o ID da nova sessão do Usuário var result = service.Login (txtEmail.Text.ToLower(), txtSenha.Text); // Se Login OK if (result != null) { App.Current.Properties["Session"] = result; App.Current.ShowMainPage(); } else { await DisplayAlert("Ops... :(", "Email e/ou senha inválidos.", "OK"); } } }; btnEsqueci.Clicked += async (sender, e) => { if (EmailIsValid()) { string email = txtEmail.Text.Trim(); var result = await DisplayAlert("Alteração de Senha", "Tem certeza que deseja alterar a senha para o usuário " + email + " ?", "Sim", "Não"); if (result) { RestService rest = new RestService(); var restResult = await rest.ChangePassword(email); if (restResult.IsSuccess) { await DisplayAlert("Pronto!", "Foi enviado um email com as instruções para troca de senha no endereço " + email, "OK"); App.Current.ShowMainPage(); } else { await DisplayAlert("Ops... :(", restResult.Message, "OK"); } } } else { await DisplayAlert("Atenção", "Digite um email válido.", "OK"); } }; btnCriarConta.Clicked += async (sender, e) => { await Navigation.PushModalAsync(new RegisterPage1()); }; }
public SearchPage (string cep, int tipo, int distancia) : this() { // Chamar os dados da API CNE passando estes 3 parametros var service = new RestService (); var empregadosList = service.List (cep, tipo, distancia); lstPesquisa.ItemsSource = empregadosList; lstPesquisa.ItemTemplate = new DataTemplate (typeof(TextCell)); lstPesquisa.ItemTemplate.SetBinding (TextCell.TextProperty, "Nome"); lstPesquisa.ItemTemplate.SetBinding (TextCell.DetailProperty, "TextoEspecialidades"); lstPesquisa.ItemSelected += async (object sender, SelectedItemChangedEventArgs e) => { Empregado empregado = (Empregado)e.SelectedItem; await new RestService().SetVisualization(empregado.IdUsuario); await Navigation.PushAsync(new DetailsPage(empregado)); }; }
public void ShowMainPage (LoginResponse loginResponse) { if (loginResponse != null) { UserData.Save (loginResponse); if (loginResponse.AlterarSenha) { MainPage = new ChangePasswordPage (); } else if (loginResponse.IsEmpregado) { RestService rest = new RestService (); Empregado empregado = rest.GetEmployee (loginResponse.Token); MainPage = new EmployeeMainPage (empregado, loginResponse.QtdVisualizacoes); } else { MainPage = new NavigationPage (new CNE.MainPage ()); } } else { MainPage = new LoginPage (); } }
public EmployerRegisterPage2 (string email, string senha) { InitializeComponent (); _email = email; _senha = senha; pckSexo.Items.Add ("Masculino"); pckSexo.Items.Add ("Feminino"); pckDtNasc.Date = DateTime.Now.AddYears (-20); btnRegistrar.Clicked += async (sender, e) => { if (IsValid()) { try { if (_user == null) _user = new Usuario(); _user.Nome = txtNome.Text.Trim(); _user.Sobrenome = txtSobrenome.Text.Trim(); _user.Cpf = txtCpf.Text.Trim(); _user.DataNascimento = pckDtNasc.Date; _user.Email = _email; _user.Senha = _senha; _user.IdPerfil = 1; // Contratante // Chamar o método para gravar na API RestService service = new RestService(); await service.RegisterEmployerAsync(_user); await DisplayAlert("Parabéns", "Seu registro foi efetuado!", "OK"); App.Current.ShowMainPage(); } catch (Exception ex) { await DisplayAlert("Ops ... :(", "Occoreu um problema durante o registro: " + ex.Message, "OK"); } } }; }
public EvaluationPage (Empregado empregado) { InitializeComponent (); _empregado = empregado; lblNome.Text = empregado.Nome; sldEstrelas.Minimum = 0; sldEstrelas.Maximum = 5; sldEstrelas.Value = empregado.Estrelas; imgEstrelas.Source = string.Format ("star{0:N0}.png", empregado.Estrelas); //TODO: Obter avaliação anterior, se existente. btnEnviar.Clicked += async (sender, e) => { try { var rest = new RestService(); var result = await rest.SendEvaluation( empregado.IdEmpregado, swtContrataria.IsToggled, Convert.ToInt32(sldEstrelas.Value), txtComentario.Text); empregado.Estrelas = result.Estrelas; empregado.QtdAvalicaoes = result.QtdAvaliacoes; empregado.Comentarios = result.Comentarios; await DisplayAlert("Pronto!", "Sua avaliação foi enviada com sucesso!", "OK"); var page = await Navigation.PopAsync(); Navigation.RemovePage(page); } catch (Exception ex) { await DisplayAlert("Ops... :(", "Não foi possível salvar sua avaliação devido a um problema: " + ex.Message, "OK"); } }; sldEstrelas.ValueChanged += (sender, e) => { imgEstrelas.Source = string.Format ("star{0:N0}.png", e.NewValue); }; }
private async Task<bool> IsValid() { bool valid = true; string msg = null; if (string.IsNullOrWhiteSpace (txtEmail.Text)) { valid = false; msg += "Digite um email válido." + Environment.NewLine; } else if (!Regex.IsMatch (txtEmail.Text, "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$", RegexOptions.IgnoreCase)) { valid = false; msg += "Digite um email válido." + Environment.NewLine; } else { // Verificar se o email já está em uso RestService service = new RestService(); bool disponivel = await service.VerificarEmailDisponivel (txtEmail.Text.ToLower()); if (!disponivel) { valid = false; msg += "Este email já está sendo utilizado. Por favor escolha outro email."; } } if (string.IsNullOrWhiteSpace (txtSenha.Text)) { valid = false; msg += "Digite uma senha." + Environment.NewLine; } else if (txtSenha.Text.Length < 6) { valid = false; msg += "Digite uma senha com um mínimo de 6 caracteres."; } if (!string.IsNullOrWhiteSpace (msg)) { msg = msg.Trim (); if (msg.Length > 0) await DisplayAlert ("Atenção", msg, "OK"); } return valid; }
public ChangePasswordPage () { InitializeComponent (); btnOK.Clicked += async (sender, e) => { try { RestService rest = new RestService(); if (IsValid()) { await rest.SetNewPassword(txtConfSenha.Text); await DisplayAlert("Beleza!", "Sua senha foi alterada.", "OK"); var session = (LoginResponse)App.Current.Properties["Session"]; session.AlterarSenha = false; App.Current.Properties["Session"] = session; App.Current.ShowMainPage(); } } catch (Exception ex) { await DisplayAlert("Erro", "Houve um erro durante a chamada ao servidor (" + ex.Message + ")", "OK"); } }; }
public EmployeeRegisterPage2 (Empregado empregado) { InitializeComponent (); _especialidades = ListarEspecialidades (); pckSexo.Items.Add ("Masculino"); pckSexo.Items.Add ("Feminino"); pckDtNasc.Date = DateTime.Now.AddYears (-20); pckDtNasc.MaximumDate = DateTime.Now.AddYears (-16); int row = 0; foreach (var espec in _especialidades) { gridEspecialidades.RowDefinitions.Add (new RowDefinition () { Height = GridLength.Auto }); var label = new Label (); var swt = new Switch (); if (empregado != null) swt.IsToggled = empregado.Especialidades.Any (X => X.TipoEspecialidade == espec.Key); label.Text = espec.Key; label.HorizontalOptions = LayoutOptions.EndAndExpand; label.VerticalOptions = LayoutOptions.CenterAndExpand; gridEspecialidades.Children.Add (label, 0, row); gridEspecialidades.Children.Add (swt, 1, row); row++; } if (empregado != null) Fill (empregado); btnCancelar.Clicked += (sender, e) => { App.Current.ShowMainPage(); }; btnRegistrar.Clicked += async (sender, e) => { try { if (IsValid ()) { empregado.Nome = celNome.Text; empregado.Sobrenome = celSobrenome.Text; empregado.Sexo = pckSexo.SelectedIndex == 0 ? 'M' : 'F'; empregado.Cpf = celCpf.Text; empregado.IdPerfil = 2; // Fixo para empregado empregado.DataNascimento = pckDtNasc.Date; empregado.Email = empregado.Email.ToLower(); empregado.Senha = empregado.Senha; empregado.Sobre = celMiniCV.Text; empregado.TelCelular = celCelular.Text; empregado.TelResidencial = celTelefone.Text; empregado.AceitaDormir = swtAceitaDormir.IsToggled; if (empregado.Endereco == null) empregado.Endereco = new Endereco(); empregado.Endereco.Cep = celCep.Text; empregado.Endereco.Logradouro = celRua.Text; empregado.Endereco.Complemento = celComplemento.Text; empregado.Endereco.Bairro = celBairro.Text; empregado.Endereco.Cidade = celCidade.Text; empregado.Endereco.Estado = celUF.Text; empregado.Endereco.Numero = celNumero.Text; string label = ""; var especs = new List<Especialidade>(); // Carrega a lista de Especialidades for(int i = 0; i < gridEspecialidades.Children.Count; i++) { var element = gridEspecialidades.Children[i]; if(element is Label) { label = ((Label)element).Text; } else if (element is Switch) { var s = (Switch)element; if (s.IsToggled) especs.Add(new Especialidade(){ IdTipoEspecialidade = _especialidades[label], TipoEspecialidade = label }); } } empregado.Especialidades = especs; RestService service = new RestService(); await service.RegisterEmployeeAsync(empregado); await DisplayAlert("Pronto", "Seus dados foram salvos com sucesso.", "OK"); App.Current.Logout(); } } catch (Exception ex) { await DisplayAlert("Ops... :(", "Não foi possível registrar seu usuário devido a um problema (" + ex.Message + ").", "OK"); } }; celCep.Completed += async (sender, e) => { try { RestService service = new RestService(); CepApiResponse endereco = await service.GetAddressFromApi(celCep.Text); if (!endereco.Ativo) { await DisplayAlert("Atenção", "CEP não encontrado.", "OK"); return; } celCep.Text = endereco.Cep; celRua.Text = endereco.Logradouro; celBairro.Text = endereco.Bairro; celCidade.Text = endereco.Cidade; celUF.Text = endereco.UF; } catch (Exception ex) { await DisplayAlert("Ops ... :(", "Não foi possível obter os dados do CEP fornecido devido a um problema (" + ex.Message + ").", "OK"); } }; }