phase final

This commit is contained in:
DismissedLight
2023-03-27 19:02:09 +08:00
parent f90b828bb4
commit 8ea4411e2a
7 changed files with 115 additions and 88 deletions

View File

@@ -11,12 +11,35 @@ namespace Snap.Hutao.Model.Intrinsic.Immutable;
[HighQuality]
internal static class IntrinsicImmutables
{
private static readonly ImmutableHashSet<string> associationTypes = Enum.GetValues<AssociationType>().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType<string>().ToImmutableHashSet();
private static readonly ImmutableHashSet<string> weaponTypes = Enum.GetValues<WeaponType>().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType<string>().ToImmutableHashSet();
private static readonly ImmutableHashSet<string> itemQualities = Enum.GetValues<ItemQuality>().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType<string>().ToImmutableHashSet();
private static readonly ImmutableHashSet<string> bodyTypes = Enum.GetValues<BodyType>().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType<string>().ToImmutableHashSet();
private static readonly ImmutableHashSet<string> fightProperties = Enum.GetValues<FightProperty>().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType<string>().ToImmutableHashSet();
private static readonly ImmutableHashSet<string> elementNames = new HashSet<string>(7)
/// <summary>
/// 所属地区
/// </summary>
public static readonly ImmutableHashSet<string> AssociationTypes = Enum.GetValues<AssociationType>().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType<string>().ToImmutableHashSet();
/// <summary>
/// 武器类型
/// </summary>
public static readonly ImmutableHashSet<string> WeaponTypes = Enum.GetValues<WeaponType>().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType<string>().ToImmutableHashSet();
/// <summary>
/// 物品类型
/// </summary>
public static readonly ImmutableHashSet<string> ItemQualities = Enum.GetValues<ItemQuality>().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType<string>().ToImmutableHashSet();
/// <summary>
/// 身材类型
/// </summary>
public static readonly ImmutableHashSet<string> BodyTypes = Enum.GetValues<BodyType>().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType<string>().ToImmutableHashSet();
/// <summary>
/// 战斗属性
/// </summary>
public static readonly ImmutableHashSet<string> FightProperties = Enum.GetValues<FightProperty>().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType<string>().ToImmutableHashSet();
/// <summary>
/// 元素名称
/// </summary>
public static readonly ImmutableHashSet<string> ElementNames = new HashSet<string>(7)
{
SH.ModelIntrinsicElementNameFire,
SH.ModelIntrinsicElementNameWater,
@@ -26,34 +49,4 @@ internal static class IntrinsicImmutables
SH.ModelIntrinsicElementNameIce,
SH.ModelIntrinsicElementNameRock,
}.ToImmutableHashSet();
/// <summary>
/// 所属地区
/// </summary>
public static ImmutableHashSet<string> AssociationTypes { get => associationTypes; }
/// <summary>
/// 武器类型
/// </summary>
public static ImmutableHashSet<string> WeaponTypes { get => weaponTypes; }
/// <summary>
/// 物品类型
/// </summary>
public static ImmutableHashSet<string> ItemQualities { get => itemQualities; }
/// <summary>
/// 身材类型
/// </summary>
public static ImmutableHashSet<string> BodyTypes { get => bodyTypes; }
/// <summary>
/// 战斗属性
/// </summary>
public static ImmutableHashSet<string> FightProperties { get => fightProperties; }
/// <summary>
/// 元素名称
/// </summary>
public static ImmutableHashSet<string> ElementNames { get => elementNames; }
}

View File

@@ -4731,6 +4731,15 @@ namespace Snap.Hutao.Resource.Localization {
}
}
/// <summary>
/// 查找类似 Hoyolab 的本地化字符串。
/// </summary>
internal static string ViewUserCookieOperation2 {
get {
return ResourceManager.GetString("ViewUserCookieOperation2", resourceCulture);
}
}
/// <summary>
/// 查找类似 网页登录 的本地化字符串。
/// </summary>

View File

@@ -1818,4 +1818,7 @@
<data name="ViewPageLoginHoyoverseUserHint" xml:space="preserve">
<value>请输入你的 Hoyolab Uid</value>
</data>
<data name="ViewUserCookieOperation2" xml:space="preserve">
<value>Hoyolab</value>
</data>
</root>

View File

@@ -31,20 +31,16 @@ internal sealed class AvatarInfoService : IAvatarInfoService
/// 构造一个新的角色信息服务
/// </summary>
/// <param name="appDbContext">数据库上下文</param>
/// <param name="metadataService">元数据服务</param>
/// <param name="summaryFactory">简述工厂</param>
/// <param name="logger">日志器</param>
/// <param name="serviceProvider">服务提供器</param>
public AvatarInfoService(
AppDbContext appDbContext,
IMetadataService metadataService,
ISummaryFactory summaryFactory,
ILogger<AvatarInfoService> logger)
IServiceProvider serviceProvider)
{
this.metadataService = metadataService;
this.summaryFactory = summaryFactory;
this.logger = logger;
metadataService = serviceProvider.GetRequiredService<IMetadataService>();
summaryFactory = serviceProvider.GetRequiredService<ISummaryFactory>();
logger = serviceProvider.GetRequiredService<ILogger<AvatarInfoService>>();
avatarInfoDbOperation = new(appDbContext);
avatarInfoDbOperation = new(appDbContext, serviceProvider);
}
/// <inheritdoc/>

View File

@@ -116,10 +116,7 @@
SelectionMode="Single">
<ListView.ItemTemplate>
<DataTemplate>
<Grid
Width="200"
Padding="0,12"
Background="Transparent">
<Grid Padding="0,12" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
@@ -204,18 +201,35 @@
Style="{StaticResource SubtitleTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewUserDefaultDescription}"
Visibility="{Binding Users.Count, Converter={StaticResource Int32ToVisibilityRevertConverter}}"/>
<TextBlock
Margin="10,6,0,6"
Style="{StaticResource BaseTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewUserCookieOperation}"/>
<StackPanel
Margin="0,0,6,0"
HorizontalAlignment="Right"
Orientation="Horizontal">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<AppBarButton
Grid.Row="1"
Grid.Column="0"
Command="{Binding RefreshCookieTokenCommand}"
Icon="{shcm:FontIcon Glyph=&#xE72C;}"
Label="{shcm:ResourceString Name=ViewUserCookieOperationRefreshCookieAction}"/>
<AppBarSeparator Grid.RowSpan="2" Grid.Column="1"/>
<TextBlock
Grid.Row="0"
Grid.Column="2"
Margin="4,6,0,0"
Style="{StaticResource BaseTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewUserCookieOperation}"/>
<StackPanel
Grid.Row="1"
Grid.Column="2"
Orientation="Horizontal">
<AppBarButton
Command="{Binding LoginMihoyoUserCommand}"
Icon="{shcm:FontIcon Glyph=&#xEB41;}"
@@ -225,13 +239,16 @@
Icon="{shcm:FontIcon Glyph=&#xE710;}"
Label="{shcm:ResourceString Name=ViewUserCookieOperationManualInputAction}"/>
</StackPanel>
<AppBarSeparator Grid.RowSpan="2" Grid.Column="3"/>
<TextBlock
Margin="10,6,0,6"
Grid.Row="0"
Grid.Column="4"
Margin="4,6,0,0"
Style="{StaticResource BaseTextBlockStyle}"
Text="HoyoVerse Account"/>
Text="{shcm:ResourceString Name=ViewUserCookieOperation2}"/>
<StackPanel
Margin="0,0,6,0"
HorizontalAlignment="Right"
Grid.Row="1"
Grid.Column="4"
Orientation="Horizontal">
<AppBarButton
Command="{Binding LoginHoyoverseUserCommand}"
@@ -242,6 +259,7 @@
Icon="{shcm:FontIcon Glyph=&#xE710;}"
Label="{shcm:ResourceString Name=ViewUserCookieOperationManualInputAction}"/>
</StackPanel>
</Grid>
</StackPanel>
</Flyout>
</Button.Flyout>

View File

@@ -185,17 +185,17 @@ internal static class ApiOsEndpoints
/// <summary>
/// 计算器家具计算
/// </summary>
public const string CalculateOsFurnitureCompute = $"{SgPublicApi}/event/calculateos/furniture/list";
public const string CalculateFurnitureCompute = $"{SgPublicApi}/event/calculateos/furniture/list";
/// <summary>
/// 计算器角色列表 size 20
/// </summary>
public const string CalculateOsAvatarList = $"{SgPublicApi}/event/calculateos/avatar/list";
public const string CalculateAvatarList = $"{SgPublicApi}/event/calculateos/avatar/list";
/// <summary>
/// 计算器武器列表 size 20
/// </summary>
public const string CalculateOsWeaponList = $"{SgPublicApi}/event/calculateos/weapon/list";
public const string CalculateWeaponList = $"{SgPublicApi}/event/calculateos/weapon/list";
/// <summary>
/// 计算器结果

View File

@@ -1,10 +1,18 @@
namespace Snap.Hutao.Web.Hoyolab.Passport;
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Web.Hoyolab.Passport;
/// <summary>
/// SToken 包装器
/// </summary>
internal sealed class STokenWrapper
{
/// <summary>
/// 构造一个新的SToken 包装器
/// </summary>
/// <param name="stoken">stoken</param>
/// <param name="uid">uid</param>
public STokenWrapper(string stoken, string uid)
{
SToken = stoken;