My customers
Error executing template "Designs/Swift-v2/Users/UserView/List/ImpersonationUsersList.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at CompiledRazorTemplates.Dynamic.RazorEngine_53407aadb2a4450db3b7de16f7bc7ea4.ExecuteAsync() at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.DynamicWrapperService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, 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 RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String templateSource, String name, Type modelType, Object model, DynamicViewBag viewBag) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits ViewModelTemplate<UserListViewModel> 2 @using Dynamicweb.Frontend 3 @using Dynamicweb.Rendering 4 @using Dynamicweb.Users.Frontend 5 @using Dynamicweb.Security.UserManagement 6 7 @{ 8 string searchTerm = Dynamicweb.Context.Current?.Request.Params.Get("search") ?? string.Empty; 9 } 10 11 12 <div class="grid type-ahead-dropdown position-relative mb-4"> 13 <div class="g-col-12 g-col-lg-8"> 14 @if(UserContext.Current.ImpersonatingUser == null) 15 { 16 <h2 class="h4 mb-0">@Translate("Impersonate customer")</h2> 17 } else { 18 <div class="hstack gap-3"> 19 <h2 class="h4 mb-0"> 20 <span class="fw-bold">@Translate("You are impersonating"):</span> 21 <span>@Pageview.User.Name</span> 22 </h2> 23 <a href="Default.aspx?ID=@(Pageview.ID)&DwExtranetRemoveSecondaryUser=1" class="btn btn-danger btn-sm" data-dw-button> 24 @Translate("Stop") 25 </a> 26 </div> 27 } 28 </div> 29 <div class="g-col-12 g-col-lg-4"> 30 <form method="get" class="suggest-form"> 31 <div class="hstack mb-3"> 32 <label for="Search_@Pageview.CurrentParagraph.ID" class="visually-hidden">@Translate("Search for customer")</label> 33 <span class="position-absolute icon-2 reset-search px-3"> 34 @ReadFile("/Files/Images/Icons/magnifying-glass.svg") 35 </span> 36 <input id="Search_@Pageview.CurrentParagraph.ID" 37 type="search" 38 class="form-control form-control-sm rounded-pill type-ahead-field py-2 ps-5 pe-5" 39 placeholder="@Translate("Search for customer")" 40 aria-label="@Translate("Search for customer")" 41 aria-describedby="Search_@Pageview.CurrentParagraph.ID" 42 name="search" 43 value="@searchTerm"> 44 45 <button type="button" 46 onclick="var f = document.getElementById('Search_@Pageview.CurrentParagraph.ID'); f.value = ''; f.focus(); f.closest('form').submit();" 47 class="btn position-absolute end-0 icon-2 reset-search" 48 aria-label="@Translate("Clear search field")" 49 style="opacity: 0; visibility: hidden;"> 50 @ReadFile("/Files/Images/Icons/xmark.svg") 51 </button> 52 </div> 53 </form> 54 </div> 55 </div> 56 57 @if (Model.Users.Count() > 0) 58 { 59 <table class="table d-none d-lg-table table-striped table-hover align-middle"> 60 <thead> 61 <tr> 62 <th>@Translate("Customer")</th> 63 <th>@Translate("Customer number")</th> 64 <th>@Translate("Address")</th> 65 <th>@Translate("Email")</th> 66 <th></th> 67 </tr> 68 </thead> 69 70 <tbody class="border-top-0"> 71 @foreach (var user in Model.Users) 72 { 73 string address = $"{user.Address}, {user.Zip} {user.City}, {user.Country}"; 74 75 <tr> 76 <td>@user.Name</td> 77 <td>@user.CustomerNumber</td> 78 <td>@address</td> 79 <td>@user.Email</td> 80 <td class="text-end"> 81 @if (Pageview.User.ID != user.ID) 82 { 83 <form method="get"> 84 <input type="hidden" name="NowImpersonating" value="true" /> 85 <button type="submit" name="DWExtranetSecondaryUserSelector" value="@user.ID" class="btn btn-sm btn-secondary w-100" data-dw-button="secondary"> 86 @Translate("Impersonate") 87 </button> 88 </form> 89 } 90 else 91 { 92 <a href="Default.aspx?ID=@(Pageview.ID)&DwExtranetRemoveSecondaryUser=1" class="btn btn-sm btn-danger w-100" data-dw-button> 93 @Translate("Stop") 94 </a> 95 } 96 </td> 97 </tr> 98 } 99 </tbody> 100 </table> 101 102 <div class="d-block d-lg-none"> 103 @foreach (var user in Model.Users) 104 { 105 <div class="card mb-3"> 106 <div class="card-body p-3"> 107 <h5 class="card-title"> 108 @user.Name 109 </h5> 110 <div class="card-text"> 111 <div>@user.CustomerNumber</div> 112 <div>@user.Address</div> 113 <div>@user.Zip, @user.City</div> 114 <div>@user.Country</div> 115 <div>@user.Email</div> 116 @if (Pageview.User.ID != user.ID) 117 { 118 <form method="get" class="mt-3"> 119 <input type="hidden" name="NowImpersonating" value="true" /> 120 <button type="submit" name="DWExtranetSecondaryUserSelector" value="@user.ID" class="btn btn-sm btn-secondary w-100" data-dw-button="secondary"> 121 @Translate("Impersonate") 122 </button> 123 </form> 124 } 125 else 126 { 127 <a href="Default.aspx?ID=@(Pageview.ID)&DwExtranetRemoveSecondaryUser=1" class="btn btn-sm btn-danger w-100 mt-3" data-dw-button> 128 @Translate("Stop") 129 </a> 130 } 131 </div> 132 </div> 133 </div> 134 } 135 </div> 136 137 if (Model.PageCount > 1) 138 { 139 <form class="mt-3"> 140 <input type="hidden" name="search" value="@searchTerm" /> 141 <ul class="pagination m-0"> 142 @for (int i = 1; i <= Model.PageCount; i++) 143 { 144 var active = (i == Model.CurrentPage) ? "active" : string.Empty; 145 <li class="page-item @active"> 146 <button type="submit" class="page-link" name="PageNum" value="@i">@i</button> 147 </li> 148 } 149 </ul> 150 </form> 151 } 152 } 153 else 154 { 155 <div class="alert alert-info text-center mt-3" role="alert"> 156 @Translate("No users found") 157 </div> 158 } 159