private eOperationStatus insertNewVehicle(string i_VehicleType)
        {
            Vehicle vehicle = m_GarageManager.GetVehicleType(i_VehicleType);

            BaseInsertNewVehicleSubOperations subOperation = m_GarageManager.GetSubOperation(vehicle.GetType().Name).FirstOrDefault();

            if (subOperation != null)
            {
                subOperation.Vehicle = vehicle;
                SubMenuInstructions  = subOperation.SubMenuInstructions;
                m_OperationResult    = $"A new vehicle with was added successfully to the system!";
                return(eOperationStatus.CanProceedToSubMenu);
            }

            return(eOperationStatus.Starting);
        }
コード例 #2
0
        public IEnumerable <BaseInsertNewVehicleSubOperations> GetSubOperation(string i_VehicleTypeName)
        {
            string operationFullName = AppDomain.CurrentDomain.GetAssemblies()
                                       .SelectMany(i_X => i_X.GetTypes())
                                       .Where(i_X => typeof(BaseInsertNewVehicleSubOperations).IsAssignableFrom(i_X) &&
                                              !i_X.IsInterface &&
                                              !i_X.IsAbstract &&
                                              i_X.Name.Contains(i_VehicleTypeName))
                                       .Select(i_X => i_X.FullName).SingleOrDefault();

            if (operationFullName != null)
            {
                Type t = Type.GetType(operationFullName);
                if (t != null)
                {
                    BaseInsertNewVehicleSubOperations operation = Activator.CreateInstance(t, this) as BaseInsertNewVehicleSubOperations;
                    if (operation != null)
                    {
                        yield return(operation);
                    }
                }
            }
        }