Exemple #1
0
        private void VehicleCheckIn()
        {
            string licenseNumber   = UI.GetLicenseNumberInput();
            bool   isVehicleListed = m_Garage.IsVehicleListed(licenseNumber);

            try
            {
                if (isVehicleListed)
                {
                    string vehicleState = UI.GetVehicleStateInput();
                    m_Garage.ChangeVehicleStatus(licenseNumber, vehicleState);
                    UI.ShowVehicleNewState(vehicleState);
                }
                else
                {
                    string        ownerName          = UI.GetOwnerNameInput();
                    string        ownerPhoneNumber   = UI.GetOwnerPhoneNumber();
                    string        vehicleType        = UI.GetVehicleTypeInput(m_Garage.GetSupportedVehiclesList());
                    List <string> requiredFieldsList = m_Garage.GetFieldsByVehicleType(vehicleType);
                    Dictionary <string, string> requiredFieldsMap = GenerateMapAccordingToList(requiredFieldsList, vehicleType);
                    m_Garage.AddVehicleRecord(licenseNumber, ownerName, ownerPhoneNumber, requiredFieldsMap, vehicleType);
                    UI.PrintSuccess();
                }
            }
            catch (ArgumentException argumentException)
            {
                Console.WriteLine(argumentException.Message);
                VehicleCheckIn();
            }
            catch (ValueOutOfRangeException valueOutOfRangeException)
            {
                Console.WriteLine(valueOutOfRangeException.Message);
                VehicleCheckIn();
            }
            catch (FormatException formatException)
            {
                Console.WriteLine(formatException.Message);
                VehicleCheckIn();
            }
        }