final commit
This commit is contained in:
@@ -15,6 +15,14 @@ namespace UP01Task2App.Models
|
|||||||
public int SubscriptionNumber { get; set; }
|
public int SubscriptionNumber { get; set; }
|
||||||
public string Gender { get; set; }
|
public string Gender { get; set; }
|
||||||
|
|
||||||
|
public string ShortName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return $"{Surname} {Name[0]}.{Patronymic[0]}.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return Surname + " " + Name + " " + Patronymic;
|
return Surname + " " + Name + " " + Patronymic;
|
||||||
|
|||||||
@@ -8,7 +8,15 @@ namespace UP01Task2App.Models
|
|||||||
{
|
{
|
||||||
public Client Client { get; set; }
|
public Client Client { get; set; }
|
||||||
public Trainer Trainer { get; set; }
|
public Trainer Trainer { get; set; }
|
||||||
DateOnly RecordDate { set; get; }
|
public DateOnly RecordDate { set; get; }
|
||||||
TimeOnly RecordTime { set; get; }
|
public TimeOnly RecordTime { set; get; }
|
||||||
|
|
||||||
|
public string RecordInfo
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return RecordDate.ToString() + " в " + RecordTime.ToString() + ", " + Trainer.Speciality + ", " + Trainer.ShortName;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ namespace UP01Task2App.Services
|
|||||||
public void SaveRecordDataToJson(List<Record> recordsList) => SaveToJson(recordPath, recordsList);
|
public void SaveRecordDataToJson(List<Record> recordsList) => SaveToJson(recordPath, recordsList);
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
private void CreateTrainersJson()
|
public void CreateTrainersJson()
|
||||||
{
|
{
|
||||||
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
|
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using System.Text;
|
|||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using UP01Task2App.Models;
|
||||||
|
|
||||||
namespace UP01Task2App.Services
|
namespace UP01Task2App.Services
|
||||||
{
|
{
|
||||||
@@ -27,6 +28,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 ValidateDateNotInThePastTextBox(DatePicker obj, string fieldName)
|
||||||
|
{
|
||||||
|
if (obj.SelectedDate < DateTime.Now.Date)
|
||||||
|
throw new ArgumentException($"В поле \"{fieldName}\" выбранная дата не может быть в прошлом");
|
||||||
|
}
|
||||||
public static void CheckBirthdate(DatePicker obj)
|
public static void CheckBirthdate(DatePicker obj)
|
||||||
{
|
{
|
||||||
if (obj.SelectedDate > DateTime.Today.AddYears(-14))
|
if (obj.SelectedDate > DateTime.Today.AddYears(-14))
|
||||||
@@ -49,6 +55,13 @@ namespace UP01Task2App.Services
|
|||||||
if (!Regex.IsMatch(obj.Text.Trim(), pattern))
|
if (!Regex.IsMatch(obj.Text.Trim(), pattern))
|
||||||
throw new ArgumentException($"Надпись в поле \"{fieldName}\" имеет неверный формат \nВерный формат: Фамилия");
|
throw new ArgumentException($"Надпись в поле \"{fieldName}\" имеет неверный формат \nВерный формат: Фамилия");
|
||||||
}
|
}
|
||||||
|
public static void ValidateTime(TextBox obj)
|
||||||
|
{
|
||||||
|
string pattern = @"^([01]\d|2[0-3]):[0-5]\d$";
|
||||||
|
|
||||||
|
if (!Regex.IsMatch(obj.Text.Trim(), pattern))
|
||||||
|
throw new ArgumentException($"Время введено в неверном формате, верный формат: hh:mm");
|
||||||
|
}
|
||||||
public static void ValidatePhoneNumber(TextBox obj, string fieldName)
|
public static void ValidatePhoneNumber(TextBox obj, string fieldName)
|
||||||
{
|
{
|
||||||
string pattern = @"^(7|8)\d{10}$";
|
string pattern = @"^(7|8)\d{10}$";
|
||||||
@@ -61,5 +74,22 @@ namespace UP01Task2App.Services
|
|||||||
if (obj.SelectedValue == null)
|
if (obj.SelectedValue == null)
|
||||||
throw new ArgumentException($"Выберите значение в поле \"{fieldName}\"");
|
throw new ArgumentException($"Выберите значение в поле \"{fieldName}\"");
|
||||||
}
|
}
|
||||||
|
public static void ValidateEightDigitLenght(TextBox obj, string fieldName)
|
||||||
|
{
|
||||||
|
if (obj.Text.Trim().Length != 8)
|
||||||
|
throw new ArgumentException($"Допустимая длинна значения поля \"{fieldName}\" 8 символов");
|
||||||
|
}
|
||||||
|
public static void ValibateClientIdentity(List<Client> ClientsList, TextBox obj)
|
||||||
|
{
|
||||||
|
int subscriptionNumber = int.Parse(obj.Text);
|
||||||
|
|
||||||
|
if (ClientsList.Where(a => a.SubscriptionNumber == subscriptionNumber) != null)
|
||||||
|
throw new ArgumentException($"Клииент с таким номером абонемента уже существует");
|
||||||
|
}
|
||||||
|
public static void ValidateTimeNotInPast(TimeOnly time)
|
||||||
|
{
|
||||||
|
if (time < TimeOnly.FromDateTime(DateTime.Now))
|
||||||
|
throw new ArgumentException($"Время не может быть в прошлом");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
<StackPanel Margin="10" HorizontalAlignment="Center">
|
<StackPanel Margin="10" HorizontalAlignment="Center">
|
||||||
|
|
||||||
<TextBlock Text="Клиент:" FontWeight="Bold"/>
|
<TextBlock Text="Клиент:" FontWeight="Bold"/>
|
||||||
<TextBlock Text="{Binding SelectedClient.LastName}" Margin="0,0,0,10" FontSize="16"/>
|
<TextBlock Text="{Binding InClient.ShortName}" Margin="0,0,0,10" FontSize="16"/>
|
||||||
|
|
||||||
<TextBlock Text="Тренировка"/>
|
<TextBlock Text="Тренировка"/>
|
||||||
<ComboBox Name="TrainingTextBox"
|
<ComboBox Name="TrainingTextBox"
|
||||||
@@ -24,12 +24,17 @@
|
|||||||
Style="{StaticResource ComboBoxStyle}"/>
|
Style="{StaticResource ComboBoxStyle}"/>
|
||||||
|
|
||||||
<TextBlock Text="Дата"/>
|
<TextBlock Text="Дата"/>
|
||||||
<DatePicker SelectedDate="{Binding SelectedDate}"
|
<DatePicker Name="DatePicker"
|
||||||
Style="{StaticResource DatePickerStyle}"/>
|
Style="{StaticResource DatePickerStyle}"/>
|
||||||
|
|
||||||
|
<TextBlock Text="Время"/>
|
||||||
|
<TextBox Name="TimeTextBox"
|
||||||
|
Style="{StaticResource TextBoxStyle}"/>
|
||||||
|
|
||||||
<Button Content="Записать"
|
<Button Content="Записать"
|
||||||
Margin="0,30,0,0"
|
Margin="0,30,0,0"
|
||||||
Width="200"
|
Width="200"
|
||||||
|
IsDefault="True"
|
||||||
Style="{StaticResource ButtonStyle}" Click="Button_Click"/>
|
Style="{StaticResource ButtonStyle}" Click="Button_Click"/>
|
||||||
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ using System.Security.Policy;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Controls.Primitives;
|
||||||
using System.Windows.Data;
|
using System.Windows.Data;
|
||||||
using System.Windows.Documents;
|
using System.Windows.Documents;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
@@ -26,10 +27,11 @@ namespace UP01Task2App.Windows
|
|||||||
public Record OutputRecord { get; private set; }
|
public Record OutputRecord { get; private set; }
|
||||||
public ObservableCollection<Trainer> Trainers { get; set; } = new ObservableCollection<Trainer>();
|
public ObservableCollection<Trainer> Trainers { get; set; } = new ObservableCollection<Trainer>();
|
||||||
public ObservableCollection<string> TrainersSpeciality { get; set; } = new ObservableCollection<string>();
|
public ObservableCollection<string> TrainersSpeciality { get; set; } = new ObservableCollection<string>();
|
||||||
|
public Client InClient { get; set; }
|
||||||
public AppointmentWindow(List<Trainer> _trainersList, Client client)
|
public AppointmentWindow(List<Trainer> _trainersList, Client client)
|
||||||
{
|
{
|
||||||
TrainersList = _trainersList;
|
TrainersList = _trainersList;
|
||||||
|
InClient = client;
|
||||||
|
|
||||||
foreach (var item in TrainersList)
|
foreach (var item in TrainersList)
|
||||||
{
|
{
|
||||||
@@ -44,20 +46,49 @@ namespace UP01Task2App.Windows
|
|||||||
foreach (var item in TrainersSpecialities)
|
foreach (var item in TrainersSpecialities)
|
||||||
{
|
{
|
||||||
TrainersSpeciality.Add(item);
|
TrainersSpeciality.Add(item);
|
||||||
MessageBox.Show(item.ToString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.DataContext = this;
|
this.DataContext = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Button_Click(object sender, RoutedEventArgs e)
|
private void Button_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
ValidationHelper.ValidateNotNullComboBox(TrainingTextBox, "Тренировка");
|
try
|
||||||
ValidationHelper.ValidateNotNullComboBox(TrainerTextBox, "Тренировка");
|
{
|
||||||
|
ValidationHelper.ValidateNotNullComboBox(TrainingTextBox, "Тренировка");
|
||||||
|
ValidationHelper.ValidateNotNullComboBox(TrainerTextBox, "Тренер");
|
||||||
|
ValidationHelper.ValidateNotNullDatePicker(DatePicker, "Дата");
|
||||||
|
ValidationHelper.ValidateDateNotInThePastTextBox(DatePicker, "Дата");
|
||||||
|
ValidationHelper.ValidateTime(TimeTextBox);
|
||||||
|
|
||||||
|
|
||||||
|
DateTime dt = DatePicker.SelectedDate.Value;
|
||||||
|
|
||||||
|
DateOnly date = DateOnly.FromDateTime(dt);
|
||||||
|
TimeOnly time = TimeOnly.Parse(TimeTextBox.Text);
|
||||||
|
|
||||||
|
if(dt == DateTime.Now.Date)
|
||||||
|
ValidationHelper.ValidateTimeNotInPast(time);
|
||||||
|
|
||||||
|
|
||||||
|
OutputRecord = new Record
|
||||||
|
{
|
||||||
|
Client = InClient,
|
||||||
|
Trainer = (Trainer)TrainerTextBox.SelectedValue,
|
||||||
|
RecordDate = date,
|
||||||
|
RecordTime = time
|
||||||
|
};
|
||||||
|
|
||||||
|
this.DialogResult = true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TrainingTextBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
private void TrainingTextBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
|
|||||||
@@ -10,27 +10,27 @@
|
|||||||
<Grid>
|
<Grid>
|
||||||
<StackPanel Margin="10">
|
<StackPanel Margin="10">
|
||||||
<TextBlock Text="Клиент:" FontWeight="Bold"/>
|
<TextBlock Text="Клиент:" FontWeight="Bold"/>
|
||||||
<TextBlock Text="{Binding SelectedClient.LastName}" Margin="0,0,0,10" FontSize="16"/>
|
<TextBlock Text="{Binding InClient.ShortName}" Margin="0,0,0,10" FontSize="16"/>
|
||||||
|
|
||||||
<TextBlock Text="Список записей" FontSize="18" Margin="0,0,0,10"/>
|
<TextBlock Text="Список записей" FontSize="18" Margin="0,0,0,10"/>
|
||||||
|
|
||||||
<ListBox ItemsSource="{Binding Appointments}"
|
<ListBox ItemsSource="{Binding ClientRecords}"
|
||||||
SelectedItem="{Binding SelectedAppointment}"
|
|
||||||
Height="200"
|
Height="200"
|
||||||
DisplayMemberPath="LastName"/>
|
Name="RecordsTextBox"
|
||||||
|
DisplayMemberPath="RecordInfo"/>
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Button Content="Назад"
|
<Button Content="Назад"
|
||||||
Command="{Binding BackCommand}"
|
Name="BackButton"
|
||||||
Margin="10"
|
Margin="10"
|
||||||
Width="200"
|
Width="200"
|
||||||
Style="{StaticResource ButtonStyle}"/>
|
Style="{StaticResource ButtonStyle}" Click="BackButton_Click"/>
|
||||||
|
|
||||||
<Button Content="Отменить запись"
|
<Button Content="Отменить запись"
|
||||||
Command="{Binding CancelAppointmentCommand}"
|
Name="CancelRecord"
|
||||||
Margin="10"
|
Margin="10"
|
||||||
Width="200"
|
Width="200"
|
||||||
Style="{StaticResource ButtonStyle}"/>
|
Style="{StaticResource ButtonStyle}" Click="CancelRecord_Click"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
@@ -9,6 +10,7 @@ using System.Windows.Input;
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using System.Windows.Media.Imaging;
|
using System.Windows.Media.Imaging;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
|
using UP01Task2App.Models;
|
||||||
|
|
||||||
namespace UP01Task2App.Windows
|
namespace UP01Task2App.Windows
|
||||||
{
|
{
|
||||||
@@ -17,9 +19,41 @@ namespace UP01Task2App.Windows
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class ClientAppointmentList : Window
|
public partial class ClientAppointmentList : Window
|
||||||
{
|
{
|
||||||
public ClientAppointmentList()
|
public Record RecordForDelete { get; set; }
|
||||||
|
public Client InClient { get; set; }
|
||||||
|
public ObservableCollection<Record> ClientRecords { get; set; } = new();
|
||||||
|
public ClientAppointmentList(List<Record> recordsList, Client inClient)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
InClient = inClient;
|
||||||
|
|
||||||
|
ClientRecords = new ObservableCollection<Record>(
|
||||||
|
recordsList.Where(a => a.Client.SubscriptionNumber == inClient.SubscriptionNumber));
|
||||||
|
|
||||||
|
|
||||||
|
this.DataContext = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BackButton_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = false;
|
||||||
|
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CancelRecord_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (RecordsTextBox.SelectedIndex != -1)
|
||||||
|
{
|
||||||
|
RecordForDelete = (Record)RecordsTextBox.SelectedValue;
|
||||||
|
|
||||||
|
this.DialogResult = true;
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show("Выберите запись перед отменой");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,8 +70,9 @@ namespace UP01Task2App.Windows
|
|||||||
ValidationHelper.ValidateNotNullTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
ValidationHelper.ValidateNotNullTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
||||||
ValidationHelper.ValidateNumTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
ValidationHelper.ValidateNumTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
||||||
ValidationHelper.ValidateIntRangeTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
ValidationHelper.ValidateIntRangeTextBox(SubscriptionMumberTextBox, "Номер абонемента");
|
||||||
|
ValidationHelper.ValidateEightDigitLenght(SubscriptionMumberTextBox, "Номер абонемента");
|
||||||
|
|
||||||
if (rbMan.IsChecked == null && rbWoman.IsChecked == null)
|
if (rbMan.IsChecked != true && rbWoman.IsChecked != true)
|
||||||
{
|
{
|
||||||
throw new ArgumentException("Выберите пол");
|
throw new ArgumentException("Выберите пол");
|
||||||
}
|
}
|
||||||
@@ -89,28 +90,49 @@ namespace UP01Task2App.Windows
|
|||||||
{
|
{
|
||||||
if (ValidateFields())
|
if (ValidateFields())
|
||||||
{
|
{
|
||||||
ClientsList.Add(new Client
|
int subscriptionNumber = int.Parse(SubscriptionMumberTextBox.Text);
|
||||||
{
|
|
||||||
Surname = SurnameTextBox.Text,
|
|
||||||
Name = NameTextBox.Text,
|
|
||||||
Adress = AdressTextBox.Text,
|
|
||||||
BirthDate = BirthDateDatePicker.SelectedDate,
|
|
||||||
Patronymic = PatronymicTextBox.Text,
|
|
||||||
PhoneNumber = PhoneNumberTextBox.Text,
|
|
||||||
SubscriptionNumber = int.Parse(SubscriptionMumberTextBox.Text)
|
|
||||||
});
|
|
||||||
|
|
||||||
try
|
bool exists = ClientsList.Any(c =>
|
||||||
{
|
c.SubscriptionNumber == subscriptionNumber
|
||||||
Json.SaveClientDataToJson(ClientsList);
|
);
|
||||||
MessageBox.Show("Данные сохранены");
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
MessageBox.Show(ex.Message);
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateClientUI();
|
if (!exists)
|
||||||
|
{
|
||||||
|
string gender = "";
|
||||||
|
if (rbMan.IsChecked == true)
|
||||||
|
gender = "М";
|
||||||
|
else
|
||||||
|
gender = "Ж";
|
||||||
|
|
||||||
|
ClientsList.Add(new Client
|
||||||
|
{
|
||||||
|
Surname = SurnameTextBox.Text,
|
||||||
|
Name = NameTextBox.Text,
|
||||||
|
Adress = AdressTextBox.Text,
|
||||||
|
BirthDate = BirthDateDatePicker.SelectedDate,
|
||||||
|
Patronymic = PatronymicTextBox.Text,
|
||||||
|
PhoneNumber = PhoneNumberTextBox.Text,
|
||||||
|
SubscriptionNumber = int.Parse(SubscriptionMumberTextBox.Text),
|
||||||
|
Gender = gender
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Json.SaveClientDataToJson(ClientsList);
|
||||||
|
MessageBox.Show("Данные сохранены");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateClientUI();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show("Клиент с таким абонементом уже существует");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,6 +154,15 @@ namespace UP01Task2App.Windows
|
|||||||
AdressTextBox.Text = client.Adress;
|
AdressTextBox.Text = client.Adress;
|
||||||
PhoneNumberTextBox.Text = client.PhoneNumber;
|
PhoneNumberTextBox.Text = client.PhoneNumber;
|
||||||
SubscriptionMumberTextBox.Text = client.SubscriptionNumber.ToString();
|
SubscriptionMumberTextBox.Text = client.SubscriptionNumber.ToString();
|
||||||
|
|
||||||
|
if (client.Gender == "М")
|
||||||
|
{
|
||||||
|
rbMan.IsChecked = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rbWoman.IsChecked = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@@ -152,13 +183,15 @@ namespace UP01Task2App.Windows
|
|||||||
ValidationHelper.ValidateNumTextBox(PhoneNumberTextBox, "Телефон");
|
ValidationHelper.ValidateNumTextBox(PhoneNumberTextBox, "Телефон");
|
||||||
ValidationHelper.ValidatePhoneNumber(PhoneNumberTextBox, "Телефон");
|
ValidationHelper.ValidatePhoneNumber(PhoneNumberTextBox, "Телефон");
|
||||||
|
|
||||||
ClientsUI[ClientsListBox.SelectedIndex].PhoneNumber = PhoneNumberTextBox.Text;
|
ClientsList[ClientsListBox.SelectedIndex].PhoneNumber = PhoneNumberTextBox.Text;
|
||||||
ClientsUI[ClientsListBox.SelectedIndex].Adress = AdressTextBox.Text;
|
ClientsList[ClientsListBox.SelectedIndex].Adress = AdressTextBox.Text;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Json.SaveClientDataToJson(ClientsList);
|
Json.SaveClientDataToJson(ClientsList);
|
||||||
MessageBox.Show("Данные сохранены");
|
MessageBox.Show("Данные сохранены");
|
||||||
|
|
||||||
|
UpdateClientUI();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -174,20 +207,56 @@ namespace UP01Task2App.Windows
|
|||||||
|
|
||||||
private void Button_Click_2(object sender, RoutedEventArgs e)
|
private void Button_Click_2(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
AppointmentWindow wnd = new(TrainersList, new Client { Name = "Лох"}); //Временное добавление клиента
|
if (ClientsListBox.SelectedIndex != -1)
|
||||||
bool? res = wnd.ShowDialog();
|
|
||||||
|
|
||||||
if (res == true)
|
|
||||||
{
|
{
|
||||||
RecordsList.Add(new Record()); //Временная заглушка, добавить результат из Dialog
|
AppointmentWindow wnd = new(TrainersList, (Client)ClientsListBox.SelectedValue);
|
||||||
|
bool? res = wnd.ShowDialog();
|
||||||
|
|
||||||
Json.SaveRecordDataToJson(RecordsList);
|
if (res == true)
|
||||||
|
{
|
||||||
|
var record = wnd.OutputRecord;
|
||||||
|
RecordsList.Add(record);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Json.SaveRecordDataToJson(RecordsList);
|
||||||
|
MessageBox.Show("Запись успешно добавлена");
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MessageBox.Show("Не удалось добавить запись");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
MessageBox.Show("Выберите клиента перед записью");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Button_Click_3(object sender, RoutedEventArgs e)
|
private void Button_Click_3(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
//Json.CreateTrainersJson();
|
if (ClientsListBox.SelectedIndex != -1)
|
||||||
|
{
|
||||||
|
ClientAppointmentList wnd = new(RecordsList, (Client)ClientsListBox.SelectedValue);
|
||||||
|
bool? res = wnd.ShowDialog();
|
||||||
|
|
||||||
|
if (res == true)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
RecordsList.Remove(wnd.RecordForDelete);
|
||||||
|
Json.SaveRecordDataToJson(RecordsList);
|
||||||
|
|
||||||
|
MessageBox.Show("Запись успешно удалена");
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MessageBox.Show("Не удалось сохранить данные");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
MessageBox.Show("Выберите клиента перед просмотром");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user