Commit
This commit is contained in:
@@ -13,6 +13,7 @@ namespace UP01Task2App.Models
|
||||
public string Adress { get; set; }
|
||||
public string PhoneNumber { get; set; }
|
||||
public int SubscriptionNumber { get; set; }
|
||||
public string Gender { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace UP01Task2App.Services
|
||||
@@ -25,6 +27,11 @@ namespace UP01Task2App.Services
|
||||
if (obj.SelectedDate > DateTime.Now)
|
||||
throw new ArgumentException($"В поле \"{fieldName}\" выбранная дата не может быть в будущем");
|
||||
}
|
||||
public static void CheckBirthdate(DatePicker obj)
|
||||
{
|
||||
if (obj.SelectedDate > DateTime.Today.AddYears(-14))
|
||||
throw new ArgumentException($"клиент не может быть младше 14 лет");
|
||||
}
|
||||
public static void ValidateNotNullDatePicker(DatePicker obj, string fieldName)
|
||||
{
|
||||
if (obj.SelectedDate == null)
|
||||
@@ -35,5 +42,19 @@ namespace UP01Task2App.Services
|
||||
if (!int.TryParse(obj.Text, out int _))
|
||||
throw new ArgumentException($"Введенное число в \"{fieldName}\" слишком большое или маленькое");
|
||||
}
|
||||
public static void ValidateCorrectlyFullName(TextBox obj, string fieldName)
|
||||
{
|
||||
string pattern = @"^[А-ЯЁ][а-яё]+$";
|
||||
|
||||
if (!Regex.IsMatch(obj.Text.Trim(), pattern))
|
||||
throw new ArgumentException($"Надпись в поле \"{fieldName}\" имеет неверный формат \nВерный формат: Фамилия");
|
||||
}
|
||||
public static void ValidatePhoneNumber(TextBox obj, string fieldName)
|
||||
{
|
||||
string pattern = @"^(7|8)\d{10}$";
|
||||
|
||||
if (!Regex.IsMatch(obj.Text.Trim(), pattern))
|
||||
throw new ArgumentException($"Номер телефона в поле \"{fieldName}\" имеет неверный формат \nВерный формат: +79999999999 или 79999999999");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,7 +48,8 @@
|
||||
<TextBlock Text="Список клиентов" FontSize="18" Margin="0,0,0,10"/>
|
||||
|
||||
<ListBox ItemsSource="{Binding ClientsUI}"
|
||||
Height="250"/>
|
||||
Name="ClientsListBox"
|
||||
Height="250" SelectionChanged="ListBox_SelectionChanged"/>
|
||||
|
||||
<StackPanel Orientation="Horizontal"
|
||||
Margin="10">
|
||||
@@ -59,7 +60,8 @@
|
||||
|
||||
<Button Content="Изменить клиента"
|
||||
Style="{StaticResource ButtonStyle}"
|
||||
Margin="10"/>
|
||||
ToolTip="Изменить можно только адрес и номер телефона клиента"
|
||||
Margin="10" Click="Button_Click_1"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel>
|
||||
|
||||
@@ -55,13 +55,18 @@ namespace UP01Task2App.Windows
|
||||
try
|
||||
{
|
||||
ValidationHelper.ValidateNotNullTextBox(SurnameTextBox, "Фамилия");
|
||||
ValidationHelper.ValidateCorrectlyFullName(SurnameTextBox, "Фамилия");
|
||||
ValidationHelper.ValidateNotNullTextBox(NameTextBox, "Имя");
|
||||
ValidationHelper.ValidateCorrectlyFullName(NameTextBox, "Имя");
|
||||
ValidationHelper.ValidateNotNullTextBox(PatronymicTextBox, "Отчество");
|
||||
ValidationHelper.ValidateCorrectlyFullName(PatronymicTextBox, "Отчество");
|
||||
ValidationHelper.ValidateNotNullDatePicker(BirthDateDatePicker, "Дата рождения");
|
||||
ValidationHelper.ValidateDateNotInFutureTextBox(BirthDateDatePicker, "Дата рождения");
|
||||
ValidationHelper.CheckBirthdate(BirthDateDatePicker);
|
||||
ValidationHelper.ValidateNotNullTextBox(AdressTextBox, "Фактический адрес");
|
||||
ValidationHelper.ValidateNotNullTextBox(PhoneNumberTextBox, "Телефон");
|
||||
ValidationHelper.ValidateNumTextBox(PhoneNumberTextBox, "Телефон");
|
||||
ValidationHelper.ValidatePhoneNumber(PhoneNumberTextBox, "Телефон");
|
||||
ValidationHelper.ValidateNotNullTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
||||
ValidationHelper.ValidateNumTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
||||
ValidationHelper.ValidateIntRangeTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
||||
@@ -108,5 +113,63 @@ namespace UP01Task2App.Windows
|
||||
UpdateClientUI();
|
||||
}
|
||||
}
|
||||
|
||||
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ClientsUI[ClientsListBox.SelectedIndex] == null)
|
||||
return;
|
||||
|
||||
var client = ClientsUI[ClientsListBox.SelectedIndex];
|
||||
|
||||
if (client != null)
|
||||
{
|
||||
SurnameTextBox.Text = client.Surname;
|
||||
NameTextBox.Text = client.Name;
|
||||
PatronymicTextBox.Text = client.Patronymic;
|
||||
BirthDateDatePicker.SelectedDate = client.BirthDate;
|
||||
AdressTextBox.Text = client.Adress;
|
||||
PhoneNumberTextBox.Text = client.PhoneNumber;
|
||||
SubscriptionMumberTextBox.Text = client.SubscriptionNumber.ToString();
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
private void Button_Click_1(object sender, RoutedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ClientsListBox.SelectedIndex == -1)
|
||||
{
|
||||
MessageBox.Show("Выберите клиента перед изменением");
|
||||
return;
|
||||
}
|
||||
|
||||
ValidationHelper.ValidateNotNullTextBox(AdressTextBox, "Фактический адрес");
|
||||
ValidationHelper.ValidateNotNullTextBox(PhoneNumberTextBox, "Телефон");
|
||||
ValidationHelper.ValidateNumTextBox(PhoneNumberTextBox, "Телефон");
|
||||
ValidationHelper.ValidatePhoneNumber(PhoneNumberTextBox, "Телефон");
|
||||
|
||||
ClientsUI[ClientsListBox.SelectedIndex].PhoneNumber = PhoneNumberTextBox.Text;
|
||||
ClientsUI[ClientsListBox.SelectedIndex].Adress = AdressTextBox.Text;
|
||||
|
||||
try
|
||||
{
|
||||
Json.SaveClientDataToJson(ClientsList);
|
||||
MessageBox.Show("Данные сохранены");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user