code style

This commit is contained in:
Lightczx
2023-05-06 22:43:09 +08:00
parent 5e04c51456
commit 33935dabc2
66 changed files with 72 additions and 282 deletions

View File

@@ -26,6 +26,14 @@ public class CSharpLanguageFeatureTest
}
}
[TestMethod]
public unsafe void EmptyStringAsSpanIsZeroLength()
{
string testStr = string.Empty;
ReadOnlySpan<char> testSpan = testStr;
Assert.IsTrue(testSpan.Length == 0);
}
[TestMethod]
public void EnumParseCanNotHandleEmptyString()
{

View File

@@ -8,7 +8,6 @@ using Snap.Hutao.Core;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Core.LifeCycle;
using System.Diagnostics;
using Windows.Storage;
namespace Snap.Hutao;

View File

@@ -2,7 +2,6 @@
// Licensed under the MIT license.
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Data;
namespace Snap.Hutao.Control;

View File

@@ -7,7 +7,6 @@ using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Hosting;
using Microsoft.UI.Xaml.Media;
using Snap.Hutao.Core.Caching;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Notification;
using System.IO;
using System.Net.Http;

View File

@@ -1,7 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using System.Runtime.InteropServices;
using Windows.Foundation;
using Windows.Graphics.Imaging;
using Windows.Win32;

View File

@@ -8,7 +8,6 @@ using System.Net;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using Windows.Storage;
namespace Snap.Hutao.Core.Caching;

View File

@@ -1,74 +0,0 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Messaging;
using Microsoft.EntityFrameworkCore;
namespace Snap.Hutao.Core.Database;
/// <summary>
/// 数据库当前项
/// 简化对数据库中选中项的管理
/// </summary>
/// <typeparam name="TEntity">实体的类型</typeparam>
/// <typeparam name="TMessage">消息的类型</typeparam>
[HighQuality]
[Obsolete("Use ScopedDbCurrent instead")]
internal sealed class DbCurrent<TEntity, TMessage>
where TEntity : class, ISelectable
where TMessage : Message.ValueChangedMessage<TEntity>, new()
{
private readonly DbSet<TEntity> dbSet;
private readonly IMessenger messenger;
private TEntity? current;
/// <summary>
/// 构造一个新的数据库当前项
/// </summary>
/// <param name="dbSet">数据集</param>
/// <param name="messenger">消息器</param>
public DbCurrent(DbSet<TEntity> dbSet, IMessenger messenger)
{
this.dbSet = dbSet;
this.messenger = messenger;
}
/// <summary>
/// 当前选中的项
/// </summary>
public TEntity? Current
{
get => current;
set
{
// prevent useless sets
if (current?.InnerId == value?.InnerId)
{
return;
}
// only update when not processing a deletion
if (value != null)
{
if (current != null)
{
current.IsSelected = false;
dbSet.UpdateAndSave(current);
}
}
TMessage message = new() { OldValue = current, NewValue = value };
current = value;
if (current != null)
{
current.IsSelected = true;
dbSet.UpdateAndSave(current);
}
messenger.Send(message);
}
}
}

View File

@@ -5,8 +5,7 @@ namespace Snap.Hutao.Core.Database;
/// <summary>
/// 可选择的项
/// 若要使用 <see cref="DbCurrent{TEntity, TMessage}"/>
/// 或 <see cref="ScopedDbCurrent{TEntity, TMessage}"/>
/// 若要使用 <see cref="ScopedDbCurrent{TEntity, TMessage}"/>
/// 必须实现该接口
/// </summary>
[HighQuality]

View File

@@ -1,8 +1,8 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using System.Runtime.CompilerServices;
using Snap.Hutao.Core.DependencyInjection.Abstraction;
using System.Runtime.CompilerServices;
namespace Snap.Hutao.Core.DependencyInjection;

View File

@@ -44,6 +44,7 @@ internal static class IocConfiguration
/// </summary>
/// <param name="serviceProvider">服务提供器</param>
/// <returns>服务提供器,用于链式调用</returns>
[EditorBrowsable(EditorBrowsableState.Never)]
public static IServiceProvider InitializeCulture(this IServiceProvider serviceProvider)
{
AppOptions appOptions = serviceProvider.GetRequiredService<AppOptions>();

View File

@@ -14,7 +14,9 @@ namespace Snap.Hutao.Core.ExceptionService;
internal sealed partial class ExceptionRecorder
{
private readonly ILogger<ExceptionRecorder> logger;
#if RELEASE
private readonly IServiceProvider serviceProvider;
#endif
/// <summary>
/// 记录应用程序异常

View File

@@ -1,76 +0,0 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using System.IO;
using Windows.ApplicationModel.DataTransfer;
using Windows.Storage.Streams;
namespace Snap.Hutao.Core.IO.DataTransfer;
/// <summary>
/// 剪贴板 在主线程使用
/// </summary>
[HighQuality]
internal static class Clipboard
{
/// <summary>
/// 从剪贴板文本中反序列化
/// </summary>
/// <typeparam name="T">目标类型</typeparam>
/// <param name="serviceProvider">服务提供器</param>
/// <returns>实例</returns>
public static async Task<T?> DeserializeTextAsync<T>(IServiceProvider serviceProvider)
where T : class
{
ITaskContext taskContext = serviceProvider.GetRequiredService<ITaskContext>();
await taskContext.SwitchToMainThreadAsync();
DataPackageView view = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent();
if (view.Contains(StandardDataFormats.Text))
{
string json = await view.GetTextAsync();
await taskContext.SwitchToBackgroundAsync();
return JsonSerializer.Deserialize<T>(json, serviceProvider.GetRequiredService<JsonSerializerOptions>());
}
return null;
}
/// <summary>
/// 设置文本
/// </summary>
/// <param name="text">文本</param>
public static void SetText(string text)
{
DataPackage content = new() { RequestedOperation = DataPackageOperation.Copy };
content.SetText(text);
Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(content);
Windows.ApplicationModel.DataTransfer.Clipboard.Flush();
}
/// <summary>
/// 设置位图
/// </summary>
/// <param name="stream">位图流</param>
public static void SetBitmap(IRandomAccessStream stream)
{
RandomAccessStreamReference reference = RandomAccessStreamReference.CreateFromStream(stream);
DataPackage content = new() { RequestedOperation = DataPackageOperation.Copy };
content.SetBitmap(reference);
Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(content);
Windows.ApplicationModel.DataTransfer.Clipboard.Flush();
}
/// <summary>
/// 设置位图
/// </summary>
/// <param name="file">文件</param>
public static void SetBitmap(string file)
{
using (IRandomAccessStream stream = File.OpenRead(file).AsRandomAccessStream())
{
SetBitmap(stream);
}
}
}

View File

@@ -1,6 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Windows.ApplicationModel.DataTransfer;
using Windows.Storage.Streams;
namespace Snap.Hutao.Core.IO.DataTransfer;
@@ -8,25 +9,46 @@ namespace Snap.Hutao.Core.IO.DataTransfer;
/// <summary>
/// 剪贴板互操作
/// </summary>
[ConstructorGenerated]
[Injection(InjectAs.Transient, typeof(IClipboardInterop))]
internal sealed class ClipboardInterop : IClipboardInterop
internal sealed partial class ClipboardInterop : IClipboardInterop
{
private readonly IServiceProvider serviceProvider;
private readonly JsonSerializerOptions options;
private readonly ITaskContext taskContext;
/// <summary>
/// 构造一个新的剪贴板互操作对象
/// </summary>
/// <param name="serviceProvider">服务提供器</param>
public ClipboardInterop(IServiceProvider serviceProvider)
/// <inheritdoc/>
public async Task<T?> DeserializeFromJsonAsync<T>()
where T : class
{
this.serviceProvider = serviceProvider;
await taskContext.SwitchToMainThreadAsync();
DataPackageView view = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent();
if (view.Contains(StandardDataFormats.Text))
{
string json = await view.GetTextAsync();
await taskContext.SwitchToBackgroundAsync();
return JsonSerializer.Deserialize<T>(json, options);
}
return null;
}
/// <inheritdoc/>
public Task<T?> DeserializeTextAsync<T>()
where T : class
public bool SetText(string text)
{
return Clipboard.DeserializeTextAsync<T>(serviceProvider);
try
{
DataPackage content = new() { RequestedOperation = DataPackageOperation.Copy };
content.SetText(text);
Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(content);
Windows.ApplicationModel.DataTransfer.Clipboard.Flush();
return true;
}
catch
{
return false;
}
}
/// <inheritdoc/>
@@ -34,10 +56,14 @@ internal sealed class ClipboardInterop : IClipboardInterop
{
try
{
Clipboard.SetBitmap(stream);
RandomAccessStreamReference reference = RandomAccessStreamReference.CreateFromStream(stream);
DataPackage content = new() { RequestedOperation = DataPackageOperation.Copy };
content.SetBitmap(reference);
Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(content);
Windows.ApplicationModel.DataTransfer.Clipboard.Flush();
return true;
}
catch (Exception)
catch
{
return false;
}

View File

@@ -15,7 +15,7 @@ internal interface IClipboardInterop
/// </summary>
/// <typeparam name="T">目标类型</typeparam>
/// <returns>实例</returns>
Task<T?> DeserializeTextAsync<T>()
Task<T?> DeserializeFromJsonAsync<T>()
where T : class;
/// <summary>
@@ -24,4 +24,11 @@ internal interface IClipboardInterop
/// <param name="stream">图片流</param>
/// <returns>是否设置成功</returns>
bool SetBitmap(IRandomAccessStream stream);
/// <summary>
/// 设置文本
/// </summary>
/// <param name="text">文本</param>
/// <returns>是否设置成功</returns>
bool SetText(string text);
}

View File

@@ -34,16 +34,6 @@ internal readonly struct ValueFile
return new(value);
}
public static bool operator ==(ValueFile left, ValueFile right)
{
return left.Value == right.Value;
}
public static bool operator !=(ValueFile left, ValueFile right)
{
return !(left == right);
}
/// <summary>
/// 异步反序列化文件中的内容
/// </summary>
@@ -92,12 +82,6 @@ internal readonly struct ValueFile
}
}
/// <inheritdoc/>
public override bool Equals(object? obj)
{
return obj is ValueFile other && Equals(other);
}
/// <inheritdoc/>
public override int GetHashCode()
{

View File

@@ -5,7 +5,6 @@ using CommunityToolkit.WinUI.Notifications;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Windows.AppLifecycle;
using Snap.Hutao.Core.Setting;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.DailyNote;
using Snap.Hutao.Service.Hutao;
using Snap.Hutao.Service.Metadata;

View File

@@ -5,7 +5,6 @@ using Microsoft.Win32.TaskScheduler;
using System.IO;
using System.Runtime.InteropServices;
using Windows.Storage;
using SchedulerTask = Microsoft.Win32.TaskScheduler.Task;
namespace Snap.Hutao.Core;

View File

@@ -2,7 +2,6 @@
// Licensed under the MIT license.
using Microsoft.UI.Dispatching;
using System.Runtime.CompilerServices;
namespace Snap.Hutao.Core.Threading;

View File

@@ -27,11 +27,9 @@ internal readonly struct ThreadPoolSwitchOperation : IAwaitable<ThreadPoolSwitch
/// <inheritdoc/>
public bool IsCompleted
{
get
{
get =>
// 如果已经处于后台就不再切换新的线程
return !dispatherQueue.HasThreadAccess;
}
!dispatherQueue.HasThreadAccess;
}
/// <inheritdoc/>

View File

@@ -15,7 +15,7 @@ internal static class ValueResultExtension
/// <param name="valueResult">结果</param>
/// <param name="value">值</param>
/// <returns>是否获取成功</returns>
public static bool TryGetValue<TValue>(this in ValueResult<bool, TValue> valueResult,[NotNullWhen(true)] out TValue value)
public static bool TryGetValue<TValue>(this in ValueResult<bool, TValue> valueResult, [NotNullWhen(true)] out TValue value)
{
value = valueResult.Value;
return valueResult.IsOk;

View File

@@ -2,7 +2,6 @@
// Licensed under the MIT license.
using Microsoft.UI.Xaml;
using System.Runtime.CompilerServices;
using Windows.Win32.Foundation;
using Windows.Win32.UI.Shell;
using Windows.Win32.UI.WindowsAndMessaging;

View File

@@ -6,7 +6,6 @@ using Microsoft.UI.Xaml;
using Snap.Hutao.Core.Setting;
using Snap.Hutao.Core.Windowing;
using Snap.Hutao.Message;
using Windows.Graphics;
using Windows.Win32.UI.WindowsAndMessaging;
namespace Snap.Hutao;

View File

@@ -2,7 +2,6 @@
// Licensed under the MIT license.
using Microsoft.EntityFrameworkCore.Design;
using Snap.Hutao.Model.Entity.Database;
namespace Snap.Hutao.Model.Entity.Database;

View File

@@ -1,8 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Model.Intrinsic.Format;
namespace Snap.Hutao.Model.Intrinsic;
/// <summary>

View File

@@ -3,9 +3,7 @@
using Snap.Hutao.Control;
using Snap.Hutao.Model.Metadata.Avatar;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
namespace Snap.Hutao.Model.Metadata.Converter;

View File

@@ -3,8 +3,6 @@
using Snap.Hutao.Control;
using Snap.Hutao.Model.Intrinsic;
using Snap.Hutao.Model.Intrinsic.Format;
using Snap.Hutao.ViewModel.AvatarProperty;
namespace Snap.Hutao.Model.Metadata.Converter;

View File

@@ -1,8 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using System.Runtime.CompilerServices;
namespace Snap.Hutao.Model.Metadata;
/// <summary>

View File

@@ -81,9 +81,7 @@ internal sealed partial class AchievementService
using (IServiceScope scope = serviceProvider.CreateScope())
{
AppDbContext appDbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>();
await appDbContext.AchievementArchives
.ExecuteDeleteWhereAsync(a => a.InnerId == archive.InnerId)
.ConfigureAwait(false);
await appDbContext.AchievementArchives.RemoveAndSaveAsync(archive).ConfigureAwait(false);
}
}
}

View File

@@ -2,7 +2,6 @@
// Licensed under the MIT license.
using Snap.Hutao.Core.Diagnostics;
using Snap.Hutao.Model.Entity.Database;
using Snap.Hutao.Service.AvatarInfo.Factory;
using Snap.Hutao.Service.Metadata;
using Snap.Hutao.ViewModel.AvatarProperty;

View File

@@ -3,7 +3,6 @@
using Snap.Hutao.Model.Intrinsic;
using Snap.Hutao.Model.Metadata.Converter;
using Snap.Hutao.Model.Primitive;
using Snap.Hutao.ViewModel.AvatarProperty;
using Snap.Hutao.Web.Enka.Model;
using MetadataAvatar = Snap.Hutao.Model.Metadata.Avatar.Avatar;

View File

@@ -1,19 +1,10 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Microsoft.EntityFrameworkCore;
using Snap.Hutao.Core.Database;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Model;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Entity.Database;
using Snap.Hutao.Model.Entity.Primitive;
using Snap.Hutao.Model.Metadata.Item;
using Snap.Hutao.Model.Primitive;
using Snap.Hutao.Service.Metadata;
using Snap.Hutao.ViewModel.Cultivation;
using System.Collections.ObjectModel;
using System.Runtime.InteropServices;
namespace Snap.Hutao.Service.Cultivation;

View File

@@ -13,7 +13,6 @@ using Snap.Hutao.Model.Primitive;
using Snap.Hutao.Service.Metadata;
using Snap.Hutao.ViewModel.Cultivation;
using System.Collections.ObjectModel;
using System.Runtime.InteropServices;
namespace Snap.Hutao.Service.Cultivation;

View File

@@ -7,8 +7,6 @@ using Snap.Hutao.Core.Database;
using Snap.Hutao.Message;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Entity.Database;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Game;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Service.User;
using Snap.Hutao.ViewModel.User;

View File

@@ -7,7 +7,6 @@ using Snap.Hutao.Model.Intrinsic;
using Snap.Hutao.Model.Metadata;
using Snap.Hutao.Model.Metadata.Avatar;
using Snap.Hutao.Model.Metadata.Weapon;
using Snap.Hutao.Model.Primitive;
using Snap.Hutao.Service.Metadata;
using Snap.Hutao.ViewModel.GachaLog;

View File

@@ -3,8 +3,6 @@
using Snap.Hutao.Model.Metadata;
using Snap.Hutao.Model.Metadata.Abstraction;
using Snap.Hutao.Model.Metadata.Avatar;
using Snap.Hutao.Model.Metadata.Weapon;
using Snap.Hutao.ViewModel.GachaLog;
using Snap.Hutao.Web.Hoyolab.Hk4e.Event.GachaInfo;

View File

@@ -2,7 +2,6 @@
// Licensed under the MIT license.
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Entity.Database;

View File

@@ -4,7 +4,6 @@
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Entity.Database;
using Snap.Hutao.Model.InterChange.GachaLog;
using Snap.Hutao.Model.Metadata.Abstraction;
namespace Snap.Hutao.Service.GachaLog;

View File

@@ -83,7 +83,7 @@ internal sealed partial class RegistryLauncherLocator : IGameLocator
// 不包含中文
// Some one's folder might begin with 'u'
if (!hex4Result.Contains(@"\u"))
if (!hex4Result.Contains(@"\u"))
{
// fix path with \
hex4Result = hex4Result.Replace(@"\", @"\\");

View File

@@ -4,7 +4,6 @@
using Snap.Hutao.Core.DependencyInjection.Annotation.HttpClient;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Core.IO;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Web.Hoyolab.SdkStatic.Hk4e.Launcher;
using System.IO;

View File

@@ -4,7 +4,6 @@
using Microsoft.UI.Xaml.Controls;
using Snap.Hutao.Control;
using Snap.Hutao.Core.Setting;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.View.Helper;
using Snap.Hutao.View.Page;

View File

@@ -3,7 +3,6 @@
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media.Animation;
using Snap.Hutao.Service.Abstraction;
namespace Snap.Hutao.Service.Notification;

View File

@@ -2,7 +2,6 @@
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Messaging;
using Microsoft.EntityFrameworkCore;
using Snap.Hutao.Core.Database;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Message;

View File

@@ -2,7 +2,6 @@
// Licensed under the MIT license.
using Microsoft.UI.Xaml.Controls;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Navigation;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.View.Page;

View File

@@ -3,7 +3,6 @@
using Microsoft.UI.Xaml;
using Microsoft.Web.WebView2.Core;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Navigation;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Service.User;

View File

@@ -3,7 +3,6 @@
using Microsoft.UI.Xaml;
using Microsoft.Web.WebView2.Core;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Navigation;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Service.User;

View File

@@ -2,7 +2,6 @@
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Microsoft.UI.Xaml.Controls;
using Snap.Hutao.Service.Navigation;

View File

@@ -7,7 +7,6 @@ using Snap.Hutao.Core.IO;
using Snap.Hutao.Core.IO.DataTransfer;
using Snap.Hutao.Factory.Abstraction;
using Snap.Hutao.Model.InterChange.Achievement;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Achievement;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.View.Dialog;
@@ -97,7 +96,7 @@ internal sealed partial class AchievementImporter
{
return await serviceProvider
.GetRequiredService<IClipboardInterop>()
.DeserializeTextAsync<UIAF>()
.DeserializeFromJsonAsync<UIAF>()
.ConfigureAwait(false);
}
catch (Exception ex)

View File

@@ -1,7 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
@@ -13,7 +12,6 @@ using Snap.Hutao.Factory.Abstraction;
using Snap.Hutao.Message;
using Snap.Hutao.Model.Calculable;
using Snap.Hutao.Model.Entity.Primitive;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.AvatarInfo;
using Snap.Hutao.Service.Cultivation;
using Snap.Hutao.Service.Notification;
@@ -21,7 +19,6 @@ using Snap.Hutao.Service.User;
using Snap.Hutao.View.Dialog;
using Snap.Hutao.ViewModel.User;
using Snap.Hutao.Web.Response;
using System.Runtime.InteropServices;
using Windows.Graphics.Imaging;
using Windows.Storage.Streams;
using Windows.UI;

View File

@@ -1,10 +1,8 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Input;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Metadata.Item;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Cultivation;
using Snap.Hutao.Service.Metadata;
using Snap.Hutao.Service.Navigation;

View File

@@ -1,13 +1,9 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Input;
using Snap.Hutao.Core;
using Snap.Hutao.Core.Database;
using Snap.Hutao.Model;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Entity.Database;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.DailyNote;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Service.User;

View File

@@ -2,11 +2,9 @@
// Licensed under the MIT license.
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.DailyNote;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Service.User;
using Snap.Hutao.ViewModel.User;
using System.Collections.ObjectModel;
namespace Snap.Hutao.ViewModel.DailyNote;

View File

@@ -2,14 +2,12 @@
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Microsoft.EntityFrameworkCore;
using Microsoft.UI.Xaml.Controls;
using Microsoft.Windows.AppLifecycle;
using Snap.Hutao.Core;
using Snap.Hutao.Factory.Abstraction;
using Snap.Hutao.Model.Entity.Database;
using Windows.Storage;
using Windows.System;
namespace Snap.Hutao.ViewModel;

View File

@@ -1,7 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Input;
using Microsoft.UI.Xaml.Controls;
using Snap.Hutao.Control.Extension;
using Snap.Hutao.Core.Database;
@@ -10,7 +9,6 @@ using Snap.Hutao.Core.IO;
using Snap.Hutao.Factory.Abstraction;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.InterChange.GachaLog;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.GachaLog;
using Snap.Hutao.Service.GachaLog.QueryProvider;
using Snap.Hutao.Service.Notification;

View File

@@ -1,14 +1,12 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Input;
using Microsoft.Extensions.Caching.Memory;
using Snap.Hutao.Control.Extension;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Core.LifeCycle;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Service;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Game;
using Snap.Hutao.Service.Navigation;
using Snap.Hutao.Service.Notification;

View File

@@ -1,9 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Input;
using Snap.Hutao.Core.Setting;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Hutao;
using Snap.Hutao.Service.Navigation;
using Snap.Hutao.Service.Notification;

View File

@@ -209,10 +209,9 @@ internal sealed partial class SettingViewModel : Abstraction.ViewModel
private void CopyDeviceId()
{
IInfoBarService infoBarService = serviceProvider.GetRequiredService<IInfoBarService>();
try
{
Clipboard.SetText(HutaoOptions.DeviceId);
serviceProvider.GetRequiredService<IClipboardInterop>().SetText(HutaoOptions.DeviceId);
infoBarService.Success(SH.ViewModelSettingCopyDeviceIdSuccess);
}
catch (COMException ex)

View File

@@ -1,13 +1,11 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using Snap.Hutao.Message;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Metadata;
using Snap.Hutao.Model.Primitive;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Metadata;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Service.SpiralAbyss;

View File

@@ -1,7 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Input;
using Microsoft.Windows.AppLifecycle;
using Snap.Hutao.View.Dialog;

View File

@@ -2,7 +2,6 @@
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Core.IO.DataTransfer;
using Snap.Hutao.Service.Navigation;
@@ -196,8 +195,7 @@ internal sealed partial class UserViewModel : ObservableObject
.AppendIf(user.LToken != null, ';')
.Append(user.CookieToken)
.ToString();
Clipboard.SetText(cookieString);
serviceProvider.GetRequiredService<IClipboardInterop>().SetText(cookieString);
infoBarService.Success(string.Format(SH.ViewModelUserCookieCopied, user.UserInfo!.Nickname));
}
catch (Exception e)

View File

@@ -3,12 +3,10 @@
using CommunityToolkit.Common;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using CommunityToolkit.WinUI.Notifications;
using Snap.Hutao.Core;
using Snap.Hutao.Core.Caching;
using Snap.Hutao.Core.DependencyInjection.Annotation.HttpClient;
using Snap.Hutao.Core.IO;
using Snap.Hutao.Core.Setting;
using System.Collections.ObjectModel;

View File

@@ -1,7 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.WinUI.UI;
using Microsoft.Extensions.Primitives;
using Snap.Hutao.Model.Calculable;
@@ -12,7 +11,6 @@ using Snap.Hutao.Model.Metadata;
using Snap.Hutao.Model.Metadata.Avatar;
using Snap.Hutao.Model.Metadata.Item;
using Snap.Hutao.Model.Primitive;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Cultivation;
using Snap.Hutao.Service.Hutao;
using Snap.Hutao.Service.Metadata;

View File

@@ -10,7 +10,6 @@ using Snap.Hutao.Web.Hoyolab;
using Snap.Hutao.Web.Hoyolab.Bbs.User;
using Snap.Hutao.Web.Hoyolab.DynamicSecret;
using Snap.Hutao.Web.Hoyolab.Takumi.Auth;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Text;

View File

@@ -5,7 +5,6 @@ using Microsoft.EntityFrameworkCore;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Entity.Database;
using Snap.Hutao.Web.Hoyolab.Hk4e.Event.GachaInfo;
using System.Collections;
namespace Snap.Hutao.Web.Hutao.GachaLog;

View File

@@ -3,8 +3,6 @@
using Snap.Hutao.Core.DependencyInjection.Annotation.HttpClient;
using Snap.Hutao.Service.Hutao;
using Snap.Hutao.Web.Hoyolab;
using Snap.Hutao.Web.Hoyolab.Hk4e.Event.GachaInfo;
using Snap.Hutao.Web.Hutao.GachaLog;
using Snap.Hutao.Web.Response;
using System.Net.Http;

View File

@@ -1,8 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Web.Hoyolab;
namespace Snap.Hutao.Web;
/// <summary>
@@ -56,11 +54,11 @@ internal static class HutaoEndpoints
}
#endregion
#region Passport
#region Passport
/// <summary>
/// 获取注册验证码
/// </summary>
/// <summary>
/// 获取注册验证码
/// </summary>
public const string PassportVerify = $"{HomaSnapGenshinApi}/Passport/Verify";
/// <summary>

View File

@@ -1,7 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Web.Bridge.Model;
using System.Runtime.CompilerServices;