Error executing template "Designs/Swift/TemplateRenderer/Custom__AccountStatementReport.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_eaf1f11ac3204d87b5210903443c6f92.Execute() in F:\Domains\Sites\int-krvc.mydwsitec.com\Files\Templates\Designs\Swift\TemplateRenderer\Custom__AccountStatementReport.cshtml:line 11
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2 @using System
3 @using System.Collections.Generic
4 @using System.Linq
5 @using Dynamicweb.Security.UserManagement
6
7 @{
8 var loginUser = Dna.Extensions.Users.GetRealUser();
9 var selectedUser = Pageview.User;
10 var impersonationRoles = Dna.SwiftRizzo.LoginRoles.ImpersonationRoles.GetImpersonationRoles(loginUser, selectedUser);
11 var selectedUserGroup = selectedUser.Groups.FirstOrDefault(x => x.UserAndGroupTypeSystemName.Equals("Dealership_Folder", StringComparison.InvariantCultureIgnoreCase) && !x.Subgroups.Any());
12 var sameRoleUsers = new List<User>();
13
14 var accountStatementReportUserPage = $"/Default.aspx?ID={GetPageIdByNavigationTag("AccountStatementReport")}&UserId={selectedUser.ID}";
15 var accountStatementReportUserGroupPage = $"/Default.aspx?ID={GetPageIdByNavigationTag("BatchPrintAccountStatementReport")}&pdf=true&letter=true&filename={selectedUserGroup?.Name}.pdf";
16
17 if (selectedUserGroup != null)
18 {
19 foreach (var user in selectedUserGroup.Users)
20 {
21 if(selectedUser.ID == user.ID) { continue; }
22
23 var userImpersonationRoles = Dna.SwiftRizzo.LoginRoles.ImpersonationRoles.GetImpersonationRoles(loginUser, user);
24 var hasSameRoles = impersonationRoles.Aggregate(false, (current1, impersonationRole) => userImpersonationRoles.Aggregate(current1, (current, userImpersonationRole) => current || impersonationRole.GetId().Equals(userImpersonationRole.GetId())));
25
26 if (hasSameRoles)
27 {
28 sameRoleUsers.Add(user);
29 }
30 }
31 }
32
33 <div>
34 <h2>@Translate("Show Account Statement for:")</h2>
35
36 <div class="g-col-12">
37 <a type="button" class="btn btn-primary w-100 w-sm-auto mb-2 mb-sm-0" href="@accountStatementReportUserPage" target="_blank">@selectedUser.Name - @selectedUser.CustomerNumber</a>
38 </div>
39
40 @if (sameRoleUsers.Any())
41 {
42 <div class="g-col-12 mt-3">
43 <a type="button" class="btn btn-primary w-100 w-sm-auto" href="@accountStatementReportUserGroupPage" target="_blank">@($"{Translate("All statements for")} {selectedUserGroup?.Name} {Translate("Dealer Group")}")</a>
44 </div>
45 }
46 </div>
47 }