Files
School/Anul 2/Semestrul 2/ISS/Lab5/CasualProfile/District 3 App/LogIn/SignInPage.xaml.cs
T
2024-08-31 12:07:21 +03:00

100 lines
3.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using District_3_App.ExtraInfo;
using District_3_App.ProfileSocialNetworkInfoStuff.Entities;
using District_3_App.ProfileSocialNetworkInfoStuff.ProfileNetworkInfo_Repository;
using Log_In;
namespace District_3_App.LogIn
{
public partial class SignInPage : UserControl
{
private UsersRepository usersRepository;
private UserManager userManager;
private User User { get; set; }
public SignInPage()
{
InitializeComponent();
string filePath = "./Users.xml";
usersRepository = new UsersRepository(filePath);
userManager = new UserManager(filePath);
}
private void ForgotPasswordLink_Click(object sender, RoutedEventArgs e)
{
SignInGrid.Children.Clear();
var newContent = new ForgotPassword();
Grid.SetColumn(newContent, 1);
Grid.SetRow(newContent, 1);
Grid.SetRowSpan(newContent, 6);
SignInGrid.Children.Add(newContent);
}
private void BackToSignUp_Click(object sender, RoutedEventArgs e)
{
SignInGrid.Children.Clear();
var newContent = new SignUp();
SignInGrid.Children.Add(newContent);
}
private void TogglePasswordVisibility_Click(object sender, RoutedEventArgs e)
{
if (PasswordVisibilityIcon.Source.ToString().Contains("hidePasswordIcon") && txtVisiblePassword.Visibility == Visibility.Collapsed)
{
txtPassword.Visibility = Visibility.Collapsed;
txtVisiblePassword.Visibility = Visibility.Visible;
PasswordVisibilityIcon.Source = new BitmapImage(new Uri("pack://application:,,,/images/showPasswordIcon.png"));
txtVisiblePassword.Text = txtPassword.Password;
}
else
{
txtPassword.Visibility = Visibility.Visible;
txtVisiblePassword.Visibility = Visibility.Collapsed;
PasswordVisibilityIcon.Source = new BitmapImage(new Uri("pack://application:,,,/images/hidePasswordIcon.png"));
txtPassword.Password = txtVisiblePassword.Text;
}
}
private void SignInButton_Click(object sender, RoutedEventArgs e)
{
string usernameOrEmail = txtUsernameAndEmail.Text;
string password = txtPassword.Password;
if (!string.IsNullOrWhiteSpace(usernameOrEmail) && !string.IsNullOrWhiteSpace(password))
{
User user = usersRepository.GetUserByUsernameOrEmail(usernameOrEmail);
if (user != null && user.Password == password)
{
userManager.StartOrRenewSession(user);
var newContent = new MainWindow();
newContent.Username = user.Username;
newContent.Show();
Window.GetWindow(this).Close();
}
else
{
MessageBox.Show("Invalid username/email or password. Please try again.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
else
{
MessageBox.Show("Please enter both username/email and password.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
}