Guides/MVC-Integration.md
... ...
@@ -30,18 +30,22 @@ Right click on 'References' under project name in Solution Explorer window, then
30 30
31 31
Click the 'Browse' button and browse to \mvc5r3\bin, where Izenda.AdHoc.dll is. Add it to reference.
32 32
33
-###Step 3. Add IzendaStaticResourcesController.cs and IzendaReportingController.cs to the project
33
+###Step 3. Add IzendaReportingController.cs to the project
34 34
35
-IzendaStaticResourcesController.cs and IzendaReportingController.cs are at mvc5r3\Controllers. Add them under Controllers as below (You can add by either 'drag and drop' or 'right click->Add->Existing Item)
35
+IzendaReportingController.cs is in mvc5r3\Controllers. Add it under Controllers as below (You can add by either 'drag and drop' or 'right click->Add->Existing Item)
36
+
37
+Note: 6.9 integrations also include IzendaStaticResourcesController.cs. This is not necessary in 6.10
36 38
37 39
![Controllers](/Guides/MVC-Integration/Controllers.png)
38 40
39 41
40 42
###Step 4. Change Namespaces of Controllers
41 43
42
-Change namespaces of IzendaStaticResourcesController.cs and IzendaReportingController.cs to match all other controllers in the application.
44
+Change namespace of IzendaReportingController.cs to match all other controllers in the application.
43 45
Ex) if the namespace is in other controller file is ABC.Controllers, then MVC3SK.Controllers -> ABC.Controllers
44 46
47
+Note: 6.9 integrations also include IzendaStaticResourcesController.cs. This is not necessary in 6.10
48
+
45 49
![Controllers](/Guides/MVC-Integration/Namespace.png)
46 50
47 51
###Step 5. Add Reporting and Resources folders to the project
... ...
@@ -170,253 +174,8 @@ Add _sitelayout from mvc5r3\Views\Shared to project’s Views\Shared
170 174
```
171 175
172 176
173
-###Step 9. Copy constraints classes from Global.asax.cs
174
-
175
-
176
-**a.** Copy below two constraints from Global.asax.cs of mvc5r3
177
-```csharp
178
-
179
-//IRouteConstraint
180
-public class SpecificFileRouterConstraint : IRouteConstraint {
181
- private string extensionToBeRouted = null;
182
- private string fileToBeRouted = null;
183
-
184
- public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) {
185
- return !String.IsNullOrEmpty(extensionToBeRouted) && !String.IsNullOrEmpty(fileToBeRouted) && values[extensionToBeRouted] != null && values[extensionToBeRouted].ToString().ToLower().Contains(fileToBeRouted);
186
- }
187
-
188
- public SpecificFileRouterConstraint() { }
189
-
190
- public SpecificFileRouterConstraint(string extension, string fileName) {
191
- extensionToBeRouted = extension.ToLower();
192
- fileToBeRouted = fileName.ToLower();
193
- }
194
- }
195
-
196
-
197
-
198
-
199
-//IRouteConstraint
200
-public class IzendaResourceConstraint : IRouteConstraint {
201
- private string extensionToBeRouted = null;
202
-
203
- public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) {
204
- if (String.IsNullOrEmpty(extensionToBeRouted) || values[extensionToBeRouted] == null) {
205
- return false;
206
- }
207
- string requestUrl = values[extensionToBeRouted].ToString().ToLower();
208
- bool result = false;
209
- if (extensionToBeRouted == "js") {
210
- result = result || requestUrl.Contains("reportviewerfilters.js");
211
- result = result || requestUrl.Contains("reportlist.js");
212
- result = result || requestUrl.Contains("data-sources.js");
213
- result = result || requestUrl.Contains("data-sources-preview.js");
214
- result = result || requestUrl.Contains("charts.js");
215
- result = result || requestUrl.Contains("datasources-search.js");
216
- result = result || requestUrl.Contains("jquery-1.6.1.min.js");
217
- result = result || requestUrl.Contains("jquery-ui-1.8.13.custom.min.js");
218
- result = result || requestUrl.Contains("elrte.full.js");
219
- result = result || requestUrl.Contains("elrte.ru.js");
220
- result = result || requestUrl.Contains("fieldproperties.js");
221
- result = result || requestUrl.Contains("shrinkable-grid.js");
222
- }
223
- if (extensionToBeRouted == "css") {
224
- result = result || requestUrl.Contains("tabs.css");
225
- result = result || requestUrl.Contains("report.css");
226
- result = result || requestUrl.Contains("filters.css");
227
- result = result || requestUrl.Contains("base.css");
228
- result = result || requestUrl.Contains("report-list-modal.css");
229
- result = result || requestUrl.Contains("data-sources.css");
230
- result = result || requestUrl.Contains("charts.css");
231
- result = result || requestUrl.Contains("jquery-ui-1.8.13.custom.css");
232
- result = result || requestUrl.Contains("elrte.min.css");
233
- result = result || requestUrl.Contains("elrte-inner.css");
234
- result = result || requestUrl.Contains("shrinkable-grid.css");
235
- }
236
- if (extensionToBeRouted == "png") {
237
- result = result || requestUrl.Contains("elrtebg.png");
238
- result = result || requestUrl.Contains("elrte-toolbar.png");
239
- }
240
- if (extensionToBeRouted == "gif") {
241
- result = result || requestUrl.Contains("elrte/images/pixel.gif");
242
- }
243
- return result;
244
- }
245
-
246
- public IzendaResourceConstraint() { }
247
-
248
- public IzendaResourceConstraint(string extension) {
249
- extensionToBeRouted = extension.ToLower();
250
- }
251
- }
252
-
253
-```
254
-
255
-**b.** Paste it above MVCapplication class in Global.asax.cs of project
256
-
257
-```csharp
258
-
259
-namespace Sample_MVCApp
260
-{
261
- public class SpecificFileRouterConstraint : IRouteConstraint
262
- {
263
- private string extensionToBeRouted = null;
264
- private string fileToBeRouted = null;
265
-
266
- public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
267
- {
268
- return !String.IsNullOrEmpty(extensionToBeRouted) && !String.IsNullOrEmpty(fileToBeRouted) && values[extensionToBeRouted] != null && values[extensionToBeRouted].ToString().ToLower().Contains(fileToBeRouted);
269
- }
270
-
271
- public SpecificFileRouterConstraint() { }
272
-
273
- public SpecificFileRouterConstraint(string extension, string fileName)
274
- {
275
- extensionToBeRouted = extension.ToLower();
276
- fileToBeRouted = fileName.ToLower();
277
- }
278
- }
279
-
280
- public class IzendaResourceConstraint : IRouteConstraint
281
- {
282
- private string extensionToBeRouted = null;
283
-
284
- public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
285
- {
286
- if (String.IsNullOrEmpty(extensionToBeRouted) || values[extensionToBeRouted] == null)
287
- {
288
- return false;
289
- }
290
- string requestUrl = values[extensionToBeRouted].ToString().ToLower();
291
- bool result = false;
292
- if (extensionToBeRouted == "js")
293
- {
294
- result = result || requestUrl.Contains("reportviewerfilters.js");
295
- result = result || requestUrl.Contains("reportlist.js");
296
- result = result || requestUrl.Contains("data-sources.js");
297
- result = result || requestUrl.Contains("data-sources-preview.js");
298
- result = result || requestUrl.Contains("charts.js");
299
- result = result || requestUrl.Contains("datasources-search.js");
300
- result = result || requestUrl.Contains("jquery-1.6.1.min.js");
301
- result = result || requestUrl.Contains("jquery-ui-1.8.13.custom.min.js");
302
- result = result || requestUrl.Contains("elrte.full.js");
303
- result = result || requestUrl.Contains("elrte.ru.js");
304
- result = result || requestUrl.Contains("fieldproperties.js");
305
- result = result || requestUrl.Contains("shrinkable-grid.js");
306
- }
307
- if (extensionToBeRouted == "css")
308
- {
309
- result = result || requestUrl.Contains("tabs.css");
310
- result = result || requestUrl.Contains("report.css");
311
- result = result || requestUrl.Contains("filters.css");
312
- result = result || requestUrl.Contains("base.css");
313
- result = result || requestUrl.Contains("report-list-modal.css");
314
- result = result || requestUrl.Contains("data-sources.css");
315
- result = result || requestUrl.Contains("charts.css");
316
- result = result || requestUrl.Contains("jquery-ui-1.8.13.custom.css");
317
- result = result || requestUrl.Contains("elrte.min.css");
318
- result = result || requestUrl.Contains("elrte-inner.css");
319
- result = result || requestUrl.Contains("shrinkable-grid.css");
320
- }
321
- if (extensionToBeRouted == "png")
322
- {
323
- result = result || requestUrl.Contains("elrtebg.png");
324
- result = result || requestUrl.Contains("elrte-toolbar.png");
325
- }
326
- if (extensionToBeRouted == "gif")
327
- {
328
- result = result || requestUrl.Contains("elrte/images/pixel.gif");
329
- }
330
- return result;
331
- }
332
-
333
- public IzendaResourceConstraint() { }
334
-
335
- public IzendaResourceConstraint(string extension)
336
- {
337
- extensionToBeRouted = extension.ToLower();
338
- }
339
- }
340
-
341
-
342
-
343
- // Note: For instructions on enabling IIS6 or IIS7 classic mode,
344
- // visit http://go.microsoft.com/?LinkId=9394801
345
-
346
- public class MvcApplication : System.Web.HttpApplication
347
- {
348
- protected void Application_Start()
349
- {
350
- RouteTable.Routes.MapPageRoute("rs.aspx", "{*aspx}", "~/Reporting/rs.aspx", false, null, new RouteValueDictionary { { "aspx", new SpecificFileRouterConstraint("aspx", "rs.aspx") } });
351
- RouteTable.Routes.MapPageRoute("rp.aspx", "{*aspx}", "~/Reporting/rp.aspx", false, null, new RouteValueDictionary { { "aspx", new SpecificFileRouterConstraint("aspx", "rp.aspx") } });
352
- AreaRegistration.RegisterAllAreas();
353
-
354
- WebApiConfig.Register(GlobalConfiguration.Configuration);
355
- FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
356
- RouteConfig.RegisterRoutes(RouteTable.Routes);
357
- BundleConfig.RegisterBundles(BundleTable.Bundles);
358
- AuthConfig.RegisterAuth();
359
- }
360
- }
361
-}
362
-
363
-
364
-```
365
-
366
-
367
-###Step 10. Copy over RegisterRoutes in MvcApplication
368
-
369
-**a.** Copy the below class from Global.asax.cs of mvc5r3
370
-
371
-```csharp
372
-public static void RegisterRoutes(RouteCollection routes) {
373
- routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
374
- routes.MapRoute("IzendaResources", "Reporting/Resources/{*resource}", new { controller = "IzendaStaticResources", action = "Index" });
375
- routes.MapRoute("IzendaJsResources", "{*js}", new { controller = "IzendaStaticResources", action = "Index" }, new { irc = new IzendaResourceConstraint("js") });
376
- routes.MapRoute("IzendaCssResources", "{*css}", new { controller = "IzendaStaticResources", action = "Index" }, new { irc = new IzendaResourceConstraint("css") });
377
- routes.MapRoute("IzendaPngResources", "{*png}", new { controller = "IzendaStaticResources", action = "Index" }, new { irc = new IzendaResourceConstraint("png") });
378
- routes.MapRoute("IzendaGifResources", "{*gif}", new { controller = "IzendaStaticResources", action = "Index" }, new { irc = new IzendaResourceConstraint("gif") });
379
- routes.MapRoute("IzendaReporting", "{controller}/{action}/{id}", new { controller = "Reporting", id = UrlParameter.Optional });
380
- routes.MapRoute("StarterKitDefault", "{controller}/{action}/{id}", new { controller = "Reporting", action = "ReportList", id = UrlParameter.Optional });
381
- routes.MapRoute("HomeDefault", "{*pathInfo}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
382
- }
383
-```
384
-
385
-**b.** Paste it inside MvcApplication class of tproject’s Global.asax.cs
386
-
387
-```csharp
388
-public class MvcApplication : System.Web.HttpApplication
389
- {
390
-
391
- public static void RegisterRoutes(RouteCollection routes)
392
- {
393
- routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
394
- routes.MapRoute("IzendaResources", "Reporting/Resources/{*resource}", new { controller = "IzendaStaticResources", action = "Index" });
395
- routes.MapRoute("IzendaJsResources", "{*js}", new { controller = "IzendaStaticResources", action = "Index" }, new { irc = new IzendaResourceConstraint("js") });
396
- routes.MapRoute("IzendaCssResources", "{*css}", new { controller = "IzendaStaticResources", action = "Index" }, new { irc = new IzendaResourceConstraint("css") });
397
- routes.MapRoute("IzendaPngResources", "{*png}", new { controller = "IzendaStaticResources", action = "Index" }, new { irc = new IzendaResourceConstraint("png") });
398
- routes.MapRoute("IzendaGifResources", "{*gif}", new { controller = "IzendaStaticResources", action = "Index" }, new { irc = new IzendaResourceConstraint("gif") });
399
- routes.MapRoute("IzendaReporting", "{controller}/{action}/{id}", new { controller = "Reporting", id = UrlParameter.Optional });
400
- routes.MapRoute("StarterKitDefault", "{controller}/{action}/{id}", new { controller = "Reporting", action = "ReportList", id = UrlParameter.Optional });
401
- routes.MapRoute("HomeDefault", "{*pathInfo}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
402
- }
403
-
404
- protected void Application_Start()
405
- {
406
- AreaRegistration.RegisterAllAreas();
407
-
408
- WebApiConfig.Register(GlobalConfiguration.Configuration);
409
- FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
410
- RouteConfig.RegisterRoutes(RouteTable.Routes);
411
- BundleConfig.RegisterBundles(BundleTable.Bundles);
412
- AuthConfig.RegisterAuth();
413
- }
414
- }
415
-
416
-```
417
-
418 177
419
-###Step 11. Change the LicenseKey and ConnnectionString in Global.asax of project
178
+###Step 9. Change the LicenseKey and ConnnectionString in Global.asax of project
420 179
421 180
To get a new trial key, you may contact [sales@izenda.com](mailto:sales@izenda.com).
422 181
... ...
@@ -427,9 +186,9 @@ AdHocSettings.SqlServerConnectionString = @"INSERT_CONNECTION_STRING_HERE";
427 186
428 187
```
429 188
430
-###Step 12. Run it!
189
+###Step 10. Run it!
431 190
432
-After Step#11, the Sample_MVCApp should build and work without a problem. To see if Izenda is integrated with this web application,
191
+After Step#9, the Sample_MVCApp should build and work without a problem. To see if Izenda is integrated with this web application,
433 192
434 193
**a.** Open _Layout.cshtml in Views\Shared\ in Solution Explorer
435 194
... ...
@@ -447,7 +206,7 @@ After Step#11, the Sample_MVCApp should build and work without a problem. To see
447 206
![Test](/Guides/MVC-Integration/Test.PNG)
448 207
449 208
450
-###Step 13. Change the Logo
209
+###Step 11. Change the Logo
451 210
452 211
**a.** Open _SiteLayout.cshtml in Views\Shared\ in Solution Explorer
453 212