Commit
This commit is contained in:
@@ -13,6 +13,7 @@ namespace UP01Task2App.Models
|
|||||||
public string Adress { get; set; }
|
public string Adress { get; set; }
|
||||||
public string PhoneNumber { get; set; }
|
public string PhoneNumber { get; set; }
|
||||||
public int SubscriptionNumber { get; set; }
|
public int SubscriptionNumber { get; set; }
|
||||||
|
public string Gender { get; set; }
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace UP01Task2App.Services
|
namespace UP01Task2App.Services
|
||||||
@@ -25,6 +27,11 @@ namespace UP01Task2App.Services
|
|||||||
if (obj.SelectedDate > DateTime.Now)
|
if (obj.SelectedDate > DateTime.Now)
|
||||||
throw new ArgumentException($"В поле \"{fieldName}\" выбранная дата не может быть в будущем");
|
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)
|
public static void ValidateNotNullDatePicker(DatePicker obj, string fieldName)
|
||||||
{
|
{
|
||||||
if (obj.SelectedDate == null)
|
if (obj.SelectedDate == null)
|
||||||
@@ -35,5 +42,19 @@ namespace UP01Task2App.Services
|
|||||||
if (!int.TryParse(obj.Text, out int _))
|
if (!int.TryParse(obj.Text, out int _))
|
||||||
throw new ArgumentException($"Введенное число в \"{fieldName}\" слишком большое или маленькое");
|
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"/>
|
<TextBlock Text="Список клиентов" FontSize="18" Margin="0,0,0,10"/>
|
||||||
|
|
||||||
<ListBox ItemsSource="{Binding ClientsUI}"
|
<ListBox ItemsSource="{Binding ClientsUI}"
|
||||||
Height="250"/>
|
Name="ClientsListBox"
|
||||||
|
Height="250" SelectionChanged="ListBox_SelectionChanged"/>
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal"
|
<StackPanel Orientation="Horizontal"
|
||||||
Margin="10">
|
Margin="10">
|
||||||
@@ -59,7 +60,8 @@
|
|||||||
|
|
||||||
<Button Content="Изменить клиента"
|
<Button Content="Изменить клиента"
|
||||||
Style="{StaticResource ButtonStyle}"
|
Style="{StaticResource ButtonStyle}"
|
||||||
Margin="10"/>
|
ToolTip="Изменить можно только адрес и номер телефона клиента"
|
||||||
|
Margin="10" Click="Button_Click_1"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
|
|||||||
@@ -55,13 +55,18 @@ namespace UP01Task2App.Windows
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
ValidationHelper.ValidateNotNullTextBox(SurnameTextBox, "Фамилия");
|
ValidationHelper.ValidateNotNullTextBox(SurnameTextBox, "Фамилия");
|
||||||
|
ValidationHelper.ValidateCorrectlyFullName(SurnameTextBox, "Фамилия");
|
||||||
ValidationHelper.ValidateNotNullTextBox(NameTextBox, "Имя");
|
ValidationHelper.ValidateNotNullTextBox(NameTextBox, "Имя");
|
||||||
|
ValidationHelper.ValidateCorrectlyFullName(NameTextBox, "Имя");
|
||||||
ValidationHelper.ValidateNotNullTextBox(PatronymicTextBox, "Отчество");
|
ValidationHelper.ValidateNotNullTextBox(PatronymicTextBox, "Отчество");
|
||||||
|
ValidationHelper.ValidateCorrectlyFullName(PatronymicTextBox, "Отчество");
|
||||||
ValidationHelper.ValidateNotNullDatePicker(BirthDateDatePicker, "Дата рождения");
|
ValidationHelper.ValidateNotNullDatePicker(BirthDateDatePicker, "Дата рождения");
|
||||||
ValidationHelper.ValidateDateNotInFutureTextBox(BirthDateDatePicker, "Дата рождения");
|
ValidationHelper.ValidateDateNotInFutureTextBox(BirthDateDatePicker, "Дата рождения");
|
||||||
|
ValidationHelper.CheckBirthdate(BirthDateDatePicker);
|
||||||
ValidationHelper.ValidateNotNullTextBox(AdressTextBox, "Фактический адрес");
|
ValidationHelper.ValidateNotNullTextBox(AdressTextBox, "Фактический адрес");
|
||||||
ValidationHelper.ValidateNotNullTextBox(PhoneNumberTextBox, "Телефон");
|
ValidationHelper.ValidateNotNullTextBox(PhoneNumberTextBox, "Телефон");
|
||||||
ValidationHelper.ValidateNumTextBox(PhoneNumberTextBox, "Телефон");
|
ValidationHelper.ValidateNumTextBox(PhoneNumberTextBox, "Телефон");
|
||||||
|
ValidationHelper.ValidatePhoneNumber(PhoneNumberTextBox, "Телефон");
|
||||||
ValidationHelper.ValidateNotNullTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
ValidationHelper.ValidateNotNullTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
||||||
ValidationHelper.ValidateNumTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
ValidationHelper.ValidateNumTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
||||||
ValidationHelper.ValidateIntRangeTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
ValidationHelper.ValidateIntRangeTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
||||||
@@ -108,5 +113,63 @@ namespace UP01Task2App.Windows
|
|||||||
UpdateClientUI();
|
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