3
3
using GenHTTP . Api . Infrastructure ;
4
4
using GenHTTP . Api . Content ;
5
5
using GenHTTP . Api . Content . IO ;
6
+ using GenHTTP . Api . Protocol ;
7
+ using System ;
6
8
7
9
namespace GenHTTP . Modules . Placeholders . Providers
8
10
{
9
11
10
- public sealed class PageProviderBuilder : IHandlerBuilder < PageProviderBuilder > , IContentInfoBuilder < PageProviderBuilder > , IPageAdditionBuilder < PageProviderBuilder >
12
+ public sealed class PageProviderBuilder :
13
+ IHandlerBuilder < PageProviderBuilder > ,
14
+ IContentInfoBuilder < PageProviderBuilder > ,
15
+ IPageAdditionBuilder < PageProviderBuilder > ,
16
+ IResponseModification < PageProviderBuilder >
11
17
{
12
18
private IResource ? _Content ;
13
19
14
20
private readonly ContentInfoBuilder _Info = new ( ) ;
15
21
16
22
private readonly PageAdditionBuilder _Additions = new ( ) ;
17
23
24
+ private readonly ResponseModificationBuilder _Modifications = new ( ) ;
25
+
18
26
private readonly List < IConcernBuilder > _Concerns = new ( ) ;
19
27
20
28
#region Functionality
@@ -49,6 +57,54 @@ public PageProviderBuilder AddStyle(string path)
49
57
return this ;
50
58
}
51
59
60
+ public PageProviderBuilder Status ( ResponseStatus status )
61
+ {
62
+ _Modifications . Status ( status ) ;
63
+ return this ;
64
+ }
65
+
66
+ public PageProviderBuilder Status ( int status , string reason )
67
+ {
68
+ _Modifications . Status ( status , reason ) ;
69
+ return this ;
70
+ }
71
+
72
+ public PageProviderBuilder Header ( string key , string value )
73
+ {
74
+ _Modifications . Header ( key , value ) ;
75
+ return this ;
76
+ }
77
+
78
+ public PageProviderBuilder Expires ( DateTime expiryDate )
79
+ {
80
+ _Modifications . Expires ( expiryDate ) ;
81
+ return this ;
82
+ }
83
+
84
+ public PageProviderBuilder Modified ( DateTime modificationDate )
85
+ {
86
+ _Modifications . Modified ( modificationDate ) ;
87
+ return this ;
88
+ }
89
+
90
+ public PageProviderBuilder Cookie ( Cookie cookie )
91
+ {
92
+ _Modifications . Cookie ( cookie ) ;
93
+ return this ;
94
+ }
95
+
96
+ public PageProviderBuilder Type ( FlexibleContentType contentType )
97
+ {
98
+ _Modifications . Type ( contentType ) ;
99
+ return this ;
100
+ }
101
+
102
+ public PageProviderBuilder Encoding ( string encoding )
103
+ {
104
+ _Modifications . Encoding ( encoding ) ;
105
+ return this ;
106
+ }
107
+
52
108
public PageProviderBuilder Add ( IConcernBuilder concern )
53
109
{
54
110
_Concerns . Add ( concern ) ;
@@ -62,10 +118,11 @@ public IHandler Build(IHandler parent)
62
118
throw new BuilderMissingPropertyException ( "Content" ) ;
63
119
}
64
120
65
- return Concerns . Chain ( parent , _Concerns , ( p ) => new PageProvider ( p , _Info . Build ( ) , _Additions . Build ( ) , _Content ) ) ;
121
+ return Concerns . Chain ( parent , _Concerns , ( p ) => new PageProvider ( p , _Info . Build ( ) , _Additions . Build ( ) , _Modifications . Build ( ) , _Content ) ) ; ;
66
122
}
67
123
68
124
#endregion
125
+
69
126
}
70
127
71
128
}
0 commit comments