Пример #1
0
		public EmployeeMainPage (Empregado empregado, int qtdVisualizacoes)
		{
			InitializeComponent ();

			#if DEBUG
			bool contains = App.Current.Properties.ContainsKey("Session");
			if (contains)
				lblNome.Text = ((LoginResponse)App.Current.Properties ["Session"]).Token;
			#else
			lblNome.Text = "Olá, " + empregado.Nome;
			#endif

			if (qtdVisualizacoes == 0) {
				lblVisualizado.Text = "Seu perfil ainda não foi visualizado.";
			} else if (qtdVisualizacoes == 1) {
				lblVisualizado.Text = "Seu perfil foi visualizado apenas uma vez.";
			} else {
				lblVisualizado.Text = 
					string.Format ("Seu perfil já foi visualizado {0} vezes.", qtdVisualizacoes);
			}

			btnPerfil.Clicked += (object sender, EventArgs e) => {				
				App.Current.MainPage = new EmployeeRegisterPage2(empregado);
			};
		}
Пример #2
0
		public DetailsPage (Empregado empregado)
		{
			InitializeComponent ();

			_empregado = empregado;

			lblNome.Text = empregado.Nome + " " + empregado.Sobrenome;
			lblQtdQualificacoes.Text = empregado.QtdAvalicaoes.ToString();
			imgEstrelas.Source = "star" + empregado.Estrelas.ToString () + ".png";
			lblCelular.Text = empregado.TelCelular;
			lblTelefone.Text = empregado.TelResidencial;

			string strEndereco = string.Format ("{0}, {1} {2}, {3}, {4}/{5}",
				                     empregado.Endereco.Logradouro,
				                     empregado.Endereco.Numero,
				                     empregado.Endereco.Complemento, 
				                     empregado.Endereco.Bairro,
				                     empregado.Endereco.Cidade,
				                     empregado.Endereco.Estado);

			lblEndereco.Text = strEndereco;

			StringBuilder sb = new StringBuilder ();
			foreach (Especialidade espec in empregado.Especialidades) {
				sb.AppendLine (espec.TipoEspecialidade);
			}
			lblEspecialidades.Text = sb.ToString();

			Color color = Color.FromHex ("333333");

			foreach (string c in empregado.Comentarios) {
				Label lbl = new Label ();
				lbl.HorizontalOptions = LayoutOptions.StartAndExpand;
				lbl.Text = c;

				if (color == Color.FromHex ("333333"))
					color = Color.FromHex ("777777");
				else
					color = Color.FromHex ("333333");

				lbl.TextColor = color;

				stkComentarios.Children.Add (lbl);
			}

			if (stkComentarios.Children.Count == 0) {
				Label lbl = new Label ();
				lbl.HorizontalOptions = LayoutOptions.StartAndExpand;
				lbl.Text = "Nenhum comentário.";
				lbl.TextColor = color;

				stkComentarios.Children.Add (lbl);
			}

			btnAvaliar.Clicked += async (sender, e) => {
				await Navigation.PushAsync(new EvaluationPage(_empregado));
			};
		}
Пример #3
0
		public RegisterPage1 ()
		{
			InitializeComponent ();

			btnProfissional.Clicked += async (sender, e) => {
				if (await IsValid ()) {
					Empregado empregado = new Empregado(){
						Email = txtEmail.Text,
						Senha = txtSenha.Text
					};
					App.Current.MainPage = new EmployeeRegisterPage2 (empregado);
				}
			};

			btnContratante.Clicked += async (sender, e) => {
				if (await IsValid ()) {
					App.Current.MainPage = new EmployerRegisterPage2 (txtEmail.Text, txtSenha.Text);
				}
			};
		}
Пример #4
0
		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);
			};
		}
Пример #5
0
		public async Task RegisterEmployeeAsync(Empregado empregado)
		{
			string json = JsonConvert.SerializeObject (empregado);
			StringContent content = new StringContent (json, Encoding.UTF8, "application/json");

			using (HttpClient client = new HttpClient ()) {
				client.BaseAddress = new Uri(Constants.ApiUrl);

				if (empregado.IdEmpregado > 0)
					client.DefaultRequestHeaders.Add ("X-Auth-Token", 
						((LoginResponse)App.Current.Properties ["Session"]).Token);

				var response = empregado.IdEmpregado == 0 ?
								await client.PostAsync ("Empregado", content) :
								await client.PutAsync ("Empregado", content);
						
				if (!response.IsSuccessStatusCode) {
					string strContent = await response.Content.ReadAsStringAsync ();

					Regex rxMessage = new Regex ("\"Message\": ?\"([^\"]+)\"", RegexOptions.IgnoreCase);
					Match m = rxMessage.Match (strContent);

					if (m.Success)
						throw new Exception (m.Groups[1].Value);
					else
						throw new Exception (response.StatusCode.ToString());
				}
			}
		}
Пример #6
0
		private void Fill(Empregado empregado)
		{
			pckSexo.SelectedIndex = empregado.Sexo == 'M' ? 0 : 1;
			pckDtNasc.Date = empregado.DataNascimento;

			celNome.Text = empregado.Nome;
			celSobrenome.Text = empregado.Sobrenome;
			if (empregado.Endereco != null) {
				celBairro.Text = empregado.Endereco.Bairro;

				celCep.Text = empregado.Endereco.Cep;
				celCidade.Text = empregado.Endereco.Cidade;
				celComplemento.Text = empregado.Endereco.Complemento;
				celNumero.Text = empregado.Endereco.Numero;
				celRua.Text = empregado.Endereco.Logradouro;
				celUF.Text = empregado.Endereco.Estado;
			}
			celCpf.Text = empregado.Cpf;
			celMiniCV.Text = empregado.Sobre;
			celTelefone.Text = empregado.TelResidencial;
			celCelular.Text = empregado.TelCelular;

			swtAceitaDormir.IsToggled = empregado.AceitaDormir;
		}
Пример #7
0
		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");
				}
			};
		}