Error executing template "Designs/Blogtheme/_parsed/BlogFront.parsed.cshtml"
System.IO.IOException: The process cannot access the file 'd:\dynamicweb.net\Solutions\Dynamicweb\cboll.net.dynamicweb-cms.com\Files\Templates\Designs\Blogtheme\json\AllEntitiesTest.json' because it is being used by another process.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)
   at System.IO.File.InternalReadAllText(String path, Encoding encoding, Boolean checkHost)
   at CompiledRazorTemplates.Dynamic.RazorEngine_3d02a07df3de43de83ee26c0f9030b00.Execute() in d:\dynamicweb.net\Solutions\Dynamicweb\cboll.net.dynamicweb-cms.com\Files\Templates\Designs\Blogtheme\_parsed\BlogFront.parsed.cshtml:line 83
   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 @using System.Web; 2 @using System.Net; 3 @using Newtonsoft.Json; 4 @using Newtonsoft.Json.Linq; 5 6 @functions { 7 public class RootObject 8 { 9 public string tableName { get; set; } 10 public List<Entity> entityList { get; set; } 11 } 12 13 public class Entity 14 { 15 public string Id { get; set; } 16 public int Sort { get; set; } 17 public string ItemInstanceType { get; set; } 18 public string Title { get; set; } 19 public string Type { get; set; } 20 public string Description { get; set; } 21 public string Image { get; set; } 22 public string Culture { get; set; } 23 public string Greek_Subcultures { get; set; } 24 public string Roman_Republican_Subcultures { get; set; } 25 public string Roman_Imperial_Subcultures { get; set; } 26 public string Celtic_Subcultures { get; set; } 27 public string Roman_Provincial_Subcultures { get; set; } 28 public string Islamic_Subcultures { get; set; } 29 public string Eastern_Subcultures { get; set; } 30 public string European_Medieval_Subcultures { get; set; } 31 public string Indian_Subcultures { get; set; } 32 public string Byzantine_Subcultures { get; set; } 33 public string Phoenician_Subcultures { get; set; } 34 public string Chinese_Subcultures { get; set; } 35 public string Zone { get; set; } 36 public string Region { get; set; } 37 public string Location { get; set; } 38 public string Modern_Location { get; set; } 39 public string Ruler_Title { get; set; } 40 public string Ruler_Title_English { get; set; } 41 public string Epithet { get; set; } 42 public string EpithetEnglish { get; set; } 43 public string Domain { get; set; } 44 public string Doman_English { get; set; } 45 public string StartOf_Rule { get; set; } 46 public string EndOf_Rule { get; set; } 47 public string OwnerID { get; set; } 48 public string OwnerName { get; set; } 49 public string ShortDescription { get; set; } 50 public string Focus { get; set; } 51 public string IsPatron { get; set; } 52 public string IsFolder { get; set; } 53 public string IsDeleted { get; set; } 54 public string MetalsList { get; set; } 55 public string MintedByList { get; set; } 56 public string IncludeInMenu { get; set; } 57 public string NameReadable { get; set; } 58 public string PreviousText { get; set; } 59 public string NextText { get; set; } 60 public string RelevantPageID { get; set; } 61 public string RelevantParagraphID { get; set; } 62 public string RelevantAreaID { get; set; } 63 } 64 65 } 66 67 68 <!DOCTYPE html> 69 <html lang="en"> 70 71 @{ 72 string[] stringSeparators = new string[] { ", ", " and ", "|", "," }; 73 string User = @GetGlobalValue("Global:Extranet.UserID"); 74 string SortValue = "CustomSortValue"; 75 string CollectionLink = @GetGlobalValue("Global:Request.Host") + "/Categories?BelongsToUser=" + @GetGlobalValue("Global:Extranet.UserID") + "&SortBy=" + @SortValue; 76 77 string Username = ""; 78 string SearchString = System.Web.HttpContext.Current.Request.QueryString["Search"]; 79 } 80 81 @{ 82 83 string AllEntitiesRaw = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("/Files/Templates/Designs/Blogtheme/json/AllEntitiesTest.json")); 84 int AllEntitiesRawLength = AllEntitiesRaw.Length; 85 86 var AllEntitiesJSON = JsonConvert.DeserializeObject<List<Entity>>(@AllEntitiesRaw.Substring(49, @AllEntitiesRawLength - 55)); 87 88 } 89 90 @if (!string.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName"))) 91 { 92 Username = GetGlobalValue("Global:Extranet.UserName"); 93 } 94 else 95 { 96 Username = ""; 97 } 98 99 <head> 100 <meta charset="utf-8"> 101 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 102 <meta name="viewport" content="width=device-width, initial-scale=1"> 103 @RenderSnippet("OGData") 104 105 <!-- CSS --> 106 <link href="/Files/Templates/Designs/Blogtheme/vendor/bootstrap-4.6.0/css/bootstrap.css" rel="stylesheet"> 107 <link href="/Files/Templates/Designs/Blogtheme/css/clean-blog.css" rel="stylesheet"> 108 <link href="/Files/Templates/Designs/Blogtheme/css/CoinSiteStyles.css" rel="stylesheet"> 109 <link href="/Files/Templates/Designs/Blogtheme/css/easy-autocomplete.css" rel="stylesheet"> 110 <link href="/Files/Templates/Designs/Blogtheme/vendor/MDB-Free_4.19.2/css/addons/datatables.min.css" rel="stylesheet"> 111 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.4.0/font/bootstrap-icons.css"> 112 113 <!-- Custom Fonts --> 114 <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous"> 115 <link href='https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic' rel='stylesheet' type='text/css'> 116 <link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'> 117 118 <!-- jQuery & JavaScript --> 119 <script src="/Files/Templates/Designs/Blogtheme/vendor/jquery/jquery.min.js"></script> 120 <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> 121 <script src="/Files/Templates/Designs/Blogtheme/vendor/bootstrap-4.6.0/js/bootstrap.min.js"></script> 122 <script src="/Files/Templates/Designs/Blogtheme/js/jquery.easy-autocomplete.js"></script> 123 <script type="text/javascript" src="/Files/Templates/Designs/Blogtheme/vendor/MDB-Free_4.19.2/js/addons/datatables.min.js"></script> 124 125 <!-- New Menu --> 126 <style> 127 .dropdown-submenu { 128 position: static; 129 font-size: 14px; 130 } 131 132 .dropdown-submenu a::after { 133 transform: rotate(-90deg); 134 } 135 136 .dropdown-submenu .dropdown-menu { 137 top: 0; 138 left: 100%; 139 margin-left: .1rem; 140 margin-right: .1rem; 141 font-size: 14px; 142 } 143 </style> 144 145 146 <!-- Google Analytics --> 147 <script> 148 (function (i, s, o, g, r, a, m) { 149 i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { 150 (i[r].q = i[r].q || []).push(arguments) 151 }, i[r].l = 1 * new Date(); a = s.createElement(o), 152 m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) 153 })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); 154 155 ga('create', 'UA-88475304-1', 'auto'); 156 ga('send', 'pageview'); 157 </script> 158 159 160 161 <!-- CollectionLink to copy --> 162 @*<input class="form-control input-lg" style="opacity:0;" type="text" id="copy-input" value='@CollectionLink'>*@ 163 164 @GetValue("CopyRightNotice") 165 @GetValue("MetaTags") 166 @GetValue("Stylesheets") 167 @GetValue("Javascripts") 168 </head> 169 170 <body> 171 172 <!-- Google Tag Manager (noscript) --> 173 <noscript> 174 <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5SVNCFK" height="0" width="0" style="display:none;visibility:hidden"></iframe> 175 </noscript> 176 177 178 <!-- Navigation --> 179 <div class="navbar navbar-expand-xl fixed-top bg-white"> 180 <div class="container"> 181 <a class="navbar-brand" title="ancientcoingallery.net"><img src="/Admin/Public/GetImage.ashx?Image=/Files/Templates/Designs/Blogtheme/img/Antoninianus.jpg&Format=jpg&Width=0&Height=60&Resolution=300&Compression=99&Crop=0"></a> 182 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> 183 <span class="navbar-toggler-icon"><i class="bi bi-list"></i></span> 184 </button> 185 186 <div class="navbar-collapse collapse" id="navbarSupportedContent"> 187 <ul class="navbar-nav mr-auto mt-2 mt-lg-0"> 188 <!-- Home --> 189 <li class="nav-item font-menu"> 190 <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> 191 </li> 192 <!-- Authorities --> 193 <li class="nav-item dropdown"> 194 <a class="nav-link dropdown-toggle font-menu" href="" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Authority<span class="caret"></span></a> 195 <ul class="dropdown-menu"> 196 @foreach (var entity in AllEntitiesJSON.OrderBy(x => x.Title)) 197 { 198 if (@entity.Type == "Category") 199 { 200 string[] CategoryTitleList = entity.Title.Split(stringSeparators, StringSplitOptions.None); 201 string CategoryTitle = CategoryTitleList[0].Replace("_", " "); 202 203 <li class="dropdown-submenu"> 204 <a class="dropdown-item dropdown-toggle" href="#">@CategoryTitle</a> 205 <ul class="dropdown-menu"> 206 <li><a class="dropdown-item" href="/Default.aspx?ID=8&Category=@CategoryTitleList[0]"><b>All @CategoryTitle</b></a></li> 207 @foreach (var subentity in AllEntitiesJSON.OrderBy(x => x.Sort)) 208 { 209 if (@subentity.Culture == CategoryTitleList[0] && @subentity.Type == "Subcategory") 210 { 211 string[] SubcategoryTitleList = subentity.Title.Split(stringSeparators, StringSplitOptions.None); 212 string SubcategoryTitle = SubcategoryTitleList[0].Replace("_", " "); 213 <li class="dropdown-submenu"> 214 <a class="dropdown-item dropdown-toggle" href="#">@SubcategoryTitle</a> 215 <ul class="dropdown-menu"> 216 <li><a class="dropdown-item" href='/Default.aspx?ID=8&Subcategory=@SubcategoryTitleList[0]&Category=@subentity.Culture'><b>All @SubcategoryTitle</b></a></li> 217 @foreach (var authority in AllEntitiesJSON.OrderBy(x => x.Sort)) 218 { 219 220 if (authority.Type == "Ruler" & authority.Roman_Republican_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] || 221 authority.Type == "Ruler" & authority.Roman_Imperial_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] || 222 authority.Type == "Ruler" & authority.Celtic_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] || 223 authority.Type == "Ruler" & authority.Roman_Provincial_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] || 224 authority.Type == "Ruler" & authority.Islamic_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] || 225 authority.Type == "Ruler" & authority.Eastern_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] || 226 authority.Type == "Ruler" & authority.European_Medieval_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] || 227 authority.Type == "Ruler" & authority.Indian_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] || 228 authority.Type == "Ruler" & authority.Byzantine_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] || 229 authority.Type == "Ruler" & authority.Phoenician_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] || 230 authority.Type == "Ruler" & authority.Chinese_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0]|| 231 authority.Type == "Ruler" & authority.Greek_Subcultures == SubcategoryTitleList[0] && authority.Culture == CategoryTitleList[0] 232 ) 233 { 234 if (authority.Culture == "Roman_Imperial" || authority.Culture == "Roman_Provincial") 235 { 236 <li><a class="dropdown-item" href="/Default.aspx?ID=8&Ruler=@authority.Title">@authority.Title</a></li> 237 } 238 else 239 { 240 <li><a class="dropdown-item" href="/Default.aspx?ID=8&Ruler=@authority.Title&Category=@authority.Culture">@authority.Title</a></li> 241 } 242 243 } 244 } 245 </ul> 246 </li> 247 } 248 } 249 </ul> 250 </li> 251 } 252 } 253 254 255 </ul> 256 </li> 257 <!-- Geography --> 258 <li class="dropdown"> 259 <a class="nav-link dropdown-toggle font-menu" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Geography<span class="caret"></span></a> 260 <ul class="dropdown-menu"> 261 @foreach (var zone in AllEntitiesJSON.OrderBy(x => x.Title)) 262 { 263 if (zone.Type == "Zone") 264 { 265 string[] ZoneTitleList = zone.Title.Split(stringSeparators, StringSplitOptions.None); 266 string ZoneTitle = ZoneTitleList[0].Replace("_", " "); 267 268 <li class="dropdown-submenu"> 269 <a class="dropdown-item dropdown-toggle" href="#">@ZoneTitle</a> 270 <ul class="dropdown-menu"> 271 <li><a class="dropdown-item" href="/Default.aspx?ID=8&Zone=@ZoneTitleList[0]"><b>All @ZoneTitle</b></a></li> 272 @foreach (var region in AllEntitiesJSON.OrderBy(x => x.Title)) 273 { 274 if (region.Zone == @ZoneTitleList[0] && region.Type == "Region") 275 { 276 string[] RegionTitleList = region.Title.Split(stringSeparators, StringSplitOptions.None); 277 string RegionTitle = RegionTitleList[0]; 278 <li> 279 <a class="dropdown-item dropdown-toggle" href="#">@region.Title</a> 280 <ul class="dropdown-menu"> 281 <li><a class="dropdown-item" href='/Default.aspx?ID=8&Region=@RegionTitleList[0]'><b>All @RegionTitle</b></a></li> 282 @foreach (var mint in AllEntitiesJSON.OrderBy(x => x.Title)) 283 { 284 string[] MintTitleList = mint.Title.Split(stringSeparators, StringSplitOptions.None); 285 string MintTitle = MintTitleList[0].Replace("_", " "); 286 if (mint.Region == @RegionTitleList[0] && mint.Type == "Mint") 287 { 288 <li><a class="dropdown-item" href="/Default.aspx?ID=8&Mint=@mint.Title">@MintTitle</a></li> 289 } 290 } 291 </ul> 292 </li> 293 } 294 } 295 </ul> 296 </li> 297 } 298 } 299 300 301 </ul> 302 </li> 303 <!-- Denominations --> 304 <li class="dropdown"> 305 <a class="nav-link dropdown-toggle font-menu" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Denominations<span class="caret"></span></a> 306 <ul class="dropdown-menu"> 307 @foreach (var entity in AllEntitiesJSON.OrderBy(x => x.Title)) 308 { 309 if (@entity.Type == "Category") 310 { 311 string[] CategoryTitleList = entity.Title.Split(stringSeparators, StringSplitOptions.None); 312 string CategoryTitle = CategoryTitleList[0].Replace("_", " "); 313 314 if (CategoryTitle == "Greek" || @CategoryTitle == "Roman Imperial") 315 { 316 <li class="dropdown-submenu"> 317 <a class="dropdown-item dropdown-toggle" href="#">@CategoryTitle </a> 318 <ul class="dropdown-menu"> 319 @foreach (var subentity in AllEntitiesJSON.OrderBy(x => x.Title)) 320 { 321 if (@subentity.Type == "Metal" && subentity.IncludeInMenu == "yes") 322 { 323 string title2 = subentity.Title; 324 <li> 325 <a class="dropdown-item dropdown-toggle" href="#">@subentity.NameReadable </a> 326 <ul class="dropdown-menu"> 327 <li><a class="dropdown-item" href='/Default.aspx?ID=8&Metal=@title2.Replace(" ","_")'><b>All @title2</b></a></li> 328 @foreach (var subsubentity in AllEntitiesJSON.OrderBy(x => x.Title)) 329 { 330 if (@subsubentity.Type == "Denomination" && subentity.MintedByList != null) 331 { 332 string[] metalsList; 333 string rawMetals = @subsubentity.MetalsList; 334 metalsList = rawMetals.Split(stringSeparators, StringSplitOptions.None); 335 string[] mintedByList; 336 string rawmintedBy = @subsubentity.MintedByList; 337 mintedByList = rawmintedBy.Split(stringSeparators, StringSplitOptions.None); 338 <span></span> 339 if (@metalsList.Contains(@title2.Replace(" ", "_")) && @mintedByList.Contains(@CategoryTitleList[0])) 340 { 341 <li><a class="dropdown-item" href='/Default.aspx?ID=8&Denomination=@subsubentity.Title&Category=@CategoryTitleList[0]&Metal=@title2.Replace(" ","_")'>@subsubentity.Title</a></li> 342 } 343 344 } 345 } 346 </ul> 347 </li> 348 } 349 } 350 </ul> 351 </li> 352 } 353 else 354 { 355 <li class="dropdown-submenu"> 356 <a class="dropdown-item dropdown-toggle" href="#">@CategoryTitle</a> 357 <ul class="dropdown-menu"> 358 @foreach (var denomination in AllEntitiesJSON.OrderBy(x => x.Title)) 359 { 360 if (denomination.Type == "Denomination" && denomination.MintedByList != null) 361 { 362 string[] mintedByList; 363 string rawmintedBy = denomination.MintedByList; 364 mintedByList = rawmintedBy.Split(stringSeparators, StringSplitOptions.None); 365 <span></span> 366 string[] DenominationTitleList = denomination.Title.Split(stringSeparators, StringSplitOptions.None); 367 string DenominationTitle = DenominationTitleList[0].Replace("_", " "); 368 if (@mintedByList.Contains(@CategoryTitleList[0])) 369 { 370 <li><a class="dropdown-item" href='/Default.aspx?ID=8&Denomination=@denomination.Title&Category=@CategoryTitleList[0]'>@DenominationTitle</a></li> 371 } 372 } 373 } 374 </ul> 375 </li> 376 377 } 378 } 379 } 380 381 </ul> 382 </li> 383 384 <!-- Other --> 385 <li class="dropdown"> 386 <a class="nav-link dropdown-toggle font-menu" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Other<span class="caret"></span></a> 387 <ul class="dropdown-menu"> 388 389 <li class="dropdown-submenu"> 390 <a class="dropdown-item dropdown-toggle" href="#">Collections</a> 391 <ul class="dropdown-menu"> 392 <li><a class="dropdown-item" href="/Default.aspx?ID=1095"><b>All Collections</b></a></li> 393 @foreach (var entity in AllEntitiesJSON.OrderBy(x => x.Title)) 394 { 395 if (@entity.Type == "Collection" && @entity.IsPatron == "true") 396 { 397 string title1 = entity.Title; 398 <li><a class="dropdown-item" href='/Default.aspx?ID=8&BelongsToUser=@entity.OwnerID&SortBy=CustomSortValue'><i class="fab fa-patreon fa-1" aria-hidden="true"></i> @entity.Title</a></li> 399 } 400 } 401 </ul> 402 </li> 403 <li class="divider"></li> 404 <li><a class="dropdown-item" href="Default.aspx?ID=55"> About </a></li> 405 406 </ul> 407 </li> 408 409 </ul> 410 <!-- Login --> 411 <ul class="navbar navbar-nav navbar-right"> 412 <li> 413 414 <form action="/Search"> 415 <div class="search-container"> 416 @if (!string.IsNullOrWhiteSpace(@SearchString)) 417 { 418 <input class="font-menu" type="text" placeholder="@SearchString" name="Search"> 419 } 420 else 421 { 422 <input class="font-menu" type="text" placeholder="Search.." name="Search"> 423 } 424 <button class="btn" type="submit"><i class="fas fa-search"></i></button> 425 </div> 426 </form> 427 428 </li> 429 <li class="dropdown"> 430 <a class="nav-link dropdown-toggle font-menu" href="#" data-toggle="dropdown" class="dropdown-toggle font-subtitle"><i class="fa fa-user" aria-hidden="true"></i> @Username </a> 431 <ul class="dropdown-menu"> 432 @if (!string.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName"))) 433 { 434 <li><a class="dropdown-item" tabindex="-1" href="/Default.aspx?ID=12">Profile</a></li> 435 <li><a class="dropdown-item" tabindex="-1" href="/Default.aspx?ID=908&BelongsToUser=@User&SortBy=CustomSortValue">Collection </a></li> 436 437 <li class="divider"></li> 438 <li><a class="dropdown-item" tabindex="-1" href="/Admin/Public/ExtranetLogoff.aspx">Log out</a></li> 439 } 440 else 441 { 442 <li><a class="dropdown-item" tabindex="-1" href="/Default.aspx?ID=64">Register</a></li> 443 <li class="divider"></li> 444 <li><a class="dropdown-item" tabindex="-1" href="/Default.aspx?ID=12">Login</a></li> 445 446 } 447 </ul> 448 </li> 449 450 </ul> 451 </div> 452 453 </div> 454 </div> 455 456 457 <!-- Main Content --> 458 <div class="container" style="margin-top:100px;padding-top:25px;box-shadow: 10px 10px 160px 10px rgba(219,216,219,0.58);"> 459 460 461 462 463 <!-- Main Content --> 464 465 <div class="col-lg-12 col-md-12 row" style="margin-bottom:20px;" id="maincontent">@GetValue("DwContent(maincontent)")</div> 466 467 468 </div> 469 470 471 472 473 <!-- Footer --> 474 <footer> 475 <div class="container"> 476 477 <div class="row"> 478 <div class="col-lg-12 col-md-12"> 479 <ul class="text-center"> 480 <li class="list-inline-item"> 481 <a href="https://www.facebook.com/groups/ancientcoingallery.net/"> 482 <span class="fa-stack fa-lg"> 483 <i class="fa fa-circle fa-stack-2x"></i> 484 <i class="fab fa-facebook-f fa-stack-1x fa-inverse"></i> 485 </span> 486 </a> 487 </li> 488 <li class="list-inline-item"> 489 <a href="https://www.patreon.com/bePatron?u=15445754"> 490 <span class="fa-stack fa-lg"> 491 <i class="fa fa-circle fa-stack-2x" title="Become a Patron!"></i> 492 <i class="fab fa-patreon fa-stack-1x fa-inverse"></i> 493 </span> 494 </a> 495 </li> 496 </ul> 497 </div> 498 </div> 499 </div> 500 </footer> 501 502 503 <script> 504 $('.dropdown-menu a.dropdown-toggle').on('click', function (e) { 505 if (!$(this).next().hasClass('show')) { 506 $(this).parents('.dropdown-menu').first().find('.show').removeClass("show"); 507 } 508 var $subMenu = $(this).next(".dropdown-menu"); 509 $subMenu.toggleClass('show'); 510 511 512 $(this).parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function (e) { 513 $('.dropdown-submenu .show').removeClass("show"); 514 }); 515 516 517 return false; 518 }); 519 </script> 520 521 </body> 522 523 </html> 524 525