Skip to content

Commit cd0c208

Browse files
Added links to documents for different hntas elements (#267)
1 parent 5a07f5e commit cd0c208

12 files changed

+1075
-62
lines changed

HNTAS/HNTAS.Web.UI/Controllers/DocumentLibraryController.cs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,37 @@ public IActionResult NewBuild()
88
{
99
return View();
1010
}
11-
1211
public IActionResult ExistingBuild()
1312
{
1413
return View();
1514
}
16-
1715
public IActionResult CertifiedBuild()
1816
{
1917
return View();
2018
}
19+
public IActionResult EnergyCentre()
20+
{
21+
return View();
22+
}
23+
public IActionResult Substation()
24+
{
25+
return View();
26+
}
27+
public IActionResult DistrictDistributionNetwork()
28+
{
29+
return View();
30+
}
31+
public IActionResult CommunalDistributionNetwork()
32+
{
33+
return View();
34+
}
35+
public IActionResult ConsumerConnection()
36+
{
37+
return View();
38+
}
39+
public IActionResult ConsumerHeatSystem()
40+
{
41+
return View();
42+
}
2143
}
2244
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using Microsoft.AspNetCore.Html;
2+
3+
namespace HNTAS.Web.UI.Helpers
4+
{
5+
public static class PdfIconHelper
6+
{
7+
// Returns the PDF SVG as an IHtmlContent so it renders raw in Razor.
8+
public static IHtmlContent PdfIcon()
9+
{
10+
var svg = """
11+
<svg width="96" height="135" viewBox="0 0 96 135" fill="none" xmlns="http://www.w3.org/2000/svg">
12+
<g clip-path="url(#clip0_3357_47338)">
13+
<path d="M93.272 2.74414H2.72656V132.256H93.272V2.74414Z" fill="white"/>
14+
<path d="M93.272 2.74414H2.72656V132.256H93.272V2.74414Z" stroke="#E6E6E6" stroke-width="5"/>
15+
<g filter="url(#filter0_d_3357_47338)">
16+
<path d="M90.0909 5.48828H5V129.513H90.0909V5.48828Z" fill="white"/>
17+
</g>
18+
<path d="M15 58.3H23.04V66.4H15V58.3ZM31.08 74.5V82.6H65.92V74.5H31.08ZM31.08 98.8H82V90.7H31.08V98.8ZM31.08 115H73.96V106.9H31.08V115ZM15 82.6H23.04V74.5H15V82.6ZM15 115H23.04V106.9H15V115ZM15 98.8H23.04V90.7H15V98.8ZM31.08 66.4H82V58.3H31.08V66.4ZM35.7253 24.1C35.4573 23.92 35.1893 23.74 34.832 23.65C34.4747 23.56 34.1173 23.47 33.6707 23.47H31.348V28.42H33.6707C34.1173 28.42 34.564 28.42 34.832 28.24C35.1 28.06 35.4573 27.97 35.7253 27.79C35.9933 27.61 36.172 27.34 36.3507 27.07C36.5293 26.8 36.5293 26.44 36.5293 26.08C36.5293 25.63 36.5293 25.27 36.3507 25C36.172 24.73 35.9933 24.46 35.7253 24.28V24.1ZM51.0907 24.91C50.7333 24.46 50.1973 24.1 49.6613 23.92C49.036 23.65 48.3213 23.56 47.5173 23.56H45.1053V33.91H47.5173C48.3213 33.91 49.036 33.82 49.6613 33.55C50.2867 33.28 50.7333 32.92 51.0907 32.56C51.448 32.11 51.716 31.57 51.8947 31.03C52.0733 30.4 52.1627 29.77 52.1627 29.14V28.51C52.1627 27.79 52.1627 27.16 51.8947 26.62C51.716 26.08 51.448 25.54 51.0907 25.09V24.91ZM82 16V40.3H15V16H82ZM39.8347 25.9C39.8347 25.09 39.7453 24.46 39.4773 23.74C39.2093 23.11 38.852 22.48 38.4053 22.03C37.9587 21.58 37.3333 21.13 36.708 20.95C35.9933 20.68 35.2787 20.5 34.4747 20.5H28.0427V36.61H31.2587V31.21H34.1173C34.9213 31.21 35.7253 31.12 36.44 30.76C37.1547 30.49 37.6907 30.13 38.2267 29.68C38.6733 29.23 39.12 28.6 39.388 27.97C39.656 27.34 39.8347 26.62 39.8347 25.81V25.9ZM55.5573 28.6C55.5573 27.43 55.3787 26.26 55.1107 25.27C54.8427 24.28 54.3067 23.47 53.6813 22.75C53.056 22.03 52.252 21.49 51.2693 21.13C50.2867 20.77 49.2147 20.59 47.8747 20.59H41.9787V36.7H47.8747C49.2147 36.7 50.2867 36.52 51.2693 36.16C52.252 35.8 53.056 35.26 53.6813 34.54C54.3067 33.82 54.8427 33.01 55.1107 32.02C55.468 31.03 55.5573 29.95 55.5573 28.69V28.6ZM68.9573 20.59H58.148V36.7H61.364V29.95H68.332V26.98H61.364V23.56H68.868V20.59H68.9573Z" fill="#B1B4B6" stroke="#B1B4B6"/>
19+
</g>
20+
<defs>
21+
<filter id="filter0_d_3357_47338" x="3" y="5.48828" width="89.0918" height="128.024" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
22+
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
23+
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
24+
<feOffset dy="2"/>
25+
<feGaussianBlur stdDeviation="1"/>
26+
<feComposite in2="hardAlpha" operator="out"/>
27+
<feColorMatrix type="matrix" values="0 0 0 0 0.0431373 0 0 0 0 0.0470588 0 0 0 0 0.0470588 0 0 0 0.1 0"/>
28+
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3357_47338"/>
29+
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3357_47338" result="shape"/>
30+
</filter>
31+
<clipPath id="clip0_3357_47338">
32+
<rect width="96" height="135" fill="white"/>
33+
</clipPath>
34+
</defs>
35+
</svg>
36+
""";
37+
return new HtmlString(svg);
38+
}
39+
}
40+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
namespace HNTAS.Web.UI.Models
2+
{
3+
public class PdfRow {
4+
public string LinkToPdf { get; set; }
5+
public string PdfTitle { get; set; }
6+
public string UpdatedBy { get; set; } = "October 2025";
7+
public int SizeInKb { get; set; }
8+
public int NumberOfPages { get; set; }
9+
}
10+
11+
public class DocumentListSection
12+
{
13+
public string SectionName { get; set; }
14+
public string SectionId { get; set; }
15+
public List<PdfRow> PdfRows { get; set; }
16+
}
17+
public class HntasElementDocumentsLinksViewModel
18+
{
19+
public string ElementName { get; set; }
20+
public string Description { get; set; }
21+
public List<DocumentListSection> DocumentListSections { get; set; }
22+
}
23+
}
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
@using HNTAS.Web.UI.Models
2+
@model HntasElementDocumentsLinksViewModel
3+
4+
@{
5+
ViewData["Title"] = "Communal Distribution Network (CD)";
6+
var overviewPdfs = new List<PdfRow>
7+
{
8+
new PdfRow
9+
{
10+
PdfTitle = "Overview for Technical Specification",
11+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693be875c72b0f8ccf33d698/draft-hntas-technical-specification-communal-distribution-network-overview.pdf",
12+
UpdatedBy = "October 2025",
13+
SizeInKb = 396,
14+
NumberOfPages = 24
15+
},
16+
new PdfRow
17+
{
18+
PdfTitle = "Overview for Assessment Procedures",
19+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693ae73fadb5707d9f33d63c/draft-hntas-assessment-procedure-communal-distribution-network-overview.pdf",
20+
UpdatedBy = "October 2025",
21+
SizeInKb = 412,
22+
NumberOfPages = 27
23+
}
24+
};
25+
var phase1Pdfs = new List<PdfRow>
26+
{
27+
new PdfRow
28+
{
29+
PdfTitle = "Technical Specification for Phase 1: Feasibility",
30+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693be00933c7ace9c4a420bd/draft-hntas-new-build-technical-specification-communal-distribution-network-phase-1.pdf",
31+
UpdatedBy = "October 2025",
32+
SizeInKb = 502,
33+
NumberOfPages = 23
34+
},
35+
new PdfRow
36+
{
37+
PdfTitle = "Assessment Procedures for Phase 1: Feasibility",
38+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693ae76e5cc812f50aa42050/draft-hntas-new-build-assessment-procedure-communal-distribution-network-phase-1.pdf",
39+
UpdatedBy = "October 2025",
40+
SizeInKb = 435,
41+
NumberOfPages = 14
42+
}
43+
};
44+
var phase2Pdfs = new List<PdfRow>
45+
{
46+
new PdfRow
47+
{
48+
PdfTitle = "Technical Specification for Phase 2: Design",
49+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693be864c72b0f8ccf33d697/draft-hntas-new-build-technical-specification-communal-distribution-network-phase-2.pdf",
50+
UpdatedBy = "October 2025",
51+
SizeInKb = 608,
52+
NumberOfPages = 32
53+
},
54+
new PdfRow
55+
{
56+
PdfTitle = "Assessment Procedures for Phase 2: Design",
57+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693ae7a433c7ace9c4a42060/draft-hntas-new-build-assessment-procedure-communal-distribution-network-phase-2.pdf",
58+
UpdatedBy = "October 2025",
59+
SizeInKb = 424,
60+
NumberOfPages = 17
61+
}
62+
};
63+
var phase3Pdfs = new List<PdfRow>
64+
{
65+
new PdfRow
66+
{
67+
PdfTitle = "Technical Specification for Phase 3: Construction",
68+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693bf89d33c7ace9c4a420d2/draft-hntas-new-build-technical-specification-communal-distribution-network-phase-3.pdf",
69+
UpdatedBy = "October 2025",
70+
SizeInKb = 1006,
71+
NumberOfPages = 43
72+
},
73+
new PdfRow
74+
{
75+
PdfTitle = "Assessment Procedures for Phase 3: Construction",
76+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693ae78b5cc812f50aa42051/draft-hntas-new-build-assessment-procedure-communal-distribution-network-phase-3.pdf",
77+
UpdatedBy = "October 2025",
78+
SizeInKb = 509,
79+
NumberOfPages = 23
80+
}
81+
};
82+
var phase4Pdfs = new List<PdfRow>
83+
{
84+
new PdfRow
85+
{
86+
PdfTitle = "Technical Specification for Phase 4: Operation",
87+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693bf8c0c72b0f8ccf33d6ac/draft-hntas-new-build-technical-specification-communal-distribution-network-phase-4.pdf",
88+
UpdatedBy = "October 2025",
89+
SizeInKb = 581,
90+
NumberOfPages = 28
91+
},
92+
new PdfRow
93+
{
94+
PdfTitle = "Assessment Procedures for Phase 4: Operation",
95+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693ae973adb5707d9f33d643/draft-hntas-new-build-assessment-procedure-communal-distribution-network-phase-4.pdf",
96+
UpdatedBy = "October 2025",
97+
SizeInKb = 452,
98+
NumberOfPages = 15
99+
}
100+
};
101+
102+
var pageData = new HntasElementDocumentsLinksViewModel
103+
{
104+
ElementName = "Communal Distribution Network (CD)",
105+
Description = "The Communal Distribution Network includes the internal distribution elements that transfer heat within a building. This covers risers, lateral pipework, valves and controls serving individual dwellings or premises. ",
106+
DocumentListSections = new List<DocumentListSection>
107+
{
108+
new DocumentListSection
109+
{
110+
SectionName = "Overview",
111+
SectionId = "overview",
112+
PdfRows = overviewPdfs
113+
},
114+
new DocumentListSection
115+
{
116+
SectionName = "Phase 1: Feasibility",
117+
SectionId = "phase-1",
118+
PdfRows = phase1Pdfs
119+
},
120+
new DocumentListSection
121+
{
122+
SectionName = "Phase 2: Design",
123+
SectionId = "phase-2",
124+
PdfRows = phase2Pdfs
125+
},
126+
new DocumentListSection
127+
{
128+
SectionName = "Phase 3: Construction",
129+
SectionId = "phase-3",
130+
PdfRows = phase3Pdfs
131+
},
132+
new DocumentListSection
133+
{
134+
SectionName = "Phase 4: Operation",
135+
SectionId = "phase-4",
136+
PdfRows = phase4Pdfs
137+
}
138+
}
139+
};
140+
}
141+
142+
@await Html.PartialAsync("_DocumentLibraryDocLinks", pageData)
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
@using HNTAS.Web.UI.Models
2+
@model HntasElementDocumentsLinksViewModel
3+
4+
@{
5+
ViewData["Title"] = "Consumer Connection (CC)";
6+
var overviewPdfs = new List<PdfRow>
7+
{
8+
new PdfRow
9+
{
10+
PdfTitle = "Overview for Technical Specification",
11+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693c0f346a12691d48491ee2/draft-hntas-technical-specification-consumer-connection-overview.pdf",
12+
UpdatedBy = "October 2025",
13+
SizeInKb = 473,
14+
NumberOfPages = 29
15+
},
16+
new PdfRow
17+
{
18+
PdfTitle = "Overview for Assessment Procedures",
19+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693ad26433c7ace9c4a4203a/draft-hntas-assessment-procedure-consumer-connection-overview.pdf",
20+
UpdatedBy = "October 2025",
21+
SizeInKb = 494,
22+
NumberOfPages = 30
23+
}
24+
};
25+
var phase1Pdfs = new List<PdfRow>
26+
{
27+
new PdfRow
28+
{
29+
PdfTitle = "Technical Specification for Phase 1: Feasibility",
30+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693c0f505cc812f50aa420ea/draft-hntas-new-build-technical-specification-consumer-connection-phase-1.pdf",
31+
UpdatedBy = "October 2025",
32+
SizeInKb = 483,
33+
NumberOfPages = 20
34+
},
35+
new PdfRow
36+
{
37+
PdfTitle = "Assessment Procedures for Phase 1: Feasibility",
38+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693ad3aa5cc812f50aa4202a/draft-hntas-new-build-assessment-procedure-consumer-connection-phase-1.pdf",
39+
UpdatedBy = "October 2025",
40+
SizeInKb = 424,
41+
NumberOfPages = 14
42+
}
43+
};
44+
var phase2Pdfs = new List<PdfRow>
45+
{
46+
new PdfRow
47+
{
48+
PdfTitle = "Technical Specification for Phase 2: Design",
49+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693c0f655cc812f50aa420eb/draft-hntas-new-build-technical-specification-consumer-connection-phase-2.pdf",
50+
UpdatedBy = "October 2025",
51+
SizeInKb = 602,
52+
NumberOfPages = 32
53+
},
54+
new PdfRow
55+
{
56+
PdfTitle = "Assessment Procedures for Phase 2: Design",
57+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693ad3e66a12691d48491e22/draft-hntas-new-build-assessment-procedure-consumer-connection-phase-2.pdf",
58+
UpdatedBy = "October 2025",
59+
SizeInKb = 561,
60+
NumberOfPages = 18
61+
}
62+
};
63+
var phase3Pdfs = new List<PdfRow>
64+
{
65+
new PdfRow
66+
{
67+
PdfTitle = "Technical Specification for Phase 3: Construction",
68+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693c0f9b33c7ace9c4a420ec/draft-hntas-new-build-technical-specification-consumer-connection-phase-3.pdf",
69+
UpdatedBy = "October 2025",
70+
SizeInKb = 1014,
71+
NumberOfPages = 46
72+
},
73+
new PdfRow
74+
{
75+
PdfTitle = "Assessment Procedures for Phase 3: Construction",
76+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693ad4046a12691d48491e23/draft-hntas-new-build-assessment-procedure-consumer-connection-phase-3.pdf",
77+
UpdatedBy = "October 2025",
78+
SizeInKb = 510,
79+
NumberOfPages = 25
80+
}
81+
};
82+
var phase4Pdfs = new List<PdfRow>
83+
{
84+
new PdfRow
85+
{
86+
PdfTitle = "Technical Specification for Phase 4: Operation",
87+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693c1025c72b0f8ccf33d6bf/draft-hntas-new-build-technical-specification-consumer-connection-phase-4.pdf",
88+
UpdatedBy = "October 2025",
89+
SizeInKb = 568,
90+
NumberOfPages = 28
91+
},
92+
new PdfRow
93+
{
94+
PdfTitle = "Assessment Procedures for Phase 4: Operation",
95+
LinkToPdf = "https://assets.publishing.service.gov.uk/media/693ad41d5cc812f50aa4202c/draft-hntas-new-build-assessment-procedure-consumer-connection-phase-4.pdf",
96+
UpdatedBy = "October 2025",
97+
SizeInKb = 452,
98+
NumberOfPages = 15
99+
}
100+
};
101+
102+
var pageData = new HntasElementDocumentsLinksViewModel
103+
{
104+
ElementName = "Consumer Connection (CC)",
105+
Description = "The Consumer Connection includes the interface elements between the communal distribution network and an individual dwelling or premises. This covers isolation valves, heat interface units and associated controls. ",
106+
DocumentListSections = new List<DocumentListSection>
107+
{
108+
new DocumentListSection
109+
{
110+
SectionName = "Overview",
111+
SectionId = "overview",
112+
PdfRows = overviewPdfs
113+
},
114+
new DocumentListSection
115+
{
116+
SectionName = "Phase 1: Feasibility",
117+
SectionId = "phase-1",
118+
PdfRows = phase1Pdfs
119+
},
120+
new DocumentListSection
121+
{
122+
SectionName = "Phase 2: Design",
123+
SectionId = "phase-2",
124+
PdfRows = phase2Pdfs
125+
},
126+
new DocumentListSection
127+
{
128+
SectionName = "Phase 3: Construction",
129+
SectionId = "phase-3",
130+
PdfRows = phase3Pdfs
131+
},
132+
new DocumentListSection
133+
{
134+
SectionName = "Phase 4: Operation",
135+
SectionId = "phase-4",
136+
PdfRows = phase4Pdfs
137+
}
138+
}
139+
};
140+
}
141+
142+
@await Html.PartialAsync("_DocumentLibraryDocLinks", pageData)

0 commit comments

Comments
 (0)