11/* Yet Another Forum.NET
22 * Copyright (C) 2003-2005 Bjørnar Henden
33 * Copyright (C) 2006-2013 Jaben Cargman
4- * Copyright (C) 2014-2024 Ingo Herbote
4+ * Copyright (C) 2014-2025 Ingo Herbote
55 * https://www.yetanotherforum.net/
66 *
77 * Licensed to the Apache Software Foundation (ASF) under one
@@ -53,6 +53,20 @@ public class DownloadsModel : PageModel, IHaveServiceLocator
5353 [ BindProperty ]
5454 public string ReleaseDnnInstall { get ; set ; }
5555
56+ /// <summary>
57+ /// Gets or sets the release sample application.
58+ /// </summary>
59+ /// <value>The release sample application.</value>
60+ [ BindProperty ]
61+ public string ReleaseSampleApplication { get ; set ; }
62+
63+ /// <summary>
64+ /// Gets or sets the release sample application.
65+ /// </summary>
66+ /// <value>The release sample application.</value>
67+ [ BindProperty ]
68+ public string ReleaseSampleApp { get ; set ; }
69+
5670 /// <summary>
5771 /// Gets or sets the release DNN install downloads.
5872 /// </summary>
@@ -74,6 +88,21 @@ public class DownloadsModel : PageModel, IHaveServiceLocator
7488 [ BindProperty ]
7589 public string ReleaseDnnTitle { get ; set ; }
7690
91+ /// <summary>
92+ /// Gets or sets the release sample application title.
93+ /// </summary>
94+ /// <value>The release sample application title.</value>
95+ [ BindProperty ]
96+ public string ReleaseSampleApplicationTitle { get ; set ; }
97+
98+
99+ /// <summary>
100+ /// Gets or sets the release sample application title.
101+ /// </summary>
102+ /// <value>The release sample application title.</value>
103+ [ BindProperty ]
104+ public string ReleaseSampleAppTitle { get ; set ; }
105+
77106 /// <summary>
78107 /// Gets or sets the release source.
79108 /// </summary>
@@ -278,6 +307,10 @@ public async Task OnGetAsync()
278307 {
279308 await this . GetDnnReleases ( ) ;
280309
310+ await this . GetSampleApplicationReleases ( ) ;
311+
312+ await this . GetSampleAppReleases ( ) ;
313+
281314 await this . GetMySqlReleases ( ) ;
282315
283316 await this . GetMsSqlReleases ( ) ;
@@ -453,10 +486,58 @@ private async Task GetDnnReleases()
453486 dnnRelease = this . Get < IDataCache > ( ) . Get ( "DnnRelease" ) . ToType < Release > ( ) ;
454487 }
455488
456-
457489 ReleaseDnnInstall = dnnRelease . Assets [ 1 ] . BrowserDownloadUrl ;
458490 ReleaseDnnInstallDownloads = $ "{ dnnRelease . Assets [ 1 ] . DownloadCount } downloads";
459491 ReleaseDnnSource = dnnRelease . Assets [ 0 ] . BrowserDownloadUrl ;
460492 ReleaseDnnTitle = dnnRelease . Name ;
461493 }
494+
495+ /// <summary>
496+ /// Gets the Sample Application releases.
497+ /// </summary>
498+ private async Task GetSampleApplicationReleases ( )
499+ {
500+ var github = new GitHubClient ( new ProductHeaderValue ( "YAF.NET" ) ) ;
501+
502+ Release release ;
503+
504+ if ( this . Get < IDataCache > ( ) . Get ( "SampleApplicationRelease" ) == null )
505+ {
506+ release = await github . Repository . Release . GetLatest ( "YAFNET" , "YAF.SampleWebApplication" ) ;
507+ this . Get < IDataCache > ( ) . Set ( "SampleApplicationRelease" , release ) ;
508+ }
509+ else
510+ {
511+ release = this . Get < IDataCache > ( ) . Get ( "SampleApplicationRelease" ) . ToType < Release > ( ) ;
512+ }
513+
514+ ReleaseSampleApplication = release . ZipballUrl ;
515+ ReleaseSampleApplicationTitle = release . Name ;
516+ }
517+
518+ /// <summary>
519+ /// Gets the Sample App releases.
520+ /// </summary>
521+ private async Task GetSampleAppReleases ( )
522+ {
523+ var github = new GitHubClient ( new ProductHeaderValue ( "YAF.NET" ) ) ;
524+
525+ Release release ;
526+
527+ if ( this . Get < IDataCache > ( ) . Get ( "SampleAppRelease" ) == null )
528+ {
529+ var releases = await github . Repository . Release . GetAll ( "YAFNET" , "YAF.SampleWebApplication" ) ;
530+
531+ release = releases . First ( r => r . Prerelease ) ;
532+
533+ this . Get < IDataCache > ( ) . Set ( "SampleAppRelease" , release ) ;
534+ }
535+ else
536+ {
537+ release = this . Get < IDataCache > ( ) . Get ( "SampleAppRelease" ) . ToType < Release > ( ) ;
538+ }
539+
540+ ReleaseSampleApp = release . ZipballUrl ;
541+ ReleaseSampleAppTitle = release . Name ;
542+ }
462543}
0 commit comments