diff --git a/BuildClientAPI/BuildClientAPI.csproj b/BuildClientAPI/BuildClientAPI.csproj
index eabf406ef..daa72138e 100644
--- a/BuildClientAPI/BuildClientAPI.csproj
+++ b/BuildClientAPI/BuildClientAPI.csproj
@@ -2,15 +2,11 @@
Exe
- net8.0
+ net9.0
enable
enable
-
-
-
-
diff --git a/Dockerfile.base b/Dockerfile.base
index 8579748a5..af60f94a7 100644
--- a/Dockerfile.base
+++ b/Dockerfile.base
@@ -1,5 +1,5 @@
# Set the base image for the ASP.NET Core application
-FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
+FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
# Define build-time arguments for platform and architecture
ARG TARGETARCH
diff --git a/Dockerfile.build b/Dockerfile.build
index f6cee3c3e..e5868d428 100644
--- a/Dockerfile.build
+++ b/Dockerfile.build
@@ -1,4 +1,4 @@
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
+FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
ARG TARGETPLATFORM
ARG TARGETOS
ARG TARGETARCH
diff --git a/StreamMaster.API/GlobalUsings.cs b/StreamMaster.API/GlobalUsings.cs
index 58974d2ae..bee42f3b9 100644
--- a/StreamMaster.API/GlobalUsings.cs
+++ b/StreamMaster.API/GlobalUsings.cs
@@ -13,5 +13,3 @@
global using StreamMaster.Domain.Services;
global using StreamMaster.Streams.Domain.Interfaces;
global using StreamMaster.Streams.Domain.Models;
-
-global using X.PagedList;
diff --git a/StreamMaster.API/Program.cs b/StreamMaster.API/Program.cs
index 21475a9e4..7766bbd85 100644
--- a/StreamMaster.API/Program.cs
+++ b/StreamMaster.API/Program.cs
@@ -319,23 +319,32 @@ static string GetRoutePattern(Endpoint endpoint)
: "";
}
-static X509Certificate2 ValidateSslCertificate(string cert, string password)
+static X509Certificate2 ValidateSslCertificate(string certPath, string password)
{
- X509Certificate2 certificate;
-
try
{
- certificate = new X509Certificate2(cert, password, X509KeyStorageFlags.DefaultKeySet);
+ var limits = new Pkcs12LoaderLimits();
+ var certificate = X509CertificateLoader.LoadPkcs12FromFile(
+ certPath,
+ password,
+ X509KeyStorageFlags.DefaultKeySet,
+ limits);
+
+ return certificate == null ? throw new CryptographicException("No valid certificate found in the file.") : certificate;
+ }
+ catch (FileNotFoundException)
+ {
+ throw new Exception($"The SSL certificate file {certPath} does not exist.");
}
catch (CryptographicException ex)
{
if (ex.HResult is 0x2 or 0x2006D080)
{
- throw new Exception($"The SSL certificate file {cert} does not exist: {ex.Message}");
+ throw new Exception($"The SSL certificate file {certPath} does not exist: {ex.Message}");
}
throw;
}
+}
+
- return certificate;
-}
\ No newline at end of file
diff --git a/StreamMaster.API/StreamMaster.API.csproj b/StreamMaster.API/StreamMaster.API.csproj
index 8b817c960..b2bdeb0d7 100644
--- a/StreamMaster.API/StreamMaster.API.csproj
+++ b/StreamMaster.API/StreamMaster.API.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
enable
enable
ASP0023
@@ -52,17 +52,13 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/StreamMaster.Application/GlobalUsings.cs b/StreamMaster.Application/GlobalUsings.cs
index 796d93f8c..234cd0f4e 100644
--- a/StreamMaster.Application/GlobalUsings.cs
+++ b/StreamMaster.Application/GlobalUsings.cs
@@ -39,6 +39,4 @@
global using StreamMaster.SchedulesDirect.Domain.XmltvXml;
global using StreamMaster.Streams.Domain.Interfaces;
global using StreamMaster.Streams.Domain.Models;
-global using StreamMaster.Streams.Domain.Statistics;
-
-global using X.PagedList;
\ No newline at end of file
+global using StreamMaster.Streams.Domain.Statistics;
\ No newline at end of file
diff --git a/StreamMaster.Application/SchedulesDirect/Queries/GetPagedStationChannelNameSelections.cs b/StreamMaster.Application/SchedulesDirect/Queries/GetPagedStationChannelNameSelections.cs
index ecc484069..814dd44b7 100644
--- a/StreamMaster.Application/SchedulesDirect/Queries/GetPagedStationChannelNameSelections.cs
+++ b/StreamMaster.Application/SchedulesDirect/Queries/GetPagedStationChannelNameSelections.cs
@@ -3,6 +3,7 @@
using System.Text.Json;
using X.Extensions.PagedList.EF;
+using X.PagedList;
namespace StreamMaster.Application.SchedulesDirect.Queries;
diff --git a/StreamMaster.Application/StreamMaster.Application.csproj b/StreamMaster.Application/StreamMaster.Application.csproj
index 09f7679d3..1f58a22ba 100644
--- a/StreamMaster.Application/StreamMaster.Application.csproj
+++ b/StreamMaster.Application/StreamMaster.Application.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
enable
enable
AnyCPU;ARM64
@@ -66,13 +66,11 @@
-
-
-
-
-
-
-
+
+
+
+
+
diff --git a/StreamMaster.Domain/API/PagedResponse.cs b/StreamMaster.Domain/API/PagedResponse.cs
index 9bf01865c..daf5e84da 100644
--- a/StreamMaster.Domain/API/PagedResponse.cs
+++ b/StreamMaster.Domain/API/PagedResponse.cs
@@ -5,6 +5,7 @@
using StreamMaster.Domain.Attributes;
using System.Xml.Serialization;
+using X.PagedList;
namespace StreamMaster.Domain.API;
diff --git a/StreamMaster.Domain/Extensions/PagedExtensions.cs b/StreamMaster.Domain/Extensions/PagedExtensions.cs
index cf8103c6b..f725bf021 100644
--- a/StreamMaster.Domain/Extensions/PagedExtensions.cs
+++ b/StreamMaster.Domain/Extensions/PagedExtensions.cs
@@ -1,11 +1,9 @@
using AutoMapper;
-
using Microsoft.EntityFrameworkCore;
-
using StreamMaster.Domain.API;
using StreamMaster.Domain.Filtering;
-
using X.Extensions.PagedList.EF;
+using X.PagedList;
namespace StreamMaster.Domain.Extensions;
public static class PagedExtensions
diff --git a/StreamMaster.Domain/GlobalUsings.cs b/StreamMaster.Domain/GlobalUsings.cs
index fa014ad77..826b0eaa6 100644
--- a/StreamMaster.Domain/GlobalUsings.cs
+++ b/StreamMaster.Domain/GlobalUsings.cs
@@ -7,6 +7,4 @@
global using StreamMaster.Domain.Dto;
global using StreamMaster.Domain.Enums;
global using StreamMaster.Domain.Mappings;
-global using StreamMaster.Domain.Models;
-
-global using X.PagedList;
+global using StreamMaster.Domain.Models;
\ No newline at end of file
diff --git a/StreamMaster.Domain/Repository/IRepositoryBase.cs b/StreamMaster.Domain/Repository/IRepositoryBase.cs
index b79e4a26d..8a347d7c3 100644
--- a/StreamMaster.Domain/Repository/IRepositoryBase.cs
+++ b/StreamMaster.Domain/Repository/IRepositoryBase.cs
@@ -77,10 +77,8 @@ public interface IRepositoryBase where T : class
/// Performs a bulk update operation.
///
/// Entities to update.
- void BulkUpdate(T[] entities);
-
- void BulkUpdate(List entities);
Task BulkUpdateAsync(IEnumerable entities) where TEntity : class;
+
///
/// Performs a bulk delete operation based on the provided query.
///
diff --git a/StreamMaster.Domain/Repository/IRepositoryContext.cs b/StreamMaster.Domain/Repository/IRepositoryContext.cs
index 6d54a9b25..4ecdda998 100644
--- a/StreamMaster.Domain/Repository/IRepositoryContext.cs
+++ b/StreamMaster.Domain/Repository/IRepositoryContext.cs
@@ -18,7 +18,6 @@ public interface IRepositoryContext
Task BulkInsertEntitiesAsync(IEnumerable entities) where TEntity : class;
int ExecuteSqlRaw(string sql, params object[] parameters);
Task ExecuteSqlRawAsync(string sql, CancellationToken cancellationToken = default);
- void BulkUpdateEntities(IEnumerable entities) where TEntity : class;
void BulkInsertEntities(IEnumerable entities) where TEntity : class;
Task BulkDeleteAsyncEntities(IQueryable entities, CancellationToken cancellationToken = default) where TEntity : class;
DbSet ChannelGroups
diff --git a/StreamMaster.Domain/StreamMaster.Domain.csproj b/StreamMaster.Domain/StreamMaster.Domain.csproj
index 774cba057..585804b43 100644
--- a/StreamMaster.Domain/StreamMaster.Domain.csproj
+++ b/StreamMaster.Domain/StreamMaster.Domain.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
enable
enable
AnyCPU;ARM64
@@ -27,20 +27,19 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/StreamMaster.Infrastructure.EF.Base/BaseRepositoryContext.cs b/StreamMaster.Infrastructure.EF.Base/BaseRepositoryContext.cs
index a1813fb05..48bd88bfe 100644
--- a/StreamMaster.Infrastructure.EF.Base/BaseRepositoryContext.cs
+++ b/StreamMaster.Infrastructure.EF.Base/BaseRepositoryContext.cs
@@ -1,11 +1,9 @@
-using EFCore.BulkExtensions;
-
-using Microsoft.AspNetCore.DataProtection.EntityFrameworkCore;
-using Microsoft.Data.Sqlite;
+using Microsoft.AspNetCore.DataProtection.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.ChangeTracking;
using Microsoft.EntityFrameworkCore.Query;
using Microsoft.EntityFrameworkCore.Storage;
+using Microsoft.EntityFrameworkCore.ChangeTracking;
+using Microsoft.Data.Sqlite;
namespace StreamMaster.Infrastructure.EF.Base;
@@ -50,28 +48,27 @@ public Task BeginTransactionAsync(CancellationToken cance
return Database.BeginTransactionAsync(cancellationToken);
}
- public void BulkUpdateEntities(IEnumerable entities) where TEntity : class
- {
- this.BulkUpdate(entities);
- }
-
public void BulkInsertEntities(IEnumerable entities) where TEntity : class
{
- this.BulkInsert(entities);
+ AddRange(entities);
+ SaveChanges();
}
public async Task BulkInsertEntitiesAsync(IEnumerable entities) where TEntity : class
{
- await this.BulkInsertAsync(entities);
+ await AddRangeAsync(entities);
+ await SaveChangesAsync();
}
public async Task BulkUpdateAsync(IEnumerable entities) where TEntity : class
{
- await BulkUpdateAsync(entities);
+ UpdateRange(entities);
+ await SaveChangesAsync();
}
+
public Task BulkDeleteAsyncEntities(IQueryable entities, CancellationToken cancellationToken = default) where TEntity : class
{
- return entities.ExecuteDeleteAsync(cancellationToken);
+ return EntityFrameworkQueryableExtensions.ExecuteDeleteAsync(entities, cancellationToken);
}
public bool IsEntityTracked(TEntity entity) where TEntity : class
diff --git a/StreamMaster.Infrastructure.EF.Base/StreamMaster.Infrastructure.EF.Base.csproj b/StreamMaster.Infrastructure.EF.Base/StreamMaster.Infrastructure.EF.Base.csproj
index 7f433c088..d115ba230 100644
--- a/StreamMaster.Infrastructure.EF.Base/StreamMaster.Infrastructure.EF.Base.csproj
+++ b/StreamMaster.Infrastructure.EF.Base/StreamMaster.Infrastructure.EF.Base.csproj
@@ -1,15 +1,16 @@
- net8.0
+ net9.0
enable
enable
-
-
-
+
+
+
+
diff --git a/StreamMaster.Infrastructure.EF.PGSQL/StreamMaster.Infrastructure.EF.PGSQL.csproj b/StreamMaster.Infrastructure.EF.PGSQL/StreamMaster.Infrastructure.EF.PGSQL.csproj
index 7239b6246..ce1ff6e7e 100644
--- a/StreamMaster.Infrastructure.EF.PGSQL/StreamMaster.Infrastructure.EF.PGSQL.csproj
+++ b/StreamMaster.Infrastructure.EF.PGSQL/StreamMaster.Infrastructure.EF.PGSQL.csproj
@@ -1,6 +1,6 @@
-
+
- net8.0
+ net9.0
enable
enable
@@ -14,21 +14,19 @@
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
diff --git a/StreamMaster.Infrastructure.EF/GlobalUsings.cs b/StreamMaster.Infrastructure.EF/GlobalUsings.cs
index cda9a0cb6..0f0a424b9 100644
--- a/StreamMaster.Infrastructure.EF/GlobalUsings.cs
+++ b/StreamMaster.Infrastructure.EF/GlobalUsings.cs
@@ -11,5 +11,3 @@
global using StreamMaster.Domain.Pagination;
global using StreamMaster.Domain.Repository;
global using StreamMaster.Domain.Services;
-
-global using X.PagedList;
diff --git a/StreamMaster.Infrastructure.EF/Repositories/RepositoryBase.cs b/StreamMaster.Infrastructure.EF/Repositories/RepositoryBase.cs
index 38521e300..f1932126a 100644
--- a/StreamMaster.Infrastructure.EF/Repositories/RepositoryBase.cs
+++ b/StreamMaster.Infrastructure.EF/Repositories/RepositoryBase.cs
@@ -1,6 +1,4 @@
-using EFCore.BulkExtensions;
-
-using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore;
using StreamMaster.Domain.Filtering;
@@ -229,34 +227,6 @@ public void BulkInsert(T[] entities)
RepositoryContext.BulkInsertEntities(entities);
}
- ///
- /// Deletes a group of entities based on a query.
- ///
- /// The IQueryable to select entities to be deleted.
- public void BulkDelete(IQueryable query)
- {
- if (query?.Any() != true)
- {
- logger.LogWarning("Attempted to perform a bulk delete with a null or empty query.");
- throw new ArgumentNullException(nameof(query));
- }
- DbContext? context = RepositoryContext as DbContext;
-
- context!.BulkDelete(query);
- }
-
- public void BulkDelete(List items)
- {
- if (items == null || items.Count == 0)
- {
- logger.LogWarning("Attempted to perform a bulk delete with a null or empty query.");
- throw new ArgumentNullException(nameof(items));
- }
- DbContext? context = RepositoryContext as DbContext;
-
- context!.BulkDelete(items);
- }
-
///
/// Deletes a group of entities based on a query.
///
@@ -276,26 +246,15 @@ public async Task BulkDeleteAsync(IQueryable query)
/// Performs a bulk update on a set of entities.
///
/// Entities to be updated.
- public void BulkUpdate(T[] entities)
- {
- if (entities == null || entities.Length == 0)
- {
- logger.LogWarning("Attempted to perform a bulk update with null or empty entities.");
- throw new ArgumentNullException(nameof(entities));
- }
-
- RepositoryContext.BulkUpdateEntities(entities);
- }
-
- public void BulkUpdate(List entities)
+ public async Task BulkUpdateAsync(IEnumerable entities) where TEntity : class
{
- if (entities == null || entities.Count == 0)
+ if (entities == null || !entities.Any())
{
logger.LogWarning("Attempted to perform a bulk update with null or empty entities.");
throw new ArgumentNullException(nameof(entities));
}
- RepositoryContext.BulkUpdateEntities(entities);
+ await RepositoryContext.BulkUpdateAsync(entities);
}
///
@@ -328,10 +287,5 @@ public async Task BulkInsertEntitiesAsync(IEnumerable entities
await RepositoryContext.BulkInsertEntitiesAsync(entities);
}
- public async Task BulkUpdateAsync(IEnumerable entities) where TEntity : class
- {
- await RepositoryContext.BulkUpdateAsync(entities);
- }
-
#endregion
}
\ No newline at end of file
diff --git a/StreamMaster.Infrastructure.EF/Repositories/SMChannelsRepository.cs b/StreamMaster.Infrastructure.EF/Repositories/SMChannelsRepository.cs
index 09cad5c76..3476d98f7 100644
--- a/StreamMaster.Infrastructure.EF/Repositories/SMChannelsRepository.cs
+++ b/StreamMaster.Infrastructure.EF/Repositories/SMChannelsRepository.cs
@@ -675,7 +675,7 @@ private async Task AutoSetSMChannelNumbers(IQueryable addedSMChannels, int? defaultSGId)
+ private async Task BulkUpdate(List addedSMChannels, int? defaultSGId = null)
{
for (int i = 0; i < addedSMChannels.Count; i += settings.CurrentValue.DBBatchSize)
{
@@ -738,6 +738,31 @@ private async Task BulkUpdate(List addedSMChannels, int? defaultSGId)
return smChannel;
}
+ //[LogExecutionTimeAspect]
+ //private async Task> DeleteSMChannelsAsync(IQueryable channels)
+ //{
+ // if (!channels.Any())
+ // {
+ // return [];
+ // }
+ // try
+ // {
+ // List a = [.. channels];
+ // List ret = [.. a.Select(a => a.Id)];
+ // IQueryable linksToDelete = repository.SMChannelStreamLink.GetQuery(true).Where(a => ret.Contains(a.SMChannelId));
+ // await repository.SMChannelStreamLink.DeleteSMChannelStreamLinks(linksToDelete);
+ // _ = await SaveChangesAsync();
+ // BulkDelete(a);
+ // _ = await SaveChangesAsync();
+ // return ret;
+ // }
+ // catch (Exception ex)
+ // {
+ // logger.LogError(ex, "Error deleting SMChannels");
+ // }
+ // return [];
+ //}
+
[LogExecutionTimeAspect]
private async Task> DeleteSMChannelsAsync(IQueryable channels)
{
@@ -747,22 +772,28 @@ private async Task> DeleteSMChannelsAsync(IQueryable channe
}
try
{
- List a = [.. channels];
- List ret = [.. a.Select(a => a.Id)];
- IQueryable linksToDelete = repository.SMChannelStreamLink.GetQuery(true).Where(a => ret.Contains(a.SMChannelId));
+ List channelIds = await channels.Select(channel => channel.Id).ToListAsync();
+
+ IQueryable linksToDelete = repository.SMChannelStreamLink
+ .GetQuery(true)
+ .Where(link => channelIds.Contains(link.SMChannelId));
+
await repository.SMChannelStreamLink.DeleteSMChannelStreamLinks(linksToDelete);
- _ = await SaveChangesAsync();
- BulkDelete(a);
- _ = await SaveChangesAsync();
- return ret;
+ await SaveChangesAsync();
+
+ await BulkDeleteAsync(channels);
+ await SaveChangesAsync();
+
+ return channelIds;
}
catch (Exception ex)
{
logger.LogError(ex, "Error deleting SMChannels");
+ return [];
}
- return [];
}
+
private string GetName(SMStream smStream)
{
M3UField? m3uName = repository.M3UFile.GetQuery().FirstOrDefault(a => a.Id == smStream.M3UFileId)?.M3UName;
@@ -878,7 +909,7 @@ private async Task SetSMChannelsGroup(IQueryable query,
smChannl.Group = group.Name;
}
- BulkUpdate(toUpdate);
+ await BulkUpdate(toUpdate);
_ = RepositoryContext.SaveChanges();
return APIResponse.Success;
}
diff --git a/StreamMaster.Infrastructure.EF/StreamMaster.Infrastructure.EF.csproj b/StreamMaster.Infrastructure.EF/StreamMaster.Infrastructure.EF.csproj
index 24ba3d68a..80ea5c916 100644
--- a/StreamMaster.Infrastructure.EF/StreamMaster.Infrastructure.EF.csproj
+++ b/StreamMaster.Infrastructure.EF/StreamMaster.Infrastructure.EF.csproj
@@ -1,15 +1,11 @@
- net8.0
+ net9.0
enable
enable
-
-
-
-
diff --git a/StreamMaster.Infrastructure/StreamMaster.Infrastructure.csproj b/StreamMaster.Infrastructure/StreamMaster.Infrastructure.csproj
index 621982695..4d7d54f26 100644
--- a/StreamMaster.Infrastructure/StreamMaster.Infrastructure.csproj
+++ b/StreamMaster.Infrastructure/StreamMaster.Infrastructure.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
enable
enable
AnyCPU;ARM64
@@ -23,18 +23,17 @@
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
diff --git a/StreamMaster.Logging/StreamMaster.Logging.csproj b/StreamMaster.Logging/StreamMaster.Logging.csproj
index fa71b7ae6..125f4c93b 100644
--- a/StreamMaster.Logging/StreamMaster.Logging.csproj
+++ b/StreamMaster.Logging/StreamMaster.Logging.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
enable
enable
diff --git a/StreamMaster.PlayList/StreamMaster.PlayList.csproj b/StreamMaster.PlayList/StreamMaster.PlayList.csproj
index 69f3b19dc..d4afaa4ff 100644
--- a/StreamMaster.PlayList/StreamMaster.PlayList.csproj
+++ b/StreamMaster.PlayList/StreamMaster.PlayList.csproj
@@ -1,14 +1,13 @@
- net8.0
+ net9.0
enable
enable
-
-
+
diff --git a/StreamMaster.SchedulesDirect.Domain/StreamMaster.SchedulesDirect.Domain.csproj b/StreamMaster.SchedulesDirect.Domain/StreamMaster.SchedulesDirect.Domain.csproj
index acfdb288a..d23065d1c 100644
--- a/StreamMaster.SchedulesDirect.Domain/StreamMaster.SchedulesDirect.Domain.csproj
+++ b/StreamMaster.SchedulesDirect.Domain/StreamMaster.SchedulesDirect.Domain.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
enable
enable
@@ -14,10 +14,9 @@
-
-
-
-
+
+
+
diff --git a/StreamMaster.SchedulesDirect.Services/StreamMaster.SchedulesDirect.Services.csproj b/StreamMaster.SchedulesDirect.Services/StreamMaster.SchedulesDirect.Services.csproj
index da31994b8..74041d7e0 100644
--- a/StreamMaster.SchedulesDirect.Services/StreamMaster.SchedulesDirect.Services.csproj
+++ b/StreamMaster.SchedulesDirect.Services/StreamMaster.SchedulesDirect.Services.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
enable
enable
@@ -8,9 +8,6 @@
-
-
-
diff --git a/StreamMaster.SchedulesDirect/StreamMaster.SchedulesDirect.csproj b/StreamMaster.SchedulesDirect/StreamMaster.SchedulesDirect.csproj
index 2b16a61f0..e83353062 100644
--- a/StreamMaster.SchedulesDirect/StreamMaster.SchedulesDirect.csproj
+++ b/StreamMaster.SchedulesDirect/StreamMaster.SchedulesDirect.csproj
@@ -1,14 +1,13 @@
- net8.0
+ net9.0
enable
enable
-
-
-
+
+
diff --git a/StreamMaster.Streams.Domain/StreamMaster.Streams.Domain.csproj b/StreamMaster.Streams.Domain/StreamMaster.Streams.Domain.csproj
index 6171137d0..9438a2227 100644
--- a/StreamMaster.Streams.Domain/StreamMaster.Streams.Domain.csproj
+++ b/StreamMaster.Streams.Domain/StreamMaster.Streams.Domain.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
enable
enable
@@ -18,9 +18,8 @@
-
-
-
+
+
diff --git a/StreamMaster.Streams/StreamMaster.Streams.csproj b/StreamMaster.Streams/StreamMaster.Streams.csproj
index 20ce95162..aace69c69 100644
--- a/StreamMaster.Streams/StreamMaster.Streams.csproj
+++ b/StreamMaster.Streams/StreamMaster.Streams.csproj
@@ -1,20 +1,19 @@
- net8.0
+ net9.0
enable
enable
-
+
-
-
-
-
+
+
+