56 lines
1.8 KiB
C#
56 lines
1.8 KiB
C#
using GuilhermesApp.Helpers;
|
|
using Firebase.Database.Query;
|
|
|
|
namespace GuilhermesApp.Pages;
|
|
|
|
public partial class NewFormPage : ContentPage
|
|
{
|
|
private FirebaseService _firebaseService = new FirebaseService();
|
|
|
|
public NewFormPage()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private async void OnSubmitClicked(object sender, EventArgs e)
|
|
{
|
|
// Obriga a responder a algumas
|
|
if (HumorPicker.SelectedIndex == -1 || SonoPicker.SelectedIndex == -1)
|
|
{
|
|
await DisplayAlert("Erro", "Responde pelo menos às perguntas de humor e sono.", "OK");
|
|
return;
|
|
}
|
|
|
|
try
|
|
{
|
|
var user = _firebaseService.AuthClient.User;
|
|
if (user == null) return;
|
|
|
|
// Prepara os dados do formulário
|
|
var novoFormulario = new
|
|
{
|
|
Data = DateTime.Now.ToString("dd/MM/yyyy HH:mm"),
|
|
Humor = HumorPicker.SelectedItem.ToString(),
|
|
Stress = Math.Round(StressSlider.Value),
|
|
Sono = SonoPicker.SelectedItem.ToString(),
|
|
FezExercicio = ExercicioSwitch.IsToggled,
|
|
Notas = string.IsNullOrWhiteSpace(NotasEntry.Text) ? "Sem notas" : NotasEntry.Text
|
|
};
|
|
|
|
// Guarda na Realtime Database na pasta "Forms" -> "ID do Utilizador"
|
|
await _firebaseService.DbClient
|
|
.Child("Forms")
|
|
.Child(user.Uid)
|
|
.PostAsync(novoFormulario); // PostAsync cria um novo registo na lista
|
|
|
|
await DisplayAlert("Sucesso", "Formulário submetido e guardado!", "OK");
|
|
|
|
// Volta à página anterior
|
|
await Shell.Current.GoToAsync("..");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
await DisplayAlert("Erro", $"Não foi possível guardar. Erro: {ex.Message}", "OK");
|
|
}
|
|
}
|
|
} |