Guides/MVC-Integration.md
... ...
@@ -155,13 +155,86 @@ The below is how the project's Global.asax should look like.
155 155
</script>
156 156
```
157 157
158
-![Controllers](/Guides/MVC-Integration/Namespace.png)
159 158
160 159
###Step 9. Copy specificFilerouter and IzendaResource constraint classes from Globa.asax.cs and paste them above MVCapplication class in Global.asax.cs of the project
161 160
162 161
Copy specificFilerouter and IzendaResource constraint classes from Globa.asax.cs and paste them above MVCapplication class in Global.asax.cs of the project
163 162
164
-![Controllers](/Guides/MVC-Integration/Namespace.png)
163
+```csharp
164
+public class SpecificFileRouterConstraint : IRouteConstraint {
165
+ private string extensionToBeRouted = null;
166
+ private string fileToBeRouted = null;
167
+
168
+ public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) {
169
+ return !String.IsNullOrEmpty(extensionToBeRouted) && !String.IsNullOrEmpty(fileToBeRouted) && values[extensionToBeRouted] != null && values[extensionToBeRouted].ToString().ToLower().Contains(fileToBeRouted);
170
+ }
171
+
172
+ public SpecificFileRouterConstraint() { }
173
+
174
+ public SpecificFileRouterConstraint(string extension, string fileName) {
175
+ extensionToBeRouted = extension.ToLower();
176
+ fileToBeRouted = fileName.ToLower();
177
+ }
178
+ }
179
+public class IzendaResourceConstraint : IRouteConstraint {
180
+ private string extensionToBeRouted = null;
181
+
182
+ public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) {
183
+ if (String.IsNullOrEmpty(extensionToBeRouted) || values[extensionToBeRouted] == null) {
184
+ return false;
185
+ }
186
+ string requestUrl = values[extensionToBeRouted].ToString().ToLower();
187
+ bool result = false;
188
+ if (extensionToBeRouted == "js") {
189
+ result = result || requestUrl.Contains("reportviewerfilters.js");
190
+ result = result || requestUrl.Contains("reportlist.js");
191
+ result = result || requestUrl.Contains("data-sources.js");
192
+ result = result || requestUrl.Contains("data-sources-preview.js");
193
+ result = result || requestUrl.Contains("charts.js");
194
+ result = result || requestUrl.Contains("datasources-search.js");
195
+ result = result || requestUrl.Contains("jquery-1.6.1.min.js");
196
+ result = result || requestUrl.Contains("jquery-ui-1.8.13.custom.min.js");
197
+ result = result || requestUrl.Contains("elrte.full.js");
198
+ result = result || requestUrl.Contains("elrte.ru.js");
199
+ result = result || requestUrl.Contains("fieldproperties.js");
200
+ result = result || requestUrl.Contains("shrinkable-grid.js");
201
+ }
202
+ if (extensionToBeRouted == "css") {
203
+ result = result || requestUrl.Contains("tabs.css");
204
+ result = result || requestUrl.Contains("report.css");
205
+ result = result || requestUrl.Contains("filters.css");
206
+ result = result || requestUrl.Contains("base.css");
207
+ result = result || requestUrl.Contains("report-list-modal.css");
208
+ result = result || requestUrl.Contains("data-sources.css");
209
+ result = result || requestUrl.Contains("charts.css");
210
+ result = result || requestUrl.Contains("jquery-ui-1.8.13.custom.css");
211
+ result = result || requestUrl.Contains("elrte.min.css");
212
+ result = result || requestUrl.Contains("elrte-inner.css");
213
+ result = result || requestUrl.Contains("shrinkable-grid.css");
214
+ }
215
+ if (extensionToBeRouted == "png") {
216
+ result = result || requestUrl.Contains("elrtebg.png");
217
+ result = result || requestUrl.Contains("elrte-toolbar.png");
218
+ }
219
+ if (extensionToBeRouted == "gif") {
220
+ result = result || requestUrl.Contains("elrte/images/pixel.gif");
221
+ }
222
+ return result;
223
+ }
224
+
225
+ public IzendaResourceConstraint() { }
226
+
227
+ public IzendaResourceConstraint(string extension) {
228
+ extensionToBeRouted = extension.ToLower();
229
+ }
230
+ }
231
+
232
+
233
+
234
+```
235
+
236
+
237
+
165 238
166 239
###Step 10. Copy RegisterRoutes in MvcApplication class from Global.asax.cs and put it in MvcApplication class of the project’s Global.asax.cs
167 240