コード例 #1
0
        private static void CleanUp(CustomerResourceManager crm, Fleet fleet)
        {
            Console.CursorVisible = true;
            Console.Clear();

            crm.Save();
            fleet.SaveRentals();
            fleet.SaveVehicles();
        }
コード例 #2
0
 public CustomerManager(CustomerResourceManager crm, Fleet fleet)
 {
     _crm   = crm;
     _fleet = fleet;
     AddCustomer.Submitted += AddCustomerOnSubmitted;
     CustomerSearch.GetComponent <Form>("initial search").Submitted += CustomerSearchOnSearch;
     CustomerSearch.GetComponent <Form>("customer list").Submitted  += CustomerSearchOnSearch;
     ModifyCustomer.GetComponent <Form>("search").Submitted         += ModifyCustomerOnSearch;
     ModifyCustomer.GetComponent <Form>("modify").Submitted         += ModifyCustomerOnSubmitted;
     DeleteCustomer.GetComponent <Form>("select").Submitted         += DeleteCustomerOnSearch;
     DeleteCustomer.GetComponent <Form>("confirm").Submitted        += DeleteCustomerOnSubmitted;
     CustomerReport.PreRender += CustomerReportOnFocused;
 }
コード例 #3
0
 public FleetManager(Fleet fleet, CustomerResourceManager crm)
 {
     _fleet = fleet;
     _crm   = crm;
     AddVehicle.Submitted += AddVehicleOnSubmitted;
     FleetSearch.GetComponent <Form>("initial search").Submitted += FleetSearchOnSearch;
     FleetSearch.GetComponent <Form>("customer list").Submitted  += FleetSearchOnSearch;
     ModifyVehicle.GetComponent <Form>("search").Submitted       += ModifyVehicleOnSearch;
     ModifyVehicle.GetComponent <Form>("modify").Submitted       += ModifyVehicleOnSubmit;
     DeleteVehicle.GetComponent <Form>("select").Submitted       += DeleteVehicleOnSearch;
     DeleteVehicle.GetComponent <Form>("confirm").Submitted      += DeleteVehicleOnSubmitted;
     RentVehicle.Submitted   += RentVehicleOnSubmitted;
     ReturnVehicle.Submitted += ReturnVehicleOnSubmitted;
     VehicleReport.PreRender += VehicleReportOnFocused;
 }
コード例 #4
0
        public static void Main(string[] args)
        {
            if (!Directory.Exists("../../../Data"))
            {
                Directory.CreateDirectory("../../../Data");
            }

            var crm   = new CustomerResourceManager("../../../Data/customers.csv");
            var fleet = new Fleet("../../../Data/fleet.csv", "../../../Data/rentals.csv");

            var customerManager = new CustomerManager(crm, fleet);
            var fleetManager    = new FleetManager(fleet, crm);

            var mainMenu = new Menu("Main Menu", new Component[]
            {
                MenuGenerator.GenerateManager("Customers", customerManager).Menu,
                MenuGenerator.GenerateManager("Fleet", fleetManager).Menu
            });

            var manager = new MenuManager(mainMenu);

            var guac = new Guac(manager);

            guac.Focus(mainMenu);

            guac.KeyPressed += async(_, ev) =>
            {
                if (ev.Key.Key != ConsoleKey.Escape)
                {
                    return;
                }
                ev.Cancel = true;

                var exitResult = await guac.ShowDialogue(
                    "Exit", "Are you sure you want to exit?", new[]
                {
                    "Ok",
                    "Cancel"
                });

                if (exitResult == "Ok")
                {
                    ProgramRunning = false;
                    CleanUp(crm, fleet);
                    Environment.Exit(0);
                }
            };

            Console.CursorVisible = false;

            while (true)
            {
                guac.HandleEventLoop();

                if (!ProgramRunning)
                {
                    break;
                }
            }

            CleanUp(crm, fleet);

            // ReSharper disable once FunctionNeverReturns
        }