Skip to content
This repository was archived by the owner on Dec 21, 2023. It is now read-only.

Commit 81a3351

Browse files
committed
Use proper DI, cache service responses
1 parent 7f0b2bb commit 81a3351

24 files changed

Lines changed: 365 additions & 369 deletions
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using System;
2+
using Microsoft.Extensions.DependencyInjection;
3+
4+
namespace OpenTabletDriver.Web.Core
5+
{
6+
public static class DependencyInjectionExtensions
7+
{
8+
public static object CreateInstance(
9+
this IServiceProvider provider,
10+
Type instanceType,
11+
params object[] parameters
12+
)
13+
{
14+
return ActivatorUtilities.CreateInstance(provider, instanceType, parameters);
15+
}
16+
17+
public static T CreateInstance<T>(this IServiceProvider provider, params object[] parameters)
18+
{
19+
return ActivatorUtilities.CreateInstance<T>(provider, parameters);
20+
}
21+
}
22+
}

OpenTabletDriver.Web.Core/GitHub/API/GitHubAssetGetResponse.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

OpenTabletDriver.Web.Core/GitHub/API/GitHubAssetResponse.cs

Lines changed: 0 additions & 39 deletions
This file was deleted.

OpenTabletDriver.Web.Core/GitHub/API/GitHubAssetRestClient.cs

Lines changed: 0 additions & 32 deletions
This file was deleted.
Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,34 @@
11
using System;
2-
using System.Collections;
32
using System.Collections.Generic;
43
using System.Linq;
54
using System.Threading.Tasks;
65
using Octokit;
76
using OpenTabletDriver.Web.Core.Contracts;
7+
using OpenTabletDriver.Web.Core.GitHub.Services;
8+
using OpenTabletDriver.Web.Core.Services;
89

9-
namespace OpenTabletDriver.Web.Core.GitHub.Services
10+
namespace OpenTabletDriver.Web.Core.GitHub
1011
{
1112
public class GitHubRelease : IRelease
1213
{
13-
public GitHubRelease(Release release)
14+
private readonly IServiceProvider serviceProvider;
15+
private readonly IGitHubClient client;
16+
private readonly IRepositoryService repositoryService;
17+
private readonly Release release;
18+
19+
public GitHubRelease(
20+
IServiceProvider serviceProvider,
21+
IGitHubClient client,
22+
IRepositoryService repositoryService,
23+
Release release
24+
)
1425
{
26+
this.serviceProvider = serviceProvider;
27+
this.client = client;
28+
this.repositoryService = repositoryService;
1529
this.release = release;
1630
}
1731

18-
private Release release;
1932
private IEnumerable<ReleaseAsset> releaseAssets;
2033

2134
public string Name => release.TagName;
@@ -26,14 +39,9 @@ public GitHubRelease(Release release)
2639

2740
public async Task<IEnumerable<IReleaseAsset>> GetReleaseAssets()
2841
{
29-
if (await GitHubCore.GetClient() is GitHubClient client)
30-
{
31-
var repo = await GitHubCore.GetRepository();
32-
releaseAssets ??= await client.Repository.Release.GetAllAssets(repo.Id, release.Id);
33-
return releaseAssets.Select(r => new GitHubReleaseAsset(r));
34-
}
35-
36-
return Array.Empty<IReleaseAsset>();
42+
var repo = await repositoryService.GetRepository();
43+
releaseAssets ??= await client.Repository.Release.GetAllAssets(repo.Id, release.Id);
44+
return releaseAssets.Select(r => serviceProvider.CreateInstance<GitHubReleaseAsset>(r));
3745
}
3846
}
3947
}

OpenTabletDriver.Web.Core/GitHub/GitHubReleaseAsset.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
1-
using System.IO;
2-
using System.Net.Http;
31
using Octokit;
42
using OpenTabletDriver.Web.Core.Contracts;
53

6-
namespace OpenTabletDriver.Web.Core.GitHub.Services
4+
namespace OpenTabletDriver.Web.Core.GitHub
75
{
86
public class GitHubReleaseAsset : IReleaseAsset
97
{
8+
private readonly ReleaseAsset asset;
9+
1010
public GitHubReleaseAsset(ReleaseAsset asset)
1111
{
1212
this.asset = asset;
1313
}
1414

15-
private ReleaseAsset asset;
16-
1715
public string FileName => asset.Name;
1816
public string Url => asset.BrowserDownloadUrl;
1917
}

OpenTabletDriver.Web.Core/GitHub/GitHubWorkflowArtifact.cs

Lines changed: 0 additions & 29 deletions
This file was deleted.

OpenTabletDriver.Web.Core/GitHub/GitHubWorkflowRun.cs

Lines changed: 0 additions & 45 deletions
This file was deleted.

OpenTabletDriver.Web.Core/GitHub/Services/GitHubCore.cs

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)