diff --git a/UP01Task2App/UP01Task2App/Models/Trainer.cs b/UP01Task2App/UP01Task2App/Models/Trainer.cs index a3fa35b..4f564a6 100644 --- a/UP01Task2App/UP01Task2App/Models/Trainer.cs +++ b/UP01Task2App/UP01Task2App/Models/Trainer.cs @@ -10,5 +10,13 @@ namespace UP01Task2App.Models public string Name { get; set; } public string Patronymic { get; set; } public string Speciality { get; set; } + + public string ShortName + { + get + { + return $"{Surmname} {Name[0]}.{Patronymic[0]}."; + } + } } } diff --git a/UP01Task2App/UP01Task2App/Services/JsonService.cs b/UP01Task2App/UP01Task2App/Services/JsonService.cs index f426a7e..7e49c9f 100644 --- a/UP01Task2App/UP01Task2App/Services/JsonService.cs +++ b/UP01Task2App/UP01Task2App/Services/JsonService.cs @@ -67,5 +67,44 @@ namespace UP01Task2App.Services public void SaveTrainerDataToJson(List trainersList) => SaveToJson(trainerPath, trainersList); public void SaveClientDataToJson(List clientsList) => SaveToJson(clientPath, clientsList); public void SaveRecordDataToJson(List recordsList) => SaveToJson(recordPath, recordsList); + +#if DEBUG + private void CreateTrainersJson() + { + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + + string text = File.ReadAllText("asd.txt", Encoding.GetEncoding(1251)); + + List trList = new(); + + foreach (var line in text.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries)) + { + var parts = line.Split(' ', StringSplitOptions.RemoveEmptyEntries); + + trList.Add(new Trainer + { + Surmname = parts[0], + Name = parts[1], + Patronymic = parts[2], + Speciality = string.Join(" ", parts.Skip(3)) + }); + } + + var options = new JsonSerializerOptions + { + WriteIndented = true + }; + + string json = JsonSerializer.Serialize(trList, options); + + MessageBox.Show(json); + + string path = "data/trainers.json"; + + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path)!); + + File.WriteAllText(path, json, Encoding.UTF8); + } +#endif } } diff --git a/UP01Task2App/UP01Task2App/Services/ValidationHelper.cs b/UP01Task2App/UP01Task2App/Services/ValidationHelper.cs index a727289..26d3949 100644 --- a/UP01Task2App/UP01Task2App/Services/ValidationHelper.cs +++ b/UP01Task2App/UP01Task2App/Services/ValidationHelper.cs @@ -56,5 +56,10 @@ namespace UP01Task2App.Services if (!Regex.IsMatch(obj.Text.Trim(), pattern)) throw new ArgumentException($"Номер телефона в поле \"{fieldName}\" имеет неверный формат \nВерный формат: +79999999999 или 79999999999"); } + public static void ValidateNotNullComboBox(ComboBox obj, string fieldName) + { + if (obj.SelectedValue == null) + throw new ArgumentException($"Выберите значение в поле \"{fieldName}\""); + } } } \ No newline at end of file diff --git a/UP01Task2App/UP01Task2App/Windows/AppointmentWindow.xaml b/UP01Task2App/UP01Task2App/Windows/AppointmentWindow.xaml index ffd3a19..1b7558c 100644 --- a/UP01Task2App/UP01Task2App/Windows/AppointmentWindow.xaml +++ b/UP01Task2App/UP01Task2App/Windows/AppointmentWindow.xaml @@ -13,13 +13,14 @@ - + - @@ -27,10 +28,9 @@ Style="{StaticResource DatePickerStyle}"/>