using ProjectFamilyBudget.Entities; using ProjectFamilyBudget.Entities.Enums; using ProjectFamilyBudget.Repositories; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ProjectFamilyBudget.Forms { public partial class FormPeople : Form { private readonly IPeople _people; private int? _peopleId; public int Id { set { try { var people = _people.ReadPeopleById(value); if (people == null) { throw new InvalidDataException(nameof(people)); } textBoxPeopleName.Text = people.Name; textBoxLastName.Text = people.LastName; numericUpDownAge.Value = people.Age; comboBoxMember.SelectedItem = people.MemberType; _peopleId = value; } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка при получени данных", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } } public FormPeople(IPeople people) { InitializeComponent(); _people = people ?? throw new ArgumentNullException(nameof(people)); comboBoxMember.DataSource = Enum.GetValues(typeof(FamilyMemberType)); } private void buttonSave_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(textBoxPeopleName.Text) || string.IsNullOrWhiteSpace(textBoxLastName.Text) || (comboBoxMember.SelectedIndex < 0)) { throw new Exception("Имеются незаполненные поля"); } if (_peopleId.HasValue) { _people.UpdatePeople(CreatePeople(_peopleId.Value)); } else { _people.CreatePeople(CreatePeople(0)); } Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void buttonCansel_Click(object sender, EventArgs e) => Close(); private People CreatePeople(int id) => People.CreateEntity(id, textBoxPeopleName.Text, textBoxLastName.Text, Convert.ToInt32(numericUpDownAge.Value) ,(FamilyMemberType)comboBoxMember.SelectedItem!); } }