Files
open-save-cloud-client/OpenSaveCloudClient/UserForm.cs
2022-07-14 18:33:30 +02:00

108 lines
3.4 KiB
C#

using OpenSaveCloudClient.Core;
using OpenSaveCloudClient.Models.Remote;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace OpenSaveCloudClient
{
public partial class UserForm : Form
{
private ServerConnector serverConnector;
public UserForm()
{
InitializeComponent();
serverConnector = ServerConnector.GetInstance();
}
private void UserForm_Load(object sender, EventArgs e)
{
User? u = serverConnector.ConnectedUser;
if (u == null)
{
Close();
return;
}
UsernameBox.Text = u.Username;
}
private void SavePasswordButton_Click(object sender, EventArgs e)
{
LockControls(true);
SavePasswordButton.Enabled = false;
if (string.IsNullOrEmpty(NewPasswordBox.Text) || string.IsNullOrEmpty(PasswordAgainBox.Text))
{
MessageBox.Show(
"Password fields are empty",
"Change password",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
LockControls(false);
return;
}
if (NewPasswordBox.Text != PasswordAgainBox.Text)
{
MessageBox.Show(
"Passwords not matches",
"Change password",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
LockControls(false);
return;
}
if (!PasswordTool.CheckRequirements(NewPasswordBox.Text))
{
MessageBox.Show(
"Passwords need at least 6 characters",
"Change password",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
LockControls(false);
return;
}
ThreadPool.QueueUserWorkItem(delegate
{
serverConnector.ChangePassword(new NewPassword { Password = NewPasswordBox.Text, VerifyPassword = PasswordAgainBox.Text });
this.Invoke((MethodInvoker)delegate {
NewPasswordBox.Clear();
PasswordAgainBox.Clear();
LockControls(false);
});
});
}
private void LockControls(bool l)
{
l = !l;
NewPasswordBox.Enabled = l;
PasswordAgainBox.Enabled = l;
}
private void NewPasswordBox_TextChanged(object sender, EventArgs e)
{
bool valid = true;
if (string.IsNullOrEmpty(NewPasswordBox.Text) || string.IsNullOrEmpty(PasswordAgainBox.Text))
{
valid = false;
}
else if (NewPasswordBox.Text != PasswordAgainBox.Text)
{
valid = false;
}
else if (!PasswordTool.CheckRequirements(NewPasswordBox.Text))
{
valid = false;
}
SavePasswordButton.Enabled = valid;
}
}
}