using ProjectFamilyBudget.Entities; 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 FormPeopleIncome : Form { private readonly IPeopleIncome _peopleIncome; public FormPeopleIncome(IPeopleIncome peopleIncome, IPeople people, IIncome income) { InitializeComponent(); _peopleIncome = peopleIncome ?? throw new ArgumentNullException(nameof(peopleIncome)); comboBoxPeople.DataSource = people.ReadPeople(); comboBoxPeople.DisplayMember = "Name"; comboBoxPeople.ValueMember = "Id"; ColumnIncome.DataSource = income.ReadIncome(); ColumnIncome.DisplayMember = "Name"; ColumnIncome.ValueMember = "Id"; } private void buttonSave_Click(object sender, EventArgs e) { try { if ((dataGridView.RowCount < 1) || (comboBoxPeople.SelectedIndex < 0)) { throw new Exception("Имеются незаполненные поля"); } _peopleIncome.CreatePeopleIncome(PeopleIncome.CreateOperation(0, (int)comboBoxPeople.SelectedValue!, dateTimePicker.Value, CreateListPeopleIncomeFromDataGrid())); Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void buttonCansel_Click(object sender, EventArgs e) => Close(); private List CreateListPeopleIncomeFromDataGrid() { var list = new List(); foreach (DataGridViewRow row in dataGridView.Rows) { if (row.Cells["ColumnIncome"].Value == null || row.Cells["ColumnSum"].Value == null) { continue; } list.Add(IncomePeopleIncome.CreateElement(0, Convert.ToInt32(row.Cells["ColumnIncome"].Value) , Convert.ToInt32(row.Cells["ColumnSum"].Value))); } return list; } } }