diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.WorkerServices/DeleteExpiredRefreshTokensService.cs b/WatchIt.WebAPI/WatchIt.WebAPI.WorkerServices/DeleteExpiredRefreshTokensService.cs index 7c43b54..00c8d99 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.WorkerServices/DeleteExpiredRefreshTokensService.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI.WorkerServices/DeleteExpiredRefreshTokensService.cs @@ -1,3 +1,4 @@ +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using WatchIt.Database; @@ -5,13 +6,36 @@ using WatchIt.Database.Model.Account; namespace WatchIt.WebAPI.WorkerServices; -public class DeleteExpiredRefreshTokensService(ILogger logger, DatabaseContext database) : BackgroundService +public class DeleteExpiredRefreshTokensService : BackgroundService { + #region SERVICES + + private readonly ILogger _logger; + private readonly IServiceScopeFactory _serviceScopeFactory; + + #endregion + + + + #region CONSTRUCTORS + + public DeleteExpiredRefreshTokensService(ILogger logger, IServiceScopeFactory serviceScopeFactory) + { + _logger = logger; + _serviceScopeFactory = serviceScopeFactory; + } + + #endregion + + + + #region PUBLIC METHODS + protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { - logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); + _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); Task delayTask = Task.Delay(300000, stoppingToken); Task actionTask = Action(); @@ -22,9 +46,16 @@ public class DeleteExpiredRefreshTokensService(ILogger tokens = database.AccountRefreshTokens.Where(x => x.ExpirationDate < DateTime.UtcNow); - database.AccountRefreshTokens.AttachRange(tokens); - database.AccountRefreshTokens.RemoveRange(tokens); - await database.SaveChangesAsync(); + using (IServiceScope scope = _serviceScopeFactory.CreateScope()) + { + DatabaseContext database = scope.ServiceProvider.GetService(); + + IEnumerable tokens = database.AccountRefreshTokens.Where(x => x.ExpirationDate < DateTime.UtcNow); + database.AccountRefreshTokens.AttachRange(tokens); + database.AccountRefreshTokens.RemoveRange(tokens); + await database.SaveChangesAsync(); + } } + + #endregion } \ No newline at end of file diff --git a/WatchIt.WebAPI/WatchIt.WebAPI/Program.cs b/WatchIt.WebAPI/WatchIt.WebAPI/Program.cs index c09a658..212d435 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI/Program.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI/Program.cs @@ -121,7 +121,7 @@ public static class Program private static WebApplicationBuilder SetupDatabase(this WebApplicationBuilder builder) { - builder.Services.AddDbContext(x => x.UseLazyLoadingProxies().UseNpgsql(builder.Configuration.GetConnectionString("Default")), ServiceLifetime.Singleton); + builder.Services.AddDbContext(x => x.UseLazyLoadingProxies().UseNpgsql(builder.Configuration.GetConnectionString("Default")), ServiceLifetime.Transient); return builder; } @@ -134,15 +134,15 @@ public static class Program private static WebApplicationBuilder SetupServices(this WebApplicationBuilder builder) { // Utility - builder.Services.AddSingleton(); - builder.Services.AddSingleton(); - builder.Services.AddSingleton(); + builder.Services.AddTransient(); + builder.Services.AddTransient(); + builder.Services.AddTransient(); // Controller - builder.Services.AddSingleton(); - builder.Services.AddSingleton(); - builder.Services.AddSingleton(); - builder.Services.AddSingleton(); + builder.Services.AddTransient(); + builder.Services.AddTransient(); + builder.Services.AddTransient(); + builder.Services.AddTransient(); return builder; } diff --git a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.Utility/WatchIt.Website.Services.Utility.Authentication/JWTAuthenticationStateProvider.cs b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.Utility/WatchIt.Website.Services.Utility.Authentication/JWTAuthenticationStateProvider.cs index 8e46e30..3646136 100644 --- a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.Utility/WatchIt.Website.Services.Utility.Authentication/JWTAuthenticationStateProvider.cs +++ b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.Utility/WatchIt.Website.Services.Utility.Authentication/JWTAuthenticationStateProvider.cs @@ -113,8 +113,13 @@ public class JWTAuthenticationStateProvider : AuthenticationStateProvider private async Task Refresh(string refreshToken) { AuthenticateResponse? response = null; + + void SetResponse(AuthenticateResponse data) + { + response = data; + } - await _accountsService.AuthenticateRefresh((data) => response = data); + await _accountsService.AuthenticateRefresh(SetResponse); if (response is not null) { @@ -151,8 +156,9 @@ public class JWTAuthenticationStateProvider : AuthenticationStateProvider public static DateTime ConvertFromUnixTimestamp(int timestamp) { - DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); - return origin.AddSeconds(timestamp); + DateTime date = new DateTime(1970, 1, 1, 0, 0, 0, 0); + date = date.AddSeconds(timestamp); + return date; } #endregion diff --git a/WatchIt.Website/WatchIt.Website/App.razor b/WatchIt.Website/WatchIt.Website/App.razor index 50e5622..eb24a1c 100644 --- a/WatchIt.Website/WatchIt.Website/App.razor +++ b/WatchIt.Website/WatchIt.Website/App.razor @@ -9,8 +9,8 @@ - - + + @@ -25,8 +25,8 @@ - - + + \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor b/WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor index 231d622..f1e87af 100644 --- a/WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor +++ b/WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor @@ -4,22 +4,36 @@
- @if (_posterChanged) + @if (_posterChanged || !string.IsNullOrWhiteSpace(_actualPosterBase64)) { -
-
- - +
+
+ @if (_posterChanged) + { +
+ +
+
+ +
+ } + else if (!string.IsNullOrWhiteSpace(_actualPosterBase64)) + { +
+ +
+ } + @if (_posterLoading) + { +
+
+
+
+
+ }
} - else - { - if (!string.IsNullOrWhiteSpace(_actualPosterBase64)) - { - - } - }
@@ -73,6 +87,8 @@
+ +