private void LoadCategoryPageResponses() { Model model = GetDialogCustomData <Model>(); ClearPageResponses("BlueprintCategoryPage"); PCTerritoryFlag flag = _structure.GetPCTerritoryFlagByID(model.FlagID); TerritoryStructureCount counts = _structure.GetNumberOfStructuresInTerritory(model.FlagID); List <StructureCategory> categories = _structure.GetStructureCategoriesByType(GetPC().GlobalID, model.IsTerritoryFlag, false, false, false, false).ToList(); if (flag != null && counts.VanityCount < flag.StructureBlueprint.VanityCount) { categories.AddRange(_structure.GetStructureCategoriesByType(GetPC().GlobalID, model.IsTerritoryFlag, true, false, false, false)); } if (flag != null && counts.SpecialCount < flag.StructureBlueprint.SpecialCount) { categories.AddRange(_structure.GetStructureCategoriesByType(GetPC().GlobalID, model.IsTerritoryFlag, false, true, false, false)); } if (flag != null && counts.ResourceCount < flag.StructureBlueprint.ResourceCount) { categories.AddRange(_structure.GetStructureCategoriesByType(GetPC().GlobalID, model.IsTerritoryFlag, false, false, true, false)); } if (flag != null && counts.BuildingCount < flag.StructureBlueprint.BuildingCount) { categories.AddRange(_structure.GetStructureCategoriesByType(GetPC().GlobalID, model.IsTerritoryFlag, false, false, false, true)); } foreach (StructureCategory category in categories) { AddResponseToPage("BlueprintCategoryPage", category.Name, category.IsActive, new Tuple <string, dynamic>(string.Empty, category.StructureCategoryID)); } AddResponseToPage("BlueprintCategoryPage", "Back"); }