set basic layout, error boundary, add QR code for 2FA

This commit is contained in:
2023-12-23 19:59:13 +01:00
parent 78ce5dc512
commit 0b15dd50ab
30 changed files with 1674 additions and 34 deletions
@@ -1,15 +1,19 @@
using Kemkas.Web.Db;
using Kemkas.Web.Db.Enums;
using Kemkas.Web.Db.Models;
using Kemkas.Web.Services.Identity;
using Kemkas.Web.ViewModels;
using Microsoft.EntityFrameworkCore;
namespace Kemkas.Web.Services.Character;
public interface ICharacterPersistenceService
{
public Task<Guid> StoreNewCharacter(V1Karakter karakter);
public Task<Guid> StoreNewCharacter(V1Karakter karakter, bool isPublic = false);
public Task<V1Karakter?> GetCharacterById(Guid id);
public Task<List<CharacterListItemDto>> GetAllCharactersOfUser();
}
public class CharacterPersistenceService(
@@ -18,11 +22,12 @@ public class CharacterPersistenceService(
) : ICharacterPersistenceService
{
public async Task<Guid> StoreNewCharacter(V1Karakter karakter)
public async Task<Guid> StoreNewCharacter(V1Karakter karakter, bool isPublic = false)
{
var currentUser = await currentUserService.GetCurrentUser();
karakter.OwnerUserId = currentUser?.Id;
karakter.Id = Guid.Empty;
karakter.IsPublic = isPublic;
dbContext.Karakterek.Add(karakter);
await dbContext.SaveChangesAsync();
return karakter.Id;
@@ -44,4 +49,27 @@ public class CharacterPersistenceService(
var currentUser = await currentUserService.GetCurrentUser();
return entity.OwnerUserId == currentUser?.Id ? entity : null;
}
public async Task<List<CharacterListItemDto>> GetAllCharactersOfUser()
{
var currentUser = await currentUserService.GetCurrentUser();
if (currentUser is null)
{
return [];
}
var characters = await dbContext.Karakterek
.Where(k => k.OwnerUserId == currentUser.Id)
.Select(k => new CharacterListItemDto
{
Id = k.Id,
Name = k.Nev,
Szint = k.Szint,
Faj = k.Faj.Convert(),
Osztaly = k.Osztaly.Convert(),
})
.ToListAsync();
return characters;
}
}