4
4
using System . Net . Http ;
5
5
using System . Net . Http . Formatting ;
6
6
using System . Web . Http . Filters ;
7
+ using JQDT . ActionFilters ;
7
8
using JQDT . Application ;
8
9
using JQDT . Exceptions ;
9
10
using JQDT . Models ;
10
11
11
12
/// <summary>
12
13
/// Used to decorate the action that returns data table response
13
14
/// </summary>
15
+ /// <seealso cref="JQDT.ActionFilters.IJQDTActionFilter" />
14
16
/// <seealso cref="System.Web.Http.Filters.ActionFilterAttribute" />
15
- public class JQDataTableAttribute : ActionFilterAttribute
17
+ public class JQDataTableAttribute : ActionFilterAttribute , IJQDTActionFilter
16
18
{
17
19
/// <summary>
18
20
/// Occurs after the action method is invoked.
19
21
/// </summary>
20
22
/// <param name="actionExecutedContext">The action executed context.</param>
23
+ /// <exception cref="JQDataTablesException">Unhandled JQDataTable exception</exception>
21
24
public override void OnActionExecuted ( HttpActionExecutedContext actionExecutedContext )
22
25
{
23
26
try
@@ -42,6 +45,105 @@ public virtual void OnDataProcessed(ref object data, RequestInfoModel requestInf
42
45
// No data processing logic by default;
43
46
}
44
47
48
+ /// <summary>
49
+ /// Called before all data processors execute.
50
+ /// </summary>
51
+ /// <param name="data">The data.</param>
52
+ /// <param name="requestInfoModel">The request information model.</param>
53
+ public void OnDataProcessing ( ref object data , RequestInfoModel requestInfoModel )
54
+ {
55
+ }
56
+
57
+ /// <summary>
58
+ /// Called before search data processor executes.
59
+ /// </summary>
60
+ /// <param name="data">The data.</param>
61
+ /// <param name="requestInfoModel">The request information model.</param>
62
+ public void OnSearchDataProcessing ( ref object data , RequestInfoModel requestInfoModel )
63
+ {
64
+ }
65
+
66
+ /// <summary>
67
+ /// Called after search data processor executes.
68
+ /// </summary>
69
+ /// <param name="data">The data.</param>
70
+ /// <param name="requestInfoModel">The request information model.</param>
71
+ public void OnSearchDataProcessed ( ref object data , RequestInfoModel requestInfoModel )
72
+ {
73
+ }
74
+
75
+ /// <summary>
76
+ /// Called before custom filters data processor executes.
77
+ /// </summary>
78
+ /// <param name="data">The data.</param>
79
+ /// <param name="requestInfoModel">The request information model.</param>
80
+ public void OnCustomFiltersDataProcessing ( ref object data , RequestInfoModel requestInfoModel )
81
+ {
82
+ }
83
+
84
+ /// <summary>
85
+ /// Called after custom filters data processor executes.
86
+ /// </summary>
87
+ /// <param name="data">The data.</param>
88
+ /// <param name="requestInfoModel">The request information model.</param>
89
+ public void OnCustomFiltersDataProcessed ( ref object data , RequestInfoModel requestInfoModel )
90
+ {
91
+ }
92
+
93
+ /// <summary>
94
+ /// Called before columns filters data processor executes.
95
+ /// </summary>
96
+ /// <param name="data">The data.</param>
97
+ /// <param name="requestInfoModel">The request information model.</param>
98
+ public void OnColumnsFilterDataProcessing ( ref object data , RequestInfoModel requestInfoModel )
99
+ {
100
+ }
101
+
102
+ /// <summary>
103
+ /// Called after columns filters data processor executes.
104
+ /// </summary>
105
+ /// <param name="data">The data.</param>
106
+ /// <param name="requestInfoModel">The request information model.</param>
107
+ public void OnColumnsFilterDataProcessed ( ref object data , RequestInfoModel requestInfoModel )
108
+ {
109
+ }
110
+
111
+ /// <summary>
112
+ /// Called before sort data processor executes.
113
+ /// </summary>
114
+ /// <param name="data">The data.</param>
115
+ /// <param name="requestInfoModel">The request information model.</param>
116
+ public void OnSortDataProcessing ( ref object data , RequestInfoModel requestInfoModel )
117
+ {
118
+ }
119
+
120
+ /// <summary>
121
+ /// Called after sort data processor executes.
122
+ /// </summary>
123
+ /// <param name="data">The data.</param>
124
+ /// <param name="requestInfoModel">The request information model.</param>
125
+ public void OnSortDataProcessed ( ref object data , RequestInfoModel requestInfoModel )
126
+ {
127
+ }
128
+
129
+ /// <summary>
130
+ /// Called before paging data processor executes.
131
+ /// </summary>
132
+ /// <param name="data">The data.</param>
133
+ /// <param name="requestInfoModel">The request information model.</param>
134
+ public void OnPagingDataProcessing ( ref object data , RequestInfoModel requestInfoModel )
135
+ {
136
+ }
137
+
138
+ /// <summary>
139
+ /// Called after paging data processor executes.
140
+ /// </summary>
141
+ /// <param name="data">The data.</param>
142
+ /// <param name="requestInfoModel">The request information model.</param>
143
+ public void OnPagingDataProcessed ( ref object data , RequestInfoModel requestInfoModel )
144
+ {
145
+ }
146
+
45
147
private void PerformOnActionExecuted ( HttpActionExecutedContext actionExecutedContext )
46
148
{
47
149
var modelType = ( ( System . Net . Http . ObjectContent ) actionExecutedContext . Response . Content ) . ObjectType ;
@@ -55,9 +157,29 @@ private void PerformOnActionExecuted(HttpActionExecutedContext actionExecutedCon
55
157
actionExecutedContext . Response . Content = new ObjectContent ( typeof ( object ) , formattedObjectResult , new JsonMediaTypeFormatter ( ) ) ;
56
158
}
57
159
160
+ /// <summary>
161
+ /// Subscribes to events.
162
+ /// </summary>
163
+ /// <param name="application">The application.</param>
58
164
private void SubscribeToEvents ( IApplicationBase application )
59
165
{
166
+ application . OnDataProcessingEvent += this . OnDataProcessing ;
60
167
application . OnDataProcessedEvent += this . OnDataProcessed ;
168
+
169
+ application . OnSearchDataProcessingEvent += this . OnSearchDataProcessing ;
170
+ application . OnSearchDataProcessedEvent += this . OnSearchDataProcessed ;
171
+
172
+ application . OnCustomFiltersDataProcessingEvent += this . OnCustomFiltersDataProcessing ;
173
+ application . OnCustomFiltersDataProcessedEvent += this . OnCustomFiltersDataProcessed ;
174
+
175
+ application . OnColumnsFilterDataProcessingEvent += this . OnColumnsFilterDataProcessing ;
176
+ application . OnColumnsFilterDataProcessedEvent += this . OnColumnsFilterDataProcessed ;
177
+
178
+ application . OnSortDataProcessingEvent += this . OnSortDataProcessing ;
179
+ application . OnSortDataProcessedEvent += this . OnSortDataProcessed ;
180
+
181
+ application . OnPagingDataProcessingEvent += this . OnPagingDataProcessing ;
182
+ application . OnPagingDataProcessedEvent += this . OnPagingDataProcessed ;
61
183
}
62
184
63
185
private object GetObjectResult ( ResultModel result )
0 commit comments