using LDBproject.Entities; using LDBproject.Repositories; using LDBproject.Repositories.Implementations; namespace LDBproject.AdditionalForms; public partial class RegOrder : Form { private readonly IOrderRep _orderRepository; public RegOrder(IOrderRep orderRep, ICustomerCardsRep readerRep, ILibrarianRep employeeRep, IBookRep bookRep) { InitializeComponent(); _orderRepository = orderRep ?? throw new ArgumentNullException(nameof(orderRep)); LibrarianCBox.DataSource = employeeRep.GetCards(); LibrarianCBox.DisplayMember = "FIO"; LibrarianCBox.ValueMember = "CardID"; CardCBox.DataSource = readerRep.GetCards(); CardCBox.DisplayMember = "FIO"; CardCBox.ValueMember = "CardID"; BookColumnCBox.DataSource = bookRep.GetBookList(); BookColumnCBox.DisplayMember = "Title"; BookColumnCBox.ValueMember = "BookID"; } private void SaveBtn_Click(object sender, EventArgs e) { try { if (DataGV.RowCount < 1 || LibrarianCBox.SelectedIndex < 0) { throw new Exception("[ Blanck space left ]"); } _orderRepository.CreateOrder(Order.NewOrder(0, (int)CardCBox.SelectedValue, (int)LibrarianCBox.SelectedValue, CreateBookListFromDG(), BorrowDTPicker.Value)); Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Order Form [ Error while saving order ]", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private List CreateBookListFromDG() { List registrations = new List(); foreach (DataGridViewRow row in DataGV.Rows) { if (row.Cells["BookColumnCBox"].Value != null) { var bookId = (int)row.Cells["BookColumnCBox"].Value; var notes = row.Cells["NoteColumn"].Value?.ToString(); registrations.Add(Registration.OrderReg(0, bookId, notes)); } } return registrations; } private void BackBtn_Click(object sender, EventArgs e) => Close(); }