mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
fix #1233
This commit is contained in:
@@ -90,17 +90,6 @@ internal sealed partial class UserInitializationService : IUserInitializationSer
|
||||
|
||||
await userFingerprintService.TryInitializeAsync(user, token).ConfigureAwait(false);
|
||||
|
||||
// Should not raise propery changed event below
|
||||
if (user.PerferredUid is not null)
|
||||
{
|
||||
user.SetSelectedUserGameRole(user.UserGameRoles.FirstOrDefault(role => role.GameUid == user.PerferredUid), false);
|
||||
}
|
||||
|
||||
if (user.SelectedUserGameRole is null)
|
||||
{
|
||||
user.SetSelectedUserGameRole(user.UserGameRoles.FirstOrFirstOrDefault(role => role.IsChosen), false);
|
||||
}
|
||||
|
||||
return user.IsInitialized = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ internal sealed class User : ObservableObject, IEntityOnly<EntityUser>, IMapping
|
||||
|
||||
public bool NeedDbUpdateAfterResume { get; set; }
|
||||
|
||||
public string? PerferredUid { get => inner.PreferredUid; }
|
||||
public string? PreferredUid { get => inner.PreferredUid; }
|
||||
|
||||
public static User From(EntityUser user, IServiceProvider provider)
|
||||
{
|
||||
@@ -107,9 +107,9 @@ internal sealed class User : ObservableObject, IEntityOnly<EntityUser>, IMapping
|
||||
{
|
||||
if (SetProperty(ref selectedUserGameRole, value, nameof(SelectedUserGameRole)))
|
||||
{
|
||||
if (inner.PreferredUid != value?.GameUid)
|
||||
if (value is not null && inner.PreferredUid != value.GameUid)
|
||||
{
|
||||
inner.PreferredUid = value?.GameUid;
|
||||
inner.PreferredUid = value.GameUid;
|
||||
using (IServiceScope scope = serviceProvider.CreateScope())
|
||||
{
|
||||
scope.ServiceProvider.GetRequiredService<AppDbContext>().Users.UpdateAndSave(inner);
|
||||
|
||||
@@ -53,10 +53,18 @@ internal sealed partial class UserViewModel : ObservableObject
|
||||
get => selectedUser ??= userService.Current;
|
||||
set
|
||||
{
|
||||
if (value is { SelectedUserGameRole: null })
|
||||
if (value is not null)
|
||||
{
|
||||
// Pre select the chosen role to avoid multiple UserChangedMessage
|
||||
value.SetSelectedUserGameRole(value.UserGameRoles.FirstOrFirstOrDefault(role => role.IsChosen), false);
|
||||
// Should not raise propery changed event below
|
||||
if (value.PreferredUid is not null)
|
||||
{
|
||||
value.SetSelectedUserGameRole(value.UserGameRoles.FirstOrDefault(role => role.GameUid == value.PreferredUid), false);
|
||||
}
|
||||
|
||||
if (value.SelectedUserGameRole is null)
|
||||
{
|
||||
value.SetSelectedUserGameRole(value.UserGameRoles.FirstOrFirstOrDefault(role => role.IsChosen), false);
|
||||
}
|
||||
}
|
||||
|
||||
if (SetProperty(ref selectedUser, value))
|
||||
|
||||
Reference in New Issue
Block a user