// Method to perform search on the querey private void search(RPN rpn, Fleet fleet) { Console.WriteLine("\n--------------------------------------------- Searching available vehicles ---------------------------------------------"); // Create new datatable for available vehicles (unrented) DataTable AvaiableVehicles = new DataTable(); // Fill table for available vehicles CsvOperations.SearchToTable(fleet, AvaiableVehicles); // Show search to table datatable CsvOperations.ShowDataTable(AvaiableVehicles, fleet.FleetFile, "ASCII", true); Console.Write("\nInfix expression: "); foreach (string token in rpn.InfixTokens) { Console.Write(token + " "); } Console.WriteLine(); Console.Write("Postfix expression: "); foreach (string token in rpn.PostfixTokens) { Console.Write(token + " "); } Console.WriteLine(); Console.WriteLine(); fleet.search(out string[] result, rpn); if (result.Length == 0) { throw new Exception("No match found"); } List <string> results = new List <string>(); foreach (string res in result) { // display vehicle by registration plate (rego) Vehicle v; for (int i = 0; i < fleet.vehicles.Count; i++) { // go through, find the vehicle by rego v = (Vehicle)fleet.vehicles[i]; if (v.registration == res) { results.Add(v.ToCSVstring()); break; } } } Console.WriteLine("\n-------------------------------------------------- Query Search Output -------------------------------------------------"); // Create new datatable for query result for searched vehicles DataTable resultTable = new DataTable(); // fill query result table CsvOperations.SearchToTable(fleet, resultTable, results); // show datatable CsvOperations.ShowDataTable(resultTable, fleet.FleetFile, "Extended", true); }
// Method to perform search on the querey private void search(RPN rpn, Fleet fleet) { // hardcode some vehicles and create sets of attributes. // a set is comprised of vehicle number plates Console.WriteLine("\n---------------- Searching available vehicles --------------"); DataTable AvaiableVehicles = new DataTable(); CsvOperations.SearchToTable(fleet, AvaiableVehicles); CsvOperations.ShowDataTable(AvaiableVehicles, fleet.FleetFile, "ASCII", true); Console.Write("\nInfix expression: "); foreach (string token in rpn.InfixTokens) { Console.Write(token + " "); } Console.WriteLine(); Console.Write("Postfix expression: "); foreach (string token in rpn.PostfixTokens) { Console.Write(token + " "); } Console.WriteLine(); Console.WriteLine(); fleet.search(out string[] result, rpn); if (result.Length == 0) { throw new Exception("No match found"); } List <string> results = new List <string>(); foreach (string res in result) { // display vehicle by registration plate (rego) Vehicle v; for (int i = 0; i < fleet.vehicles.Count; i++) { // go through, find the vehicle by rego v = (Vehicle)fleet.vehicles[i]; if (v.registration == res) { results.Add(v.ToCSVstring()); break; } } } DataTable resultTable = new DataTable(); CsvOperations.SearchToTable(fleet, resultTable, results); CsvOperations.ShowDataTable(resultTable, fleet.FleetFile, "Extended", true); }
// method to show all vehicles if query is a blank line private void search(Fleet fleet) { Console.WriteLine("\n-------------------------------------------- Showing all available vehicles --------------------------------------------"); // Create new datatable for all vehicles (unrented) DataTable AllVehicles = new DataTable(); // Fill table for all vehicles CsvOperations.SearchToTable(fleet, AllVehicles, null); // Show search to table datatable CsvOperations.ShowDataTable(AllVehicles, fleet.FleetFile, "ASCII", true); }
// This methods displays the data table to the console, where it sources the csv files from the specified locations private void DisplayTable(string option) { DataTable rentals = new DataTable(); DataTable fleet = new DataTable(); DataTable customers = new DataTable(); switch (option) { case "Customer": CsvOperations.ShowDataTable(customers, Crm.CrmFile, CsvOperations.borderStyle); break; case "Fleet": CsvOperations.ShowDataTable(fleet, Fleet.FleetFile, CsvOperations.borderStyle); break; case "Rentals": CsvOperations.RentalsToTable(Fleet, rentals); CsvOperations.ShowDataTable(rentals, Fleet.RentalsFile, CsvOperations.borderStyle, true); break; } }