Run code clean and fix messages
All checks were successful
Game Ideas build for PR / build_test (pull_request) Successful in 1m26s
All checks were successful
Game Ideas build for PR / build_test (pull_request) Successful in 1m26s
This commit is contained in:
@@ -13,7 +13,7 @@ public static class GameHelper
|
||||
throw new ArgumentNullException(nameof(authState), "Authentication state missing");
|
||||
}
|
||||
|
||||
var userId = authState.User.FindFirstValue(ClaimTypes.Sid)
|
||||
var userId = authState.User.FindFirstValue(ClaimTypes.Sid)
|
||||
?? throw new ArgumentNullException(nameof(authState), "user state missing");
|
||||
|
||||
game.CreationUserId = userId;
|
||||
|
||||
@@ -8,7 +8,6 @@ using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using Microsoft.AspNetCore.Components.Forms;
|
||||
using Microsoft.JSInterop;
|
||||
using System.Security.Claims;
|
||||
|
||||
namespace GameIdeas.BlazorApp.Pages.Games.Components;
|
||||
|
||||
@@ -21,7 +20,7 @@ public partial class GameCreationForm
|
||||
[Parameter] public CategoriesDto? Categories { get; set; }
|
||||
[Parameter] public EventCallback OnSubmit { get; set; }
|
||||
|
||||
private GameDetailDto GameDto = new();
|
||||
private readonly GameDetailDto GameDto = new();
|
||||
private EditContext? EditContext;
|
||||
private readonly SelectTheme Theme = SelectTheme.Creation;
|
||||
private readonly SliderParams SliderParams = new() { Gap = 1, Min = 1, Max = 5 };
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
@inherits GameBase
|
||||
|
||||
<div class="row">
|
||||
<img class="icon" src="~/icon.png" />
|
||||
<img class="icon" src="icon.png" />
|
||||
|
||||
<a class="title" href="@($"/Detail/{GameDto.Id}")">@GameDto.Title</a>
|
||||
|
||||
|
||||
@@ -80,9 +80,20 @@
|
||||
fill: var(--white);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 700px) {
|
||||
.release-date {
|
||||
display: none;
|
||||
grid-column: span;
|
||||
}
|
||||
|
||||
.row {
|
||||
grid-template-columns: auto 3fr 3fr 30px 30px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.row {
|
||||
grid-template-columns: 48px 3fr 2fr 3fr 30px 30px;
|
||||
grid-template-columns: auto 3fr 2fr 3fr 30px 30px;
|
||||
}
|
||||
|
||||
.tags, .storage {
|
||||
|
||||
@@ -26,7 +26,7 @@ public partial class Games
|
||||
GameFilter.SortType = Filter.GameFilter.SortTypes
|
||||
.First(st => st.SortType == SortType.Ascending);
|
||||
|
||||
GameFilter.SortProperty= Filter.GameFilter.GameProperties
|
||||
GameFilter.SortProperty = Filter.GameFilter.GameProperties
|
||||
.First(gp => gp.PropertyName == nameof(GameIdeas.Shared.Model.Game.Title));
|
||||
|
||||
await HandleFetchDatas();
|
||||
|
||||
@@ -26,7 +26,7 @@ public class GameGateway(IHttpClientService httpClientService) : IGameGateway
|
||||
try
|
||||
{
|
||||
var result = await httpClientService.FetchDataAsync<CategoriesDto>(Endpoints.Category.AllCategories);
|
||||
|
||||
|
||||
return result ?? throw new InvalidOperationException(ResourcesKey.ErrorFetchCategories);
|
||||
}
|
||||
catch (Exception)
|
||||
|
||||
@@ -10,9 +10,9 @@ public partial class Login
|
||||
[Parameter] public IAuthGateway AuthGateway { get; set; } = default!;
|
||||
|
||||
private EditContext? EditContext;
|
||||
private UserDto UserDto = new();
|
||||
private readonly UserDto UserDto = new();
|
||||
private bool IsLoading = false;
|
||||
private LoginValidator Validator = new();
|
||||
private readonly LoginValidator Validator = new();
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
EditContext = new EditContext(UserDto);
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using FluentValidation;
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select;
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select.Models;
|
||||
using GameIdeas.Shared.Dto;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
@@ -37,36 +37,36 @@ public class UserGateway(IHttpClientService httpClient) : IUserGateway
|
||||
|
||||
public async Task<IEnumerable<RoleDto>> GetRoles()
|
||||
{
|
||||
try
|
||||
{
|
||||
return await httpClient.FetchDataAsync<IEnumerable<RoleDto>>(Endpoints.User.Roles)
|
||||
?? throw new InvalidOperationException(ResourcesKey.ErrorFetchRoles);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw new RoleNotFoundException(ResourcesKey.ErrorFetchRoles);
|
||||
try
|
||||
{
|
||||
return await httpClient.FetchDataAsync<IEnumerable<RoleDto>>(Endpoints.User.Roles)
|
||||
?? throw new InvalidOperationException(ResourcesKey.ErrorFetchRoles);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw new RoleNotFoundException(ResourcesKey.ErrorFetchRoles);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<UserListDto> GetUsers(UserFilterParams filterParams, int currentPage)
|
||||
{
|
||||
try
|
||||
{
|
||||
UserFilterDto filter = new()
|
||||
{
|
||||
CurrentPage = currentPage,
|
||||
Name = filterParams.Name,
|
||||
RoleIds = filterParams.Roles?.Select(r => r.Id)
|
||||
};
|
||||
try
|
||||
{
|
||||
UserFilterDto filter = new()
|
||||
{
|
||||
CurrentPage = currentPage,
|
||||
Name = filterParams.Name,
|
||||
RoleIds = filterParams.Roles?.Select(r => r.Id)
|
||||
};
|
||||
|
||||
var url = Endpoints.User.Fetch(filter);
|
||||
return await httpClient.FetchDataAsync<UserListDto>(url)
|
||||
?? throw new InvalidOperationException(ResourcesKey.ErrorFetchUsers);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw new UserNotFoundException(ResourcesKey.ErrorFetchUsers);
|
||||
}
|
||||
var url = Endpoints.User.Fetch(filter);
|
||||
return await httpClient.FetchDataAsync<UserListDto>(url)
|
||||
?? throw new InvalidOperationException(ResourcesKey.ErrorFetchUsers);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw new UserNotFoundException(ResourcesKey.ErrorFetchUsers);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<IdDto> UpdateUser(UserDto user)
|
||||
|
||||
@@ -17,10 +17,10 @@ public partial class Users
|
||||
|
||||
private Popup? Popup;
|
||||
private bool IsLoading = false;
|
||||
private UserFilterParams FilterParams = new();
|
||||
private readonly UserFilterParams FilterParams = new();
|
||||
private UserListDto UserList = new();
|
||||
private IEnumerable<RoleDto> Roles = [];
|
||||
private int CurrentPage = 1;
|
||||
private readonly int CurrentPage = 1;
|
||||
private UserDto UserAdd = new();
|
||||
private UserDto? UserDelete;
|
||||
private string? currentUserId;
|
||||
@@ -34,7 +34,7 @@ public partial class Users
|
||||
NavigationManager.NavigateTo("/Unauthorized");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
await FetchData();
|
||||
await base.OnInitializedAsync();
|
||||
@@ -57,7 +57,7 @@ public partial class Users
|
||||
}
|
||||
finally
|
||||
{
|
||||
IsLoading = false;
|
||||
IsLoading = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
using System.Net.Http.Json;
|
||||
using Blazored.LocalStorage;
|
||||
using GameIdeas.BlazorApp;
|
||||
using GameIdeas.BlazorApp.Pages.Games.Gateways;
|
||||
@@ -10,6 +9,7 @@ using GameIdeas.Shared.Constants;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using Microsoft.AspNetCore.Components.Web;
|
||||
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
|
||||
using System.Net.Http.Json;
|
||||
|
||||
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
||||
var services = builder.Services;
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
using GameIdeas.Resources;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Text.Json;
|
||||
using System.Text;
|
||||
using Blazored.LocalStorage;
|
||||
using Blazored.LocalStorage;
|
||||
using GameIdeas.Resources;
|
||||
using GameIdeas.Shared.Constants;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace GameIdeas.BlazorApp.Services;
|
||||
|
||||
public class HttpClientService(
|
||||
IHttpClientFactory httpClientFactory,
|
||||
IHttpClientFactory httpClientFactory,
|
||||
ILoggerFactory loggerFactory,
|
||||
ILocalStorageService localStorage,
|
||||
AuthenticationStateProvider stateProvider) : IHttpClientService
|
||||
{
|
||||
private readonly HttpClient httpClient = httpClientFactory.CreateClient("GameIdeas.WebAPI");
|
||||
private readonly ILogger<HttpClientService> logger = loggerFactory.CreateLogger<HttpClientService>();
|
||||
|
||||
|
||||
private readonly JsonSerializerOptions _optionsCamelCase = new()
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
@@ -145,8 +145,8 @@ public class HttpClientService(
|
||||
{
|
||||
var expired = await localStorage.GetItemAsStringAsync(GlobalConstants.LS_EXPIRED_STORAGE_KEY);
|
||||
|
||||
if (expired == null
|
||||
|| (DateTime.TryParse(expired, out DateTime expiration)
|
||||
if (expired == null
|
||||
|| (DateTime.TryParse(expired, out DateTime expiration)
|
||||
&& expiration < DateTime.UtcNow))
|
||||
{
|
||||
await ((JwtAuthenticationStateProvider)stateProvider).NotifyUserLogoutAsync();
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using Blazored.LocalStorage;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using System.Security.Claims;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
using GameIdeas.Shared.Constants;
|
||||
using GameIdeas.Shared.Dto;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
using System.Security.Claims;
|
||||
|
||||
namespace GameIdeas.BlazorApp.Services;
|
||||
|
||||
@@ -13,7 +13,7 @@ public class JwtAuthenticationStateProvider(ILocalStorageService localStorage) :
|
||||
{
|
||||
var savedToken = await localStorage.GetItemAsStringAsync(GlobalConstants.LS_AUTH_STORAGE_KEY);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(savedToken))
|
||||
if (!string.IsNullOrWhiteSpace(savedToken))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
await Js.InvokeVoidAsync("setBodyOverflow", "auto");
|
||||
await Js.InvokeVoidAsync("setBodyOverflow", "visible");
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select.Models;
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select;
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select.Models;
|
||||
using GameIdeas.BlazorApp.Shared.Models;
|
||||
using GameIdeas.Resources;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select;
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select.Models;
|
||||
using GameIdeas.BlazorApp.Shared.Models;
|
||||
using GameIdeas.Resources;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace GameIdeas.BlazorApp.Shared.Components.Header;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.JSInterop;
|
||||
|
||||
namespace GameIdeas.BlazorApp.Shared.Components.ReadMore;
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select.Models;
|
||||
using GameIdeas.Resources;
|
||||
using GameIdeas.Shared.Constants;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Forms;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace GameIdeas.BlazorApp.Shared.Components.Select;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using GameIdeas.BlazorApp.Shared.Components.Search;
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select.Models;
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select;
|
||||
using GameIdeas.BlazorApp.Shared.Components.Select.Models;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace GameIdeas.BlazorApp.Shared.Components.SelectSearch;
|
||||
@@ -34,15 +34,15 @@ public partial class SelectSearch<TItem>
|
||||
}
|
||||
private async Task HandleValuesChanged(IEnumerable<TItem> values)
|
||||
{
|
||||
Values = values.ToList();
|
||||
Values = [.. values];
|
||||
SearchInput?.SetText(string.Join(", ", Values.Select(GetLabel)));
|
||||
await ValuesChanged.InvokeAsync(Values.ToList());
|
||||
await ValuesChanged.InvokeAsync([.. Values]);
|
||||
}
|
||||
|
||||
private async Task HandleClearClicked()
|
||||
{
|
||||
Values = [];
|
||||
await ValuesChanged.InvokeAsync(Values.ToList());
|
||||
await ValuesChanged.InvokeAsync([.. Values]);
|
||||
}
|
||||
|
||||
private void HandleFocusIn()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
public class SliderParams
|
||||
{
|
||||
public int Min{ get; set; }
|
||||
public int Min { get; set; }
|
||||
public int Max { get; set; }
|
||||
public int Gap { get; set; } = 0;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
public class SliderRangeParams
|
||||
{
|
||||
public int Min{ get; set; }
|
||||
public int Min { get; set; }
|
||||
public int Max { get; set; }
|
||||
public int Gap { get; set; } = 0;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public static class Icons
|
||||
public readonly static MarkupString Triangle = new(OpenBraket +
|
||||
"<path d=\"M1 3H23L12 22\" />" +
|
||||
CloseBraket);
|
||||
|
||||
|
||||
public readonly static MarkupString Close = new(OpenBraket +
|
||||
"<path d=\"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" />" +
|
||||
CloseBraket);
|
||||
|
||||
Reference in New Issue
Block a user