103 lines
2.7 KiB
C#
103 lines
2.7 KiB
C#
using System;
|
||
using System.Linq;
|
||
using Avalonia.Controls;
|
||
using Avalonia.Interactivity;
|
||
using demo_hard.Model;
|
||
|
||
namespace demo_hard;
|
||
|
||
public partial class AddClient : Window
|
||
{
|
||
public AddClient()
|
||
{
|
||
InitializeComponent();
|
||
}
|
||
|
||
private void AddClient_OnClick(object? sender, RoutedEventArgs e)
|
||
{
|
||
using var context = new User2Context();
|
||
|
||
if (string.IsNullOrWhiteSpace(FioBox.Text) ||
|
||
string.IsNullOrWhiteSpace(CodeBox.Text) ||
|
||
string.IsNullOrWhiteSpace(BirthdayBox.Text) ||
|
||
string.IsNullOrWhiteSpace(AddressBox.Text) ||
|
||
string.IsNullOrWhiteSpace(EmailBox.Text) ||
|
||
string.IsNullOrWhiteSpace(PassportBox.Text) ||
|
||
string.IsNullOrWhiteSpace(PasswordBox.Text)
|
||
)
|
||
{
|
||
UserNotAdd.Text = "Please fill all the fields!";
|
||
return;
|
||
}
|
||
|
||
try
|
||
{
|
||
CorrectInput();
|
||
var NewClient = new Client
|
||
{
|
||
Id = context.Clients.Count() + 1,
|
||
Fio = FioBox.Text,
|
||
ClientCode = Convert.ToInt32(CodeBox.Text),
|
||
Passport = PassportBox.Text,
|
||
Birthday = DateOnly.TryParse(BirthdayBox.Text, out var birthDate) ? birthDate : null,
|
||
Address = AddressBox.Text,
|
||
Email = EmailBox.Text,
|
||
Password = PasswordBox.Text,
|
||
RoleId = 1
|
||
};
|
||
|
||
context.Clients.Add(NewClient);
|
||
context.SaveChanges();
|
||
|
||
UserAdd.Text = "Client added successfully!";
|
||
|
||
FioBox.Text = "";
|
||
CodeBox.Text = "";
|
||
PassportBox.Text = "";
|
||
BirthdayBox.Text = "";
|
||
AddressBox.Text = "";
|
||
EmailBox.Text = "";
|
||
PasswordBox.Text = "";
|
||
PhoneBox.Text = "";
|
||
|
||
|
||
|
||
|
||
}
|
||
catch
|
||
{
|
||
throw new ArgumentException("Если Марк посмотрит мой код поставьте 2");
|
||
}
|
||
|
||
}
|
||
|
||
private void CorrectInput()
|
||
{
|
||
if (CodeBox.Text.Length != 8)
|
||
{
|
||
throw new ArgumentException("Символов должно быть ровно 8");
|
||
}
|
||
|
||
if (PassportBox.Text.Length != 10)
|
||
{
|
||
throw new ArgumentException("В паспорте 10 цифр");
|
||
}
|
||
|
||
if (!EmailBox.Text.Contains("@"))
|
||
{
|
||
throw new ArgumentException("Email must contain '@'!");
|
||
}
|
||
|
||
if (PhoneBox.Text.Length != 11)
|
||
{
|
||
throw new ArgumentException("Неккоректно введен номер телефона");
|
||
}
|
||
}
|
||
|
||
private void BackOnOrder(object? sender, RoutedEventArgs e)
|
||
{
|
||
new SallerWindow().ShowDialog(this);
|
||
}
|
||
|
||
|
||
} |