Skip to content

Commit 01c7417

Browse files
committed
cleanup and reorganization
1 parent 688d711 commit 01c7417

File tree

79 files changed

+406
-469
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+406
-469
lines changed

Web.Blazor/Components/AddonsList.razor

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@using Common.Entities
1+
@using Common.Common.Serializable.Downloadable
22
@using Common.Enums
33
@using Markdig
44
@using Web.Blazor.Providers
@@ -70,7 +70,7 @@ else
7070
[Parameter]
7171
public GameEnum Game { get; set; }
7272

73-
private List<DownloadableAddonEntity>? _addons;
73+
private List<DownloadableAddonJsonModel>? _addons;
7474

7575
protected override void OnInitialized()
7676
{

Web.Blazor/Handlers/GetPortsReleasesHandler.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
using Api.Common.Requests;
22
using Api.Common.Responses;
33
using Common.Common.Interfaces;
4-
using Common.Entities;
4+
using Common.Common.Serializable.Downloadable;
55
using Common.Enums;
66
using MediatR;
77

88
namespace Web.Blazor.Handlers;
99

1010
public sealed class GetPortsReleasesHandler : IRequestHandler<GetPortsReleasesRequest, GetPortsReleasesResponse?>
1111
{
12-
private readonly IRetriever<Dictionary<PortEnum, GeneralReleaseEntity>?> _portsReleasesRetriever;
12+
private readonly IRetriever<Dictionary<PortEnum, GeneralReleaseJsonModel>?> _portsReleasesRetriever;
1313

14-
public GetPortsReleasesHandler(IRetriever<Dictionary<PortEnum, GeneralReleaseEntity>?> portsReleasesProvider)
14+
public GetPortsReleasesHandler(IRetriever<Dictionary<PortEnum, GeneralReleaseJsonModel>?> portsReleasesProvider)
1515
{
1616
_portsReleasesRetriever = portsReleasesProvider;
1717
}
1818

1919
public Task<GetPortsReleasesResponse?> Handle(GetPortsReleasesRequest request, CancellationToken cancellationToken)
2020
{
21-
Dictionary<PortEnum, GeneralReleaseEntity>? releases = [];
21+
Dictionary<PortEnum, GeneralReleaseJsonModel>? releases = [];
2222

2323
if (request.OSEnum is OSEnum.Windows)
2424
{

Web.Blazor/Program.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Common.Common.Interfaces;
22
using Common.Common.Providers;
3-
using Common.Entities;
3+
using Common.Common.Serializable.Downloadable;
44
using Common.Enums;
55
using Common.Serializable.Addon;
66
using Database.Server;
@@ -20,23 +20,23 @@ public static void Main(string[] args)
2020
_ = builder.Services.AddRazorPages();
2121
_ = builder.Services.AddServerSideBlazor();
2222

23-
_ = builder.Services.AddControllers().AddJsonOptions(jsonOptions =>
23+
_ = builder.Services.AddControllers().AddJsonOptions((Action<Microsoft.AspNetCore.Mvc.JsonOptions>)(jsonOptions =>
2424
{
2525
jsonOptions.JsonSerializerOptions.PropertyNameCaseInsensitive = true;
2626
jsonOptions.JsonSerializerOptions.PropertyNamingPolicy = null;
2727

28-
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(AddonsJsonEntityListContext.Default);
29-
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(DownloadableAddonsDictionaryContext.Default);
30-
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(GeneralReleaseEntityContext.Default);
28+
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(AddonManifestContext.Default);
29+
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(DownloadableAddonJsonModelDictionaryContext.Default);
30+
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(GeneralReleaseJsonModelContext.Default);
3131
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(AddonManifestContext.Default);
3232
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(DependencyDtoContext.Default);
33-
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(DependantAddonDtoContext.Default);
34-
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(MapFileDtoContext.Default);
35-
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(MapSlotDtoContext.Default);
36-
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(SupportedGameDtoContext.Default);
33+
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(DependantAddonJsonModelContext.Default);
34+
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(MapFileJsonModelContext.Default);
35+
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(MapSlotJsonModelContext.Default);
36+
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(SupportedGameJsonModelContext.Default);
3737
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(GitHubReleaseEntityContext.Default);
3838
jsonOptions.JsonSerializerOptions.TypeInfoResolverChain.Add(GitHubReleaseAssetContext.Default);
39-
});
39+
}));
4040

4141
// Don't run tasks in dev mode
4242
if (!builder.Environment.IsDevelopment())
@@ -54,7 +54,7 @@ public static void Main(string[] args)
5454

5555
_ = builder.Services.AddSingleton<RepoAppReleasesRetriever>();
5656
_ = builder.Services.AddSingleton<DatabaseAddonsRetriever>();
57-
_ = builder.Services.AddSingleton<IRetriever<Dictionary<PortEnum, GeneralReleaseEntity>?>>();
57+
_ = builder.Services.AddSingleton<IRetriever<Dictionary<PortEnum, GeneralReleaseJsonModel>?>>();
5858

5959
_ = builder.Services.AddSingleton(CreateHttpClient);
6060
_ = builder.Services.AddSingleton<S3Client>();

Web.Blazor/Providers/DatabaseAddonsRetriever.cs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
using Common.Entities;
1+
using Common.Common.Serializable.Downloadable;
22
using Common.Enums;
3+
using Common.Serializable.Addon;
34
using CommunityToolkit.Diagnostics;
45
using Database.Server;
56
using Database.Server.DbEntities;
@@ -13,7 +14,7 @@ public sealed class DatabaseAddonsRetriever
1314
private readonly ILogger<DatabaseAddonsRetriever> _logger;
1415
private readonly DatabaseContextFactory _dbContextFactory;
1516

16-
public GeneralReleaseEntity? AppRelease { get; }
17+
public GeneralReleaseJsonModel? AppRelease { get; }
1718

1819
public DatabaseAddonsRetriever(
1920
ILogger<DatabaseAddonsRetriever> logger,
@@ -28,7 +29,7 @@ public DatabaseAddonsRetriever(
2829
/// </summary>
2930
/// <param name="gameEnum">Game enum</param>
3031
/// <param name="dontLog">Don't log statistics</param>
31-
internal List<DownloadableAddonEntity> GetAddons(GameEnum gameEnum, bool dontLog = false)
32+
internal List<DownloadableAddonJsonModel> GetAddons(GameEnum gameEnum, bool dontLog = false)
3233
{
3334
using var dbContext = _dbContextFactory.Get();
3435

@@ -51,7 +52,7 @@ internal List<DownloadableAddonEntity> GetAddons(GameEnum gameEnum, bool dontLog
5152
var installs = dbContext.Installs.AsNoTracking().ToDictionary(static x => x.AddonId, static y => y.Installs);
5253
var ratings = dbContext.Rating.AsNoTracking().ToDictionary(static x => x.AddonId, static y => y.Rating);
5354

54-
List<DownloadableAddonEntity> result = new(versions.Count);
55+
List<DownloadableAddonJsonModel> result = new(versions.Count);
5556

5657
foreach (var version in versions)
5758
{
@@ -72,7 +73,7 @@ internal List<DownloadableAddonEntity> GetAddons(GameEnum gameEnum, bool dontLog
7273
var hasInstalls = installs.TryGetValue(addon.Id, out var installsNumber);
7374
var hasRating = ratings.TryGetValue(addon.Id, out var ratingNumber);
7475

75-
DownloadableAddonEntity newDownloadable = new()
76+
DownloadableAddonJsonModel newDownloadable = new()
7677
{
7778
AddonType = (AddonTypeEnum)addon.AddonType,
7879
Id = addon.Id,
@@ -168,7 +169,7 @@ internal Dictionary<string, decimal> GetRating()
168169
return dbContext.Rating.ToDictionary(static x => x.AddonId, static y => y.Rating);
169170
}
170171

171-
internal bool AddAddonToDatabase(AddonsJsonEntity addon)
172+
internal bool AddAddonToDatabase(AddonJsonModel addon)
172173
{
173174
using var dbContext = _dbContextFactory.Get();
174175

@@ -190,7 +191,7 @@ internal bool AddAddonToDatabase(AddonsJsonEntity addon)
190191
{
191192
Id = addon.Id,
192193
Title = addon.Title,
193-
GameId = (byte)addon.Game,
194+
GameId = (byte)addon.SupportedGame.Game,
194195
AddonType = (byte)addon.AddonType
195196
});
196197
}
@@ -209,10 +210,10 @@ internal bool AddAddonToDatabase(AddonsJsonEntity addon)
209210
{
210211
AddonId = addon.Id,
211212
Version = addon.Version,
212-
DownloadUrl = new(addon.DownloadUrl),
213+
DownloadUrl = null!, //TODO fix
213214
Description = addon.Description,
214215
IsDisabled = false,
215-
FileSize = addon.FileSize,
216+
FileSize = 0, //TODO fix
216217
Author = addon.Author,
217218
UpdateDate = DateTime.Now.ToUniversalTime()
218219
});
@@ -226,13 +227,13 @@ internal bool AddAddonToDatabase(AddonsJsonEntity addon)
226227

227228
Guard.IsNotNull(existingVersion);
228229

229-
foreach (var dep in addon.Dependencies)
230+
foreach (var dep in addon.Dependencies.Addons)
230231
{
231232
_ = dbContext.Dependencies.Add(new()
232233
{
233234
AddonVersionId = existingVersion.Id,
234-
DependencyId = dep.Key,
235-
DependencyVersion = dep.Value
235+
DependencyId = dep.Id,
236+
DependencyVersion = dep.Version
236237
});
237238
}
238239

Web.Blazor/Tasks/PortsReleasesTask.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
using Common.Common.Interfaces;
2-
using Common.Entities;
2+
using Common.Common.Serializable.Downloadable;
33
using Common.Enums;
44

55
namespace Web.Blazor.Tasks;
66

77
public sealed class PortsReleasesTask : IHostedService, IDisposable
88
{
9-
private readonly IRetriever<Dictionary<PortEnum, GeneralReleaseEntity>?> _portsReleasesProvider;
9+
private readonly IRetriever<Dictionary<PortEnum, GeneralReleaseJsonModel>?> _portsReleasesProvider;
1010

1111
private Timer? _timer;
1212

13-
public PortsReleasesTask(IRetriever<Dictionary<PortEnum, GeneralReleaseEntity>?> portsReleasesProvider)
13+
public PortsReleasesTask(IRetriever<Dictionary<PortEnum, GeneralReleaseJsonModel>?> portsReleasesProvider)
1414
{
1515
_portsReleasesProvider = portsReleasesProvider;
1616
}

src/Addons/Addons/AutoloadMod.cs renamed to src/Addons/Addons/AutoloadModEntity.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Addons.Addons;
44

5-
public sealed class AutoloadMod : BaseAddon
5+
public sealed class AutoloadModEntity : BaseAddonEntity
66
{
77
/// <summary>
88
/// Is mod enabled

src/Addons/Addons/BaseAddon.cs renamed to src/Addons/Addons/BaseAddonEntity.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Addons.Addons;
99
/// <summary>
1010
/// Base class for campaigns and maps
1111
/// </summary>
12-
public abstract class BaseAddon : IAddon
12+
public abstract class BaseAddonEntity : IAddon
1313
{
1414
/// <inheritdoc/>
1515
public required AddonTypeEnum Type { get; init; }

src/Addons/Addons/BloodCampaign.cs renamed to src/Addons/Addons/BloodCampaignEntity.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/// <summary>
44
/// Blood campaign
55
/// </summary>
6-
public sealed class BloodCampaign : BaseAddon
6+
public sealed class BloodCampaignEntity : BaseAddonEntity
77
{
88
/// <summary>
99
/// Startup .ini file

src/Addons/Addons/DukeCampaign.cs renamed to src/Addons/Addons/DukeCampaignEntity.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace Addons.Addons;
55
/// <summary>
66
/// Duke Nukem 3D campaign
77
/// </summary>
8-
public sealed class DukeCampaign : BaseAddon
8+
public sealed class DukeCampaignEntity : BaseAddonEntity
99
{
1010
/// <summary>
1111
/// Main .con file

src/Addons/Addons/GenericCampaign.cs renamed to src/Addons/Addons/GenericCampaignEntity.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
/// <summary>
44
/// Campaign for a game that doesn't have any unique properties
55
/// </summary>
6-
public sealed class GenericCampaign : BaseAddon
6+
public sealed class GenericCampaignEntity : BaseAddonEntity
77
{
88
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace Addons.Addons;
22

3-
public sealed class LooseMap : BaseAddon
3+
public sealed class LooseMapEntity : BaseAddonEntity
44
{
55
public required string? BloodIni { get; init; }
66
}

src/Addons/Addons/StandaloneAddon.cs

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

src/Addons/Addons/StandaloneEntity.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
namespace Addons.Addons;
2+
3+
public sealed class StandaloneEntity : BaseAddonEntity;

src/Addons/Helpers/AutoloadModsValidator.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static class AutoloadModsValidator
1515
/// <param name="campaign">Campaign</param>
1616
/// <param name="mods">Autoload mods</param>
1717
/// <param name="features">Features supported by the port</param>
18-
public static bool ValidateAutoloadMod(AutoloadMod autoloadMod, IAddon campaign, IEnumerable<KeyValuePair<AddonVersion, IAddon>> mods, List<FeatureEnum> features)
18+
public static bool ValidateAutoloadMod(AutoloadModEntity autoloadMod, IAddon campaign, IEnumerable<KeyValuePair<AddonVersion, IAddon>> mods, List<FeatureEnum> features)
1919
{
2020
if (!autoloadMod.IsEnabled)
2121
{
@@ -59,7 +59,7 @@ public static bool ValidateAutoloadMod(AutoloadMod autoloadMod, IAddon campaign,
5959
/// Check if addon has all required dependencies
6060
/// </summary>
6161
private static bool CheckDependencies(
62-
AutoloadMod autoloadMod,
62+
AutoloadModEntity autoloadMod,
6363
IAddon campaign,
6464
IEnumerable<KeyValuePair<AddonVersion, IAddon>> mods)
6565
{
@@ -106,8 +106,8 @@ private static bool CheckDependencies(
106106
/// Check if addon doesn't have any loaded incompatibles
107107
/// </summary>
108108
private static bool CheckIncompatibles(
109-
AutoloadMod autoloadMod,
110-
IAddon campaign,
109+
AutoloadModEntity autoloadMod,
110+
IAddon campaign,
111111
IEnumerable<KeyValuePair<AddonVersion,
112112
IAddon>> mods
113113
)
@@ -141,7 +141,7 @@ campaign.Version is null ||
141141
continue;
142142
}
143143

144-
if (addon.Value is AutoloadMod aMod &&
144+
if (addon.Value is AutoloadModEntity aMod &&
145145
!aMod.IsEnabled)
146146
{
147147
continue;

src/Addons/Providers/DownloadableAddonsProvider.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using Common.Client.Helpers;
33
using Common.Client.Interfaces;
44
using Common.Client.Tools;
5-
using Common.Entities;
5+
using Common.Common.Serializable.Downloadable;
66
using Common.Enums;
77
using Common.Helpers;
88
using Common.Interfaces;
@@ -23,7 +23,7 @@ public sealed class DownloadableAddonsProvider : IDownloadableAddonsProvider
2323
private readonly InstalledAddonsProvider _installedAddonsProvider;
2424
private readonly ILogger _logger;
2525

26-
private Dictionary<AddonTypeEnum, Dictionary<AddonVersion, DownloadableAddonEntity>>? _cache;
26+
private Dictionary<AddonTypeEnum, Dictionary<AddonVersion, DownloadableAddonJsonModel>>? _cache;
2727

2828
private static readonly SemaphoreSlim _semaphore = new(1);
2929

@@ -104,7 +104,7 @@ public async Task<bool> CreateCacheAsync(bool createNew)
104104

105105

106106
/// <inheritdoc/>
107-
public ImmutableList<DownloadableAddonEntity> GetDownloadableAddons(AddonTypeEnum addonType)
107+
public ImmutableList<DownloadableAddonJsonModel> GetDownloadableAddons(AddonTypeEnum addonType)
108108
{
109109
if (_cache is null)
110110
{
@@ -158,7 +158,7 @@ public ImmutableList<DownloadableAddonEntity> GetDownloadableAddons(AddonTypeEnu
158158

159159
/// <inheritdoc/>
160160
public async Task DownloadAddonAsync(
161-
DownloadableAddonEntity addon,
161+
DownloadableAddonJsonModel addon,
162162
CancellationToken cancellationToken
163163
)
164164
{

src/Addons/Providers/GrpInfoProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static List<IAddon> GetAddonsFromGrpInfo(List<string> foldersGrpInfos)
3939
continue;
4040
}
4141

42-
DukeCampaign camp = new()
42+
DukeCampaignEntity camp = new()
4343
{
4444
Id = addon.Name.ToLower().Replace(" ", "_"),
4545
Type = AddonTypeEnum.TC,
@@ -57,7 +57,7 @@ public static List<IAddon> GetAddonsFromGrpInfo(List<string> foldersGrpInfos)
5757
MainCon = addon.MainCon,
5858
AdditionalCons = null,
5959
MainDef = null,
60-
AdditionalDefs = [addon.AddDef],
60+
AdditionalDefs = addon.AddDef is null ? null : [addon.AddDef],
6161
RTS = null,
6262
RequiredFeatures = [FeatureEnum.EDuke32_CON],
6363
IsFolder = false,

0 commit comments

Comments
 (0)