// INVENTORY SEARCH submit button click event private void btn_SearchSubmit_Click(object sender, EventArgs e) { BusinessObjects _businessObjects = new BusinessObjects(); // Element reset to be performed each time, before a search is ran lbl_ResultsFound.Text = null; // Clear contents of search result label cbx_ResultsList.Items.Clear(); // Clear old search results from results combo box cbx_ResultsList.Text = ""; // Clear text from visible combobox area rbox_clerkSearchDisplay.Clear(); // Clear search results each time a new search is submitted inventoryItems = null; // Verify that a query type was selected by the user if ((cbx_QueryType.SelectedItem == null) || (cbx_InventoryStatus.SelectedItem == null) || (tbx_QueryInput.Text =="")) { MessageBox.Show("Please make sure all search criteria is filled out and try again", "Invalid Query Input", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } // SEARCH BY MANUFACTURER NAME - Chech to see if user entered a Manufacturer Name else if (cbx_QueryType.SelectedItem.ToString() == "Manufacturer") { // Generate a list of Inventory Items that match the Manufacturer Name entered by the user inventoryItems = _businessObjects.GetInventoryItemByItemManufacturer(tbx_QueryInput.Text, cbx_InventoryStatus.SelectedIndex); } // SEARCH BY ITEM NAME - Check to see if user entered an Item Name else if (cbx_QueryType.SelectedItem.ToString() == "Item Name") { // Generate a list of Inventory Items that match the Item Name entered by the user inventoryItems = _businessObjects.GetInventoryItemByItemName(tbx_QueryInput.Text, cbx_InventoryStatus.SelectedIndex); } // SEARCH BY ITEM GUID - Check to see if user entered an ID Number else if (cbx_QueryType.SelectedItem.ToString() == "Inventory ID") { try { // Generate a list of Inventory Items that match the Item ID entered by the user inventoryItems = ApplicationObjects.GetInventoryItemByInventoryItemIdAndInventoryItemStatusId(new Guid(tbx_QueryInput.Text), cbx_InventoryStatus.SelectedIndex); } catch (Exception) { // Catch if a non-Guid was entered MessageBox.Show("Search failed! You may have entered an invalid ID. Please check your item ID and try again", "Search Failure", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); rbox_clerkSearchDisplay.AppendText("Input error - please try again"); return; } } // SEARCH BY CATALOG NUMBER - Check to see if user entered an Item Name else if (cbx_QueryType.SelectedItem.ToString() == "Catalog Number") { try { // Generate a list of Inventory Items that match the Item Name entered by the user inventoryItems = _businessObjects.GetInventoryItemByCatalogItemIdAndInventoryItemStatusId(new Guid(tbx_QueryInput.Text), cbx_InventoryStatus.SelectedIndex); } catch (Exception) { // Catch if a non-integer was entered MessageBox.Show("Search failed! You may have entered an invalid ID. Please check your catalog ID and try again", "Search Failure", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); rbox_clerkSearchDisplay.AppendText("Input error - please try again"); return; } } // If nothing is populated into the searchDisplay box, we can assume that there were no search results else { lbl_ResultsFound.Text = "No matches found - please try again"; } // Populate label that displays how many results were found lbl_ResultsFound.Text = (inventoryItems.Count.ToString() + " result(s) found!"); // This string list holds the results of an InventoryItem's ToItemDescription method, which actually // returns a list of individual line items, which each hold the item's attributes that will be // displayed on seperate lines of the text box try { List<string> itemDescriptions = inventoryItems.FirstOrDefault().ToItemDescription(); foreach (string lineItem in itemDescriptions) { // Add each description line item to the text box rbox_clerkSearchDisplay.AppendText(lineItem + Environment.NewLine); } // Populate the search result combobox with the catalog numbers of the search results foreach (InventoryItem inventoryItem in inventoryItems) { cbx_ResultsList.Items.Add(inventoryItem.InventoryItemId.ToString()); } // Set the combobox to show the catalog number of the first search record cbx_ResultsList.SelectedIndex = 0; } catch (Exception) { rbox_clerkSearchDisplay.AppendText("No matches found - please try again"); return; } }