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); }
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); } } } }