Unsubscribe Page
| 0
|
Error executing template "/Designs/PLC/Paragraph/UnsubscribeNewsLetterParagraph.cshtml"
System.ArgumentNullException: Value cannot be null.
Parameter name: s
   at System.Convert.FromBase64String(String s)
   at CompiledRazorTemplates.Dynamic.RazorEngine_db36f30f13d04663ab8ccebbfa10ebd5.Execute() in E:\website\PLCMalaysia\Solution\Files\Templates\Designs\PLC\Paragraph\UnsubscribeNewsLetterParagraph.cshtml:line 76
   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.b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @using System.Web; 2 @using System.Text; 3 4 @{ 5 init(); 6 } 7 8 @functions { 9 private int columnsWritten { get; set; } 10 private int columns { get; set; } 11 12 public void init() 13 { 14 columnsWritten = Dynamicweb.Core.Converter.ToInt32(System.Web.HttpContext.Current.Items["currentColumns"]); 15 columns = GetInteger("Item.Width"); 16 System.Web.HttpContext.Current.Items["currentColumns"] = columnsWritten + GetInteger("Item.Width"); 17 } 18 19 public void Fluid() 20 { 21 columnsWritten = Dynamicweb.Core.Converter.ToInt32(System.Web.HttpContext.Current.Items["currentColumns"]); 22 columns = 12; 23 System.Web.HttpContext.Current.Items["currentColumns"] = columnsWritten + 12; 24 } 25 26 public string ColumnClass() 27 { 28 if (GetString("Item.WidthMobile") == "hide"){ 29 return "col-md-" + GetString("Item.Width") + " hidden-xs"; 30 } else { 31 return "col-md-" + GetString("Item.Width") + " col-xs-" + GetString("Item.WidthMobile"); 32 } 33 } 34 35 public string NewRow() 36 { 37 if (columns + columnsWritten > 12) 38 { 39 System.Web.HttpContext.Current.Items["currentColumns"] = columns; 40 return "</div><div class='clearfix'></div><div class=\"grid\">"; 41 } 42 else 43 { 44 return string.Empty; 45 } 46 47 } 48 } 49 @NewRow() 50 51 52 @{ 53 string requestUrl = "http://" + GetGlobalValue("Global:Request.Host"); 54 Dynamicweb.Security.UserManagement.User user = new Dynamicweb.Security.UserManagement.User(); 55 /* BEGIN cheating to hide "username" query parameter value. PLC would like to hide user email address. PLC should not request to hide and DW should not implement this way. */ 56 try 57 { 58 string usernameParamValue = Convert.ToString(System.Web.HttpContext.Current.Request["username"]); 59 string counterParamValue = Convert.ToString(System.Web.HttpContext.Current.Request["usernamecounter"]); 60 if(!string.IsNullOrEmpty(usernameParamValue) && string.IsNullOrEmpty(counterParamValue) && usernameParamValue.Contains("@")) 61 { 62 byte[] usernameByte = Encoding.UTF8.GetBytes(usernameParamValue); 63 string usernameBase64 = Convert.ToBase64String(usernameByte); 64 string customParam = "username=" + usernameBase64 + "&usernamecounter=" + DateTime.Now.ToString("MMhhddmmyyyyss"); 65 string currentPageUrl = "/default.aspx?Id=" + GetString("Global.PageId"); 66 string redirectUrl = currentPageUrl + "&" + customParam; 67 System.Web.HttpContext.Current.Response.Redirect(redirectUrl); 68 } 69 } catch { /* nothing can do. */ } 70 /* END cheating to hide "username" query parameter value. PLC would like to hide user email address */ 71 72 HttpRequest quest = System.Web.HttpContext.Current.Request; 73 //string Queryusername = quest.QueryString["username"]; 74 //string queryUserId = quest.QueryString["userid"]; 75 76 var userNameBytes = System.Convert.FromBase64String(quest.QueryString["username"]); 77 var Queryusername = System.Text.Encoding.UTF8.GetString(userNameBytes); 78 user = Dynamicweb.Security.UserManagement.User.GetUserByUserName(Queryusername); 79 if (user == null) 80 { 81 var userIdBytes = System.Convert.FromBase64String(quest.QueryString["userid"]); 82 var queryUserId = System.Text.Encoding.UTF8.GetString(userIdBytes); 83 user = Dynamicweb.Security.UserManagement.User.GetUserByID(Convert.ToInt32(queryUserId)); 84 } 85 86 87 if (user != null) 88 { 89 user.EmailAllowed = false; 90 user.RemoveFromGroup(1841); 91 user.Save(); 92 } 93 else 94 { 95 //System.Web.HttpContext.Current.Response.Redirect("Default.aspx?ID=8794"); 96 } 97 } 98 99 <div class="@ColumnClass()"> 100 101 @if (GetString("Item.Order") == "title-first" || GetString("Item.Order") == "") 102 { 103 @RenderHeading() 104 @RenderSubHeading() 105 @RenderImage() 106 @RenderText() 107 @RenderModule() 108 @RenderButton() 109 } 110 111 @if (GetString("Item.Order") == "image-first") 112 { 113 114 @RenderImage() 115 @RenderSubHeading() 116 @RenderHeading() 117 @RenderText() 118 @RenderModule() 119 @RenderButton() 120 } 121 122 @if (GetString("Item.Order") == "title-sub-first") 123 { 124 @RenderHeading() 125 @RenderSubHeading() 126 @RenderImage() 127 @RenderText() 128 @RenderModule() 129 @RenderButton() 130 } 131 132 @if (GetString("Item.Order") == "icon-xs") 133 { 134 <div class="col-md-2"> 135 @RenderImage() 136 </div> 137 <div class="col-md-10"> 138 @RenderHeading() 139 @RenderSubHeading() 140 @RenderText() 141 @RenderModule() 142 @RenderButton() 143 </div> 144 } 145 146 @if (GetString("Item.Order") == "icon-sm") 147 { 148 <div class="col-md-3"> 149 @RenderImage() 150 </div> 151 <div class="col-md-9"> 152 @RenderHeading() 153 @RenderSubHeading() 154 @RenderText() 155 @RenderModule() 156 @RenderButton() 157 </div> 158 } 159 160 @if (GetString("Item.Order") == "icon-md") 161 { 162 <div class="col-md-4"> 163 @RenderImage() 164 </div> 165 <div class="col-md-8"> 166 @RenderHeading() 167 @RenderSubHeading() 168 @RenderText() 169 @RenderModule() 170 @RenderButton() 171 </div> 172 } 173 174 </div> 175 176 177 @helper RenderHeading() 178 { 179 if (GetBoolean("Item.ShowTitle") != false) 180 { 181 if (!string.IsNullOrEmpty(GetString("Item.Title"))) 182 { 183 <h2 id="paragraphid" style="margin-left:20px;">@GetString("Item.Title") </h2> 184 } 185 } 186 } 187 188 @helper RenderButton() 189 { 190 var Url = GetString("Item.Link"); 191 192 if (!string.IsNullOrEmpty(Url) && !string.IsNullOrEmpty(GetString("Item.LinkText"))) 193 { 194 if (Url.Contains("http")) 195 { 196 <text> 197 <p style="float:none !important; margin-bottom:30px !important; text-align:center !important; width: 110% !important;"> 198 <a href="@GetString("Item.Link")" target="_blank" class="btn btn-dw-primary">@GetString("Item.LinkText")</a> 199 </p> 200 </text> 201 } 202 else if (Url.Contains("/")) 203 { 204 <text> 205 <p style="float:none !important; margin-bottom:30px !important; text-align:center !important; width: 110% !important;"> 206 <a href="@GetString("Item.Link")" class="btn btn-dw-primary" download>@GetString("Item.LinkText")</a> 207 </p> 208 </text> 209 } 210 else 211 { 212 <text> 213 <p style="float:none !important; margin-bottom:30px !important; text-align:center !important; width: 110% !important;"> 214 <a href="@GetString("Item.Link")" class="btn btn-dw-primary" style="margin-left: -40px;">@GetString("Item.LinkText")</a> 215 </p> 216 </text> 217 } 218 } 219 } 220 221 @helper RenderSubHeading() 222 { 223 if (!string.IsNullOrEmpty(GetString("Item.Subtitle"))) 224 { 225 <h3 style="margin-left:20px;"> 226 @GetString("Item.Subtitle") 227 </h3> 228 } 229 } 230 231 @helper RenderText() 232 { 233 if (!string.IsNullOrWhiteSpace(GetString("Item.Text"))) 234 { 235 236 <div class="figure" style="margin: -23px 0 -20px 0px;"> 237 @GetString("Item.Text") 238 </div> 239 } 240 } 241 242 @helper RenderModule() 243 { 244 @GetString("ParagraphModule") 245 } 246 247 @helper RenderImage() 248 { 249 if (!string.IsNullOrEmpty(GetString("Item.Image"))) 250 { 251 var image = System.Web.HttpContext.Current.Server.UrlEncode(GetString("Item.Image")); 252 253 <!-- Choosing the smallest possible width that will work with responsive sizes --> 254 string optimizedwidth = "1280"; 255 256 switch (GetString("Item.Width")) 257 { 258 case "12": 259 optimizedwidth = "1280"; 260 break; 261 case "9": 262 optimizedwidth = "960"; 263 break; 264 case "6": 265 optimizedwidth = "722"; 266 break; 267 case "3": 268 optimizedwidth = "722"; 269 break; 270 case "8": 271 optimizedwidth = "960"; 272 break; 273 case "4": 274 optimizedwidth = "722"; 275 break; 276 } 277 278 string optimizedheight = ((Convert.ToInt32(optimizedwidth) / 16) * 9).ToString(); 279 280 if (GetString("Item.ImageStyle") == "ball") 281 { 282 optimizedwidth = "500"; 283 optimizedheight = "500"; 284 } 285 286 287 if (string.IsNullOrEmpty(GetString("Item.Link"))) 288 { 289 <div class="img-responsive dw-std-image" style="padding-bottom: 15px;"> 290 <img class="content-image img-responsive" width="@optimizedwidth" height="@optimizedheight" style="@GetImageBorderCss()" src="/Admin/Public/GetImage.ashx?width=@optimizedwidth&amp;height=@optimizedheight&amp;crop=7&amp;Compression=75&amp;image=@image" alt='@GetString("Item.Title")' /> 291 </div> 292 } 293 else 294 { 295 <a href="@GetString("Item.Link")"> 296 <div class="img-responsive dw-std-image" style="padding-bottom: 15px;"> 297 <img class="content-image img-responsive" width="@optimizedwidth" height="@optimizedheight" style="@GetImageBorderCss()" src="/Admin/Public/GetImage.ashx?width=@optimizedwidth&amp;height=@optimizedheight&amp;crop=7&amp;Compression=75&amp;image=@image" alt='@GetString("Item.Title")' /> 298 </div> 299 </a> 300 } 301 } 302 } 303 304 @functions { 305 private string GetImageBorderCss() 306 { 307 if (GetString("Item.ImageStyle") == "cover") 308 { 309 return "padding: 8px"; 310 } 311 else if (GetString("Item.ImageStyle") == "cover-border") 312 { 313 return "padding: 4px; border: 1px solid #e1e1e1; border-radius: 0px !important"; 314 } 315 else if (GetString("Item.ImageStyle") == "frame") 316 { 317 return "padding: 6px; border: 1px solid #e1e1e1; border-radius: 0px !important"; 318 } 319 else if (GetString("Item.ImageStyle") == "rounded") 320 { 321 return "border-radius: 8px !important"; 322 } 323 else if (GetString("Item.ImageStyle") == "ball") 324 { 325 return "border-radius: 1000px !important"; 326 } 327 else if (GetString("Item.ImageStyle") == "shadow") 328 { 329 return "box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.2)"; 330 } 331 else 332 { 333 return string.Empty; 334 } 335 } 336 }