namespace practiceApplicaiton; public partial class ClientEditPage : ContentPage { private readonly Client? _client; private List _firms = []; public ClientEditPage(Client? client) { InitializeComponent(); _client = client; Title = client == null ? "Новый клиент" : "Редактировать клиента"; } protected override async void OnAppearing() { base.OnAppearing(); _firms = await Repository.GetFirmsAsync(); FirmPicker.ItemsSource = _firms.Select(f => f.FirmName).ToList(); if (_client != null) { LastNameEntry.Text = _client.LastName; FirstNameEntry.Text = _client.FirstName; PatronymicEntry.Text = _client.Patronymic; PhoneEntry.Text = _client.PhoneNumber; FirmPicker.SelectedIndex = _firms.FindIndex(f => f.FirmId == _client.FirmId); } } private async void OnSaveClicked(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(LastNameEntry.Text) || string.IsNullOrWhiteSpace(FirstNameEntry.Text) || string.IsNullOrWhiteSpace(PhoneEntry.Text) || FirmPicker.SelectedIndex < 0) { await DisplayAlert("Ошибка", "Заполните все обязательные поля", "OK"); return; } var c = new Client { ClientId = _client?.ClientId ?? 0, FirmId = _firms[FirmPicker.SelectedIndex].FirmId, LastName = LastNameEntry.Text.Trim(), FirstName = FirstNameEntry.Text.Trim(), Patronymic = PatronymicEntry.Text?.Trim() ?? "", PhoneNumber = PhoneEntry.Text.Trim(), }; try { if (_client == null) await Repository.AddClientAsync(c); else await Repository.UpdateClientAsync(c); await Navigation.PopAsync(); } catch (Exception ex) { await DisplayAlert("Ошибка", ex.Message, "OK"); } } }