public ComponentFacility GetFacility( BuildContext context ) { return m_facility ?? (m_facility = CreateFacility( context )); }
private static ComponentFacility CreateFacilityFramework() { var facility = new ComponentFacility(); foreach (EnumFacilitySystemTypes item in Enum.GetValues(typeof(EnumFacilitySystemTypes))) { facility.AddChild(new ComponentSystem() { ComponentType = EnumComponentTypes.SystemType, ComponentName = item.GetSystemName() }); } // ReSharper disable once InlineOutVariableDeclaration IComponentBase tmp; if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.A10.GetSystemName(), out tmp)) { if (tmp is IComponentSystem a10) { foreach (Enum_A10_SubsystemTypes subType in Enum.GetValues(typeof(Enum_A10_SubsystemTypes))) { if (subType.ToString() != "None") { a10.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.A20.GetSystemName(), out tmp)) { if (tmp is IComponentSystem a20) { foreach (Enum_A20_SubsystemTypes subType in Enum.GetValues(typeof(Enum_A20_SubsystemTypes))) { if (subType.ToString() != "None") { a20.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.B10.GetSystemName(), out tmp)) { if (tmp is IComponentSystem b10) { foreach (Enum_B10_SubsystemTypes subType in Enum.GetValues(typeof(Enum_B10_SubsystemTypes))) { if (subType.ToString() != "None") { b10.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.B20.GetSystemName(), out tmp)) { if (tmp is IComponentSystem b20) { foreach (Enum_B20_SubsystemTypes subType in Enum.GetValues(typeof(Enum_B20_SubsystemTypes))) { if (subType.ToString() != "None") { b20.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.B30.GetSystemName(), out tmp)) { if (tmp is IComponentSystem b30) { foreach (Enum_B30_SubsystemTypes subType in Enum.GetValues(typeof(Enum_B30_SubsystemTypes))) { if (subType.ToString() != "None") { b30.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.C10.GetSystemName(), out tmp)) { if (tmp is IComponentSystem c10) { foreach (Enum_C10_SubsystemTypes subType in Enum.GetValues(typeof(Enum_C10_SubsystemTypes))) { if (subType.ToString() != "None") { c10.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.C20.GetSystemName(), out tmp)) { if (tmp is IComponentSystem c20) { foreach (Enum_C20_SubsystemTypes subType in Enum.GetValues(typeof(Enum_C20_SubsystemTypes))) { if (subType.ToString() != "None") { c20.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.C30.GetSystemName(), out tmp)) { if (tmp is IComponentSystem c30) { foreach (Enum_C30_SubsystemTypes subType in Enum.GetValues(typeof(Enum_C30_SubsystemTypes))) { if (subType.ToString() != "None") { c30.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.D10.GetSystemName(), out tmp)) { if (tmp is IComponentSystem d10) { foreach (Enum_D10_SubsystemTypes subType in Enum.GetValues(typeof(Enum_D10_SubsystemTypes))) { if (subType.ToString() != "None") { d10.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.D20.GetSystemName(), out tmp)) { if (tmp is IComponentSystem d20) { foreach (Enum_D20_SubsystemTypes subType in Enum.GetValues(typeof(Enum_D20_SubsystemTypes))) { if (subType.ToString() != "None") { d20.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.D30.GetSystemName(), out tmp)) { if (tmp is IComponentSystem d30) { foreach (Enum_D30_SubsystemTypes subType in Enum.GetValues(typeof(Enum_D30_SubsystemTypes))) { if (subType.ToString() != "None") { d30.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } if (facility.TryGetComponent(EnumComponentTypes.SystemType, EnumFacilitySystemTypes.D40.GetSystemName(), out tmp)) { if (tmp is IComponentSystem d40) { foreach (Enum_D40_SubsystemTypes subType in Enum.GetValues(typeof(Enum_D40_SubsystemTypes))) { if (subType.ToString() != "None") { d40.AddChild(new ComponentSection { ComponentType = EnumComponentTypes.SectionType, ComponentName = subType.GetSystemName() }); } } } } return(facility); }