Skip to content
This repository was archived by the owner on Oct 31, 2024. It is now read-only.
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
911ac0e
Added SQL list 55 for fixing items
rneeft Dec 1, 2023
59b005c
Added support for the Extra 500.
rneeft Dec 1, 2023
bf0f95d
De extra is van 10.00 t/m 18.00 mandag - vrijdag
rneeft Dec 2, 2023
79ce38b
revert stupid change
rneeft Dec 2, 2023
afeb077
Supporting 500 items view.
rneeft Dec 3, 2023
abc2428
Updated manifest voor The Extra 500
rneeft Dec 3, 2023
6ec126f
Made it start at 55 instead of 59 in the morning
rneeft Dec 3, 2023
8ce7275
removed the fake 2023 list
rneeft Dec 3, 2023
354f69e
windows store fix
rneeft Dec 3, 2023
0010950
manifest update
rneeft Dec 3, 2023
e2ffe30
update json nuget
rneeft Dec 6, 2023
1a42c09
2023 first file
rneeft Dec 11, 2023
24c35b1
List of the extra 500
rneeft Dec 12, 2023
0156fc0
The extra 500 list updates
rneeft Dec 12, 2023
fc4682c
upgrade nuget version
rneeft Dec 12, 2023
8015001
java tool installer
rneeft Dec 12, 2023
12b4472
11.0.21+9
rneeft Dec 12, 2023
2708851
x64 try
rneeft Dec 12, 2023
04f03e4
The full 2023 list
rneeft Dec 16, 2023
c0a7908
Updates to the app
rneeft Dec 16, 2023
b18b4b7
Added option to see returning tracks in the main views
rneeft Dec 23, 2023
fda4dc0
Dependencies done
rneeft Dec 27, 2023
eb892a6
Maui project
rneeft Dec 30, 2023
cca37cc
it "works"
rneeft Dec 30, 2023
1857053
single project
rneeft Dec 30, 2023
a3e5045
Fixed search icon colour bug
rneeft Jan 5, 2024
22c01af
circle and aligining
rneeft Jan 19, 2024
038282b
almost done migrating to maui
rneeft Jan 19, 2024
681cd3b
last touches before release
rneeft Jan 21, 2024
d9a7451
clean up
rneeft Jan 25, 2024
d93e928
release buld issue update
rneeft Jan 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
<Project>
<PropertyGroup>
<LangVersion>8.0</LangVersion>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
</ItemGroup>
</Project>
</Project>
185 changes: 46 additions & 139 deletions Top2000.sln

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions builds/default/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ steps:
inputs:
versionSpec: 5.8.0

- task: JavaToolInstaller@0
inputs:
versionSpec: '11'
jdkArchitectureOption: 'x64'
jdkSourceOption: 'PreInstalled'

- task: NuGetCommand@2
displayName: 'Nuget restore'
inputs:
Expand Down
6 changes: 6 additions & 0 deletions builds/pr-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ jobs:
inputs:
versionSpec: 5.8.0

- task: JavaToolInstaller@0
inputs:
versionSpec: '11'
jdkArchitectureOption: 'x64'
jdkSourceOption: 'PreInstalled'

- task: NuGetCommand@2
displayName: 'Nuget restore'
inputs:
Expand Down
7 changes: 3 additions & 4 deletions src/Features/AllEditions/EditionDescendingComparer.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
using System.Collections.Generic;


namespace Chroomsoft.Top2000.Features.AllEditions
{
public class EditionDescendingComparer : Comparer<Edition>
{
public override int Compare(Edition x, Edition y)
public override int Compare(Edition? x, Edition? y)
{
return y.Year - x.Year;
return y?.Year ?? 0 - x?.Year ?? 0;
}
}
}
22 changes: 19 additions & 3 deletions src/Features/AllListingsOfEdition/AllListingsOfEditionRequest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
using MediatR;
using SQLite;
using System.Collections.Immutable;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;

Expand All @@ -19,22 +21,36 @@ public AllListingsOfEditionRequest(int year)
public class AllListingsOfEditionRequestHandler : IRequestHandler<AllListingsOfEditionRequest, ImmutableHashSet<TrackListing>>
{
private readonly SQLiteAsyncConnection connection;
private readonly TrackCountHolder trackCountHolder;

public AllListingsOfEditionRequestHandler(SQLiteAsyncConnection connection)
public AllListingsOfEditionRequestHandler(SQLiteAsyncConnection connection, TrackCountHolder trackCountHolder)
{
this.connection = connection;
this.trackCountHolder = trackCountHolder;
}

public async Task<ImmutableHashSet<TrackListing>> Handle(AllListingsOfEditionRequest request, CancellationToken cancellationToken)
{
var counters = await trackCountHolder.CountTrackCountForEditionAsync(connection, request.Year);

var sql =
"SELECT Listing.TrackId, Listing.Position, (p.Position - Listing.Position) AS Delta, Listing.PlayUtcDateAndTime, Title, Artist " +
"FROM Listing JOIN Track ON Listing.TrackId = Id " +
"LEFT JOIN Listing as p ON p.TrackId = Id AND p.Edition = ? " +
$"WHERE Listing.Edition = ?";

return (await connection.QueryAsync<TrackListing>(sql, request.Year - 1, request.Year).ConfigureAwait(false))
.ToImmutableHashSet(new TrackListingComparer());
var items = await connection.QueryAsync<TrackListing>(sql, request.Year - 1, request.Year);
var itemWithNullDelta = items.Where(x => x.Delta is null);
foreach (var item in itemWithNullDelta)
{
var inCounters = counters.Find(x => x.TrackId == item.TrackId);
if (inCounters?.TrackCount > 1)
{
item.IsRecurring = true;
}
}

return items.ToImmutableHashSet(new TrackListingComparer());
}
}
}
31 changes: 31 additions & 0 deletions src/Features/AllListingsOfEdition/TrackCountHolder.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using SQLite;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Chroomsoft.Top2000.Features.AllListingsOfEdition
{
public class TrackCountHolder
{
Dictionary<int, List<TrackCounter>> counters = new Dictionary<int, List<TrackCounter>>();

public async Task<List<TrackCounter>> CountTrackCountForEditionAsync(SQLiteAsyncConnection connection, int edition)
{
if (!counters.ContainsKey(edition))
{
var sql = "SELECT TrackId, COUNT(TrackId) AS TrackCount " +
"FROM Listing " +
"WHERE Edition <= ? " +
"GROUP BY TrackId";

var trackCounters = await connection.QueryAsync<TrackCounter>(sql, edition);
var list = trackCounters.Where(x => x.TrackCount > 1).ToList();
counters.Add(edition, list);
}

return counters[edition];
}


}
}
8 changes: 8 additions & 0 deletions src/Features/AllListingsOfEdition/TrackCounter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Chroomsoft.Top2000.Features.AllListingsOfEdition
{
public class TrackCounter
{
public int TrackId { get; set; }
public int TrackCount { get; set; }
}
}
2 changes: 2 additions & 0 deletions src/Features/AllListingsOfEdition/TrackListing.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ public class TrackListing

public int? Delta { get; set; }

public bool IsRecurring { get; set; }

public DateTime LocalPlayDateAndTime => DateTime.SpecifyKind(PlayUtcDateAndTime, DateTimeKind.Utc).ToLocalTime();

public DateTime PlayUtcDateAndTime { get; set; }
Expand Down
2 changes: 1 addition & 1 deletion src/Features/AllListingsOfEdition/TrackListingComparer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace Chroomsoft.Top2000.Features.AllListingsOfEdition
{
public class TrackListingComparer : IEqualityComparer<TrackListing>
{
public bool Equals(TrackListing x, TrackListing y) => x.Position == y.Position;
public bool Equals(TrackListing? x, TrackListing? y) => x?.Position == y?.Position;

public int GetHashCode(TrackListing obj) => obj.Position.GetHashCode();
}
Expand Down
9 changes: 7 additions & 2 deletions src/Features/ConfigureServices.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Chroomsoft.Top2000.Features.Searching;
using Chroomsoft.Top2000.Features.AllListingsOfEdition;
using Chroomsoft.Top2000.Features.Searching;
using MediatR;
using Microsoft.Extensions.DependencyInjection;

Expand All @@ -9,7 +10,11 @@ public static class ConfigureServices
public static IServiceCollection AddFeatures(this IServiceCollection services)
{
return services
.AddMediatR(typeof(ConfigureServices).Assembly)
.AddMediatR(config =>
{
config.RegisterServicesFromAssemblyContaining<TrackCountHolder>();
})
.AddSingleton<TrackCountHolder>()
.AddSingleton<ISort, SortByTitle>()
.AddSingleton<ISort, SortByArtist>()
.AddSingleton<ISort, SortByRecordedYear>()
Expand Down
11 changes: 5 additions & 6 deletions src/Features/Features.csproj
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<AssemblyName>Chroomsoft.Top2000.Features</AssemblyName>
<RootNamespace>Chroomsoft.Top2000.Features</RootNamespace>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="MediatR" Version="9.0.0" />
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" />
<PackageReference Include="sqlite-net-pcl" Version="1.6.292" />
<PackageReference Include="System.Collections.Immutable" Version="1.7.1" />
<PackageReference Include="MediatR" Version="12.2.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
<PackageReference Include="sqlite-net-pcl" Version="1.8.116" />
<PackageReference Include="System.Collections.Immutable" Version="8.0.0" />
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions src/Features/Searching/SearchTrackRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public async Task<ReadOnlyCollection<IGrouping<string, Track>>> Handle(SearchTra
{
var sql = "SELECT Id, Title, Artist, RecordedYear, Listing.Position AS Position " +
"FROM Track " +
"LEFT JOIN Listing ON Track.Id = Listing.TrackId AND Listing.Edition = 2021 " +
"LEFT JOIN Listing ON Track.Id = Listing.TrackId AND Listing.Edition = 2023 " +
"WHERE RecordedYear = ?" +
"LIMIT 100";

Expand All @@ -53,7 +53,7 @@ public async Task<ReadOnlyCollection<IGrouping<string, Track>>> Handle(SearchTra
{
var sql = "SELECT Id, Title, Artist, RecordedYear, Listing.Position AS Position " +
"FROM Track " +
"LEFT JOIN Listing ON Track.Id = Listing.TrackId AND Listing.Edition = 2021 " +
"LEFT JOIN Listing ON Track.Id = Listing.TrackId AND Listing.Edition = 2023 " +
"WHERE (Title LIKE ?) OR (Artist LIKE ?)" +
"LIMIT 100";

Expand Down
2 changes: 1 addition & 1 deletion src/Features/Searching/Track.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ public class Track

public int? Position { get; set; }

public string PositionIn2020 => $"2022: {Position?.ToString() ?? "-"}";
public string PositionIn2020 => $"2023: {Position?.ToString() ?? "-"}";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ namespace Chroomsoft.Top2000.Features.TrackInformation
{
public class ListingInformationDescendingComparer : Comparer<ListingInformation>
{
public override int Compare(ListingInformation x, ListingInformation y)
public override int Compare(ListingInformation? x, ListingInformation? y)
{
return y.Edition - x.Edition;
return y?.Edition ?? 0 - x?.Edition ?? 0;
}
}
}
33 changes: 0 additions & 33 deletions src/apps/ConsoleApp/AllEditions/EditionsCommand.cs

This file was deleted.

41 changes: 0 additions & 41 deletions src/apps/ConsoleApp/AllListingsOfEdition/ListCommand.cs

This file was deleted.

11 changes: 0 additions & 11 deletions src/apps/ConsoleApp/App.cs

This file was deleted.

23 changes: 0 additions & 23 deletions src/apps/ConsoleApp/ConsoleApp.csproj

This file was deleted.

Loading