private void buttonPresiseSearch_Click(object sender, EventArgs e)
        {
            if (textBoxSearch.Text.Equals(""))
            {
                MessageBox.Show("检索关键词为空");
                return;
            }
            try
            {
                switch (comboBoxOption.SelectedIndex)
                {
                case 0:
                    ShowSupplierOrdersData(SupplierOrderDataAccess.SelectOrderByOrderId(textBoxSearch.Text));
                    break;

                case 1:
                    ShowSupplierOrdersData(SupplierOrderDataAccess.SelectOrderBySupplierId(textBoxSearch.Text));
                    break;

                case 2:
                    ShowSupplierOrdersData(SupplierOrderDataAccess.SelectOrderByExactUsername(textBoxSearch.Text));
                    break;

                case 3:
                    ShowSupplierOrdersData(SupplierOrderDataAccess.SelectOrderByOrderDate(textBoxSearch.Text));
                    break;

                case 4:
                    ShowSupplierOrdersData(SupplierOrderDataAccess.SelectOrderByAmount(textBoxSearch.Text));
                    break;

                case 5:
                    ShowSupplierOrdersData(SupplierOrderDataAccess.SelectOrderByStatusId(textBoxSearch.Text));
                    break;

                case 6:
                    ShowSupplierOrdersData(SupplierOrderDataAccess.SelectOrderByExactStatusName(textBoxSearch.Text));
                    break;

                case 7:
                    ShowSupplierOrdersData(SupplierOrderDataAccess.SelectOrderByIsNewBook(textBoxSearch.Text));
                    break;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 private void iconButtonSupply_Click(object sender, EventArgs e)
 {
     if (textBoxISBN.Text.Length == 0)
     {
         MessageBox.Show("ISBN不能为空");
         return;
     }
     if (BookDataAccess.IsBookExisted(textBoxISBN.Text))
     {
         SupplierOrderDataAccess.InsertSupplierOrderOfExistentBook(SupplierInfo.supplier.Id, DateTime.Now, (int)numericUpDownAmount.Value, textBoxISBN.Text);
         MessageBox.Show("发货成功");
     }
     else
     {
         MessageBox.Show("您供应的图书ISBN在书库中未被检索到,\r\n您需要录入关于新书的信息");
         NewBookForm newBookForm = new NewBookForm();
         SendOrderInfoEvent += newBookForm.GetInfo;
         SendOrderInfoEvent.Invoke(textBoxISBN.Text, (int)numericUpDownAmount.Value);
         newBookForm.ShowDialog();
     }
 }
 private void ShowAllSupplierOrderData()
 {
     try
     {
         dataGridViewOrders.Rows.Clear();
         var orders = SupplierOrderDataAccess.GetAllSupplierOrders();
         foreach (var order in orders)
         {
             int             rowId = dataGridViewOrders.Rows.Add();
             DataGridViewRow row   = dataGridViewOrders.Rows[rowId];
             row.Cells["OrderId"].Value    = order.Id;
             row.Cells["SupplierId"].Value = order.Supplier.Id;
             row.Cells["Username"].Value   = order.Supplier.Username;
             row.Cells["OrderDate"].Value  = order.Order_Date.ToString("yyyy-MM-dd hh:mm:ss");
             row.Cells["Amount"].Value     = order.Amount;
             row.Cells["Status"].Value     = order.Status;
             row.Cells["IsNew"].Value      = order.Is_New ? "是" : "否";
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("刷新失败\n" + ex.Message);
     }
 }
 private void dataGridViewMyOrders_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     if (dataGridViewMyOrders.Columns[e.ColumnIndex].Name == "Detail" && e.RowIndex >= 0)
     {
         string OrderId_Value = dataGridViewMyOrders.Rows[e.RowIndex].Cells["OrderId"].Value?.ToString();
         bool   IsNewBook;
         try
         {
             IsNewBook = SupplierOrderDataAccess.GetIsNewBook(OrderId_Value);
         }
         catch (MyException ex)
         {
             MessageBox.Show(ex.Message);
             return;
         }
         if (!IsNewBook)
         {
             var book = BookDataAccess.GetFullBookBySupplierExistentBookOrderId(OrderId_Value);
             if (book == null)
             {
                 MessageBox.Show("图书不存在");
                 return;
             }
             BookDetailForm detailForm = new BookDetailForm();
             SendBookInfoEvent += detailForm.ShowBookDetail;
             SendBookInfoEvent.Invoke(book);
             detailForm.ShowDialog();
         }
         else
         {
             var new_book  = NewBookInfoOfSupplierOrderDataAccess.GetNewBookInfoBySupplierOrderId(OrderId_Value);
             int status_id = new_book.Supplier_Order.Status.Id;
             if (status_id == 1) // 未入库
             {
                 BookUnstockedDetailForm detailForm = new BookUnstockedDetailForm();
                 SendNewBookInfoEvent += detailForm.ShowNewBookDetail;
                 SendNewBookInfoEvent.Invoke(new_book);
                 detailForm.ShowDialog();
             }
             else // 已入库
             {
                 var book = BookDataAccess.GetFullBookByISBN(new_book.Book_ISBN);
                 if (book == null)
                 {
                     MessageBox.Show("图书不存在");
                     return;
                 }
                 BookDetailForm detailForm = new BookDetailForm();
                 SendBookInfoEvent += detailForm.ShowBookDetail;
                 SendBookInfoEvent.Invoke(book);
                 detailForm.ShowDialog();
             }
         }
     }
     else if (dataGridViewMyOrders.Columns[e.ColumnIndex].Name == "Cancel" && e.RowIndex >= 0)
     {
         string OrderId_Value  = dataGridViewMyOrders.Rows[e.RowIndex].Cells["OrderId"].Value.ToString();
         int    StatusId_Value = SupplierOrderDataAccess.GetStatusIdValue(OrderId_Value);
         if (StatusId_Value == 1)
         {
             try
             {
                 SupplierOrderDataAccess.CancelOrder(OrderId_Value);
             }
             catch (Exception ex)
             {
                 MessageBox.Show("取消订单失败\n" + ex.Message);
             }
         }
         ShowMyOrders();
     }
     else if (dataGridViewMyOrders.Columns[e.ColumnIndex].Name == "Delete" && e.RowIndex >= 0)
     {
         string OrderId_Value = dataGridViewMyOrders.Rows[e.RowIndex].Cells["OrderId"].Value.ToString();
         try
         {
             SupplierOrderDataAccess.DeleteOrder(OrderId_Value);
         }
         catch (Exception ex)
         {
             MessageBox.Show("删除订单失败\n" + ex.Message);
         }
         ShowMyOrders();
     }
 }
 private void dataGridViewOrders_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     if (dataGridViewOrders.Columns[e.ColumnIndex].Name == "SupplierDetail" && e.RowIndex >= 0)
     {
         string             Username_Value     = dataGridViewOrders.Rows[e.RowIndex].Cells["SupplierId"].Value.ToString();
         var                supplier           = SupplierDataAccess.GetSupplierById(Username_Value);
         SupplierDetailForm supplierDetailForm = new SupplierDetailForm();
         SendSupplierInfoEvent += supplierDetailForm.ShowDetail;
         SendSupplierInfoEvent.Invoke(supplier);
         supplierDetailForm.ShowDialog();
     }
     else if (dataGridViewOrders.Columns[e.ColumnIndex].Name == "BookDetail" && e.RowIndex >= 0)
     {
         string OrderId_Value = dataGridViewOrders.Rows[e.RowIndex].Cells["OrderId"].Value?.ToString();
         bool   IsNewBook;
         try
         {
             IsNewBook = SupplierOrderDataAccess.GetIsNewBook(OrderId_Value);
         }
         catch (MyException ex)
         {
             MessageBox.Show(ex.Message);
             return;
         }
         if (!IsNewBook)
         {
             var book = BookDataAccess.GetFullBookBySupplierExistentBookOrderId(OrderId_Value);
             if (book == null)
             {
                 MessageBox.Show("图书不存在");
                 return;
             }
             BookDetailForm detailForm = new BookDetailForm();
             SendBookInfoEvent += detailForm.ShowDetail;
             SendBookInfoEvent.Invoke(book);
             detailForm.ShowDialog();
         }
         else
         {
             var new_book  = NewBookInfoOfSupplierOrderDataAccess.GetNewBookInfoBySupplierOrderId(OrderId_Value);
             int status_id = new_book.Supplier_Order.Status.Id;
             if (status_id == 1) // 未入库
             {
                 BookUnstockedDetailForm detailForm = new BookUnstockedDetailForm();
                 SendNewBookInfoEvent += detailForm.ShowNewBookDetail;
                 SendNewBookInfoEvent.Invoke(new_book);
                 detailForm.ShowDialog();
             }
             else // 已入库
             {
                 var book = BookDataAccess.GetFullBookByISBN(new_book.Book_ISBN);
                 if (book == null)
                 {
                     MessageBox.Show("图书不存在");
                     return;
                 }
                 BookDetailForm detailForm = new BookDetailForm();
                 SendBookInfoEvent += detailForm.ShowDetail;
                 SendBookInfoEvent.Invoke(book);
                 detailForm.ShowDialog();
             }
         }
     }
     else if (dataGridViewOrders.Columns[e.ColumnIndex].Name == "Warehouse" && e.RowIndex >= 0)
     {
         string OrderId_Value  = dataGridViewOrders.Rows[e.RowIndex].Cells["OrderId"].Value.ToString();
         int    StatusId_Value = SupplierOrderDataAccess.GetStatusIdValue(OrderId_Value);
         if (StatusId_Value == 1)
         {
             bool IsNewBook;
             try
             {
                 IsNewBook = SupplierOrderDataAccess.GetIsNewBook(OrderId_Value);
             }
             catch (MyException ex)
             {
                 MessageBox.Show(ex.Message);
                 return;
             }
             if (IsNewBook)
             {
                 bool is_on_sale = MessageBox.Show("是否立即上架该图书?", "上架", MessageBoxButtons.OKCancel) == DialogResult.OK;
                 try
                 {
                     SupplierOrderDataAccess.WarehouseNewBook(OrderId_Value, is_on_sale);
                 }
                 catch (MyException ex)
                 {
                     MessageBox.Show(ex.Message);
                 }
             }
             else
             {
                 try
                 {
                     SupplierOrderDataAccess.WarehouseExistentBook(OrderId_Value);
                 }
                 catch (MyException ex)
                 {
                     MessageBox.Show(ex.Message);
                 }
             }
         }
         ShowAllSupplierOrderData();
     }
     else if (dataGridViewOrders.Columns[e.ColumnIndex].Name == "Cancel" && e.RowIndex >= 0)
     {
         string OrderId_Value = dataGridViewOrders.Rows[e.RowIndex].Cells["OrderId"].Value.ToString();
         try
         {
             SupplierOrderDataAccess.CancelOrder(OrderId_Value);
         }
         catch (Exception ex)
         {
             MessageBox.Show("取消订单失败\n" + ex.Message);
         }
         ShowAllSupplierOrderData();
     }
     else if (dataGridViewOrders.Columns[e.ColumnIndex].Name == "Delete" && e.RowIndex >= 0)
     {
         string OrderId_Value = dataGridViewOrders.Rows[e.RowIndex].Cells["OrderId"].Value.ToString();
         try
         {
             SupplierOrderDataAccess.DeleteOrder(OrderId_Value);
         }
         catch (Exception ex)
         {
             MessageBox.Show("删除订单失败\n" + ex.Message);
         }
         ShowAllSupplierOrderData();
     }
 }