From 25cf9f5356db9b84221638c2b5908ec5aaee251d Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Thu, 22 Feb 2024 10:26:43 +0800 Subject: [PATCH] code style --- .../Snap.Hutao/Control/Brush/SegmentedBar.cs | 1 - .../AdvancedCollectionView.cs | 5 ---- .../Snap.Hutao/Core/Caching/IImageCache.cs | 3 +- .../ExceptionService/HutaoExceptionKind.cs | 2 ++ src/Snap.Hutao/Snap.Hutao/Core/IO/TempFile.cs | 2 +- .../Snap.Hutao/Core/LifeCycle/Activation.cs | 18 ++++++------ .../InterProcess/PrivateNamedPipeServer.cs | 2 +- .../Extension/DateTimeOffsetExtension.cs | 19 ++++--------- .../Extension/EnumerableExtension.cs | 28 ------------------- .../Service/Hutao/IHutaoUserService.cs | 4 +-- .../Service/Metadata/IMetadataService.cs | 2 +- .../Service/Navigation/INavigationCurrent.cs | 9 ++++++ .../Service/Navigation/INavigationService.cs | 7 +---- 13 files changed, 30 insertions(+), 72 deletions(-) create mode 100644 src/Snap.Hutao/Snap.Hutao/Service/Navigation/INavigationCurrent.cs diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Brush/SegmentedBar.cs b/src/Snap.Hutao/Snap.Hutao/Control/Brush/SegmentedBar.cs index c04fdc6a..2ddaf629 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Brush/SegmentedBar.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/Brush/SegmentedBar.cs @@ -5,7 +5,6 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Shapes; -using System.Collections.Specialized; using System.Runtime.InteropServices; namespace Snap.Hutao.Control.Brush; diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Collection/AdvancedCollectionView/AdvancedCollectionView.cs b/src/Snap.Hutao/Snap.Hutao/Control/Collection/AdvancedCollectionView/AdvancedCollectionView.cs index a2ab6b2c..64b79a8b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Collection/AdvancedCollectionView/AdvancedCollectionView.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/Collection/AdvancedCollectionView/AdvancedCollectionView.cs @@ -4,7 +4,6 @@ using CommunityToolkit.WinUI.Collections; using CommunityToolkit.WinUI.Helpers; using Microsoft.UI.Xaml.Data; -using Snap.Hutao.Core.ExceptionService; using System.Collections; using System.Collections.ObjectModel; using System.Collections.Specialized; @@ -208,13 +207,11 @@ internal sealed class AdvancedCollectionView : IAdvancedCollectionView, IN public void Add(T item) { - ThrowHelper.NotSupportedIf(IsReadOnly, "Collection is read-only."); source.Add(item); } public void Clear() { - ThrowHelper.NotSupportedIf(IsReadOnly, "Collection is read-only."); source.Clear(); } @@ -230,7 +227,6 @@ internal sealed class AdvancedCollectionView : IAdvancedCollectionView, IN public bool Remove(T item) { - ThrowHelper.NotSupportedIf(IsReadOnly, "Collection is read-only."); source.Remove(item); return true; } @@ -243,7 +239,6 @@ internal sealed class AdvancedCollectionView : IAdvancedCollectionView, IN public void Insert(int index, T item) { - ThrowHelper.NotSupportedIf(IsReadOnly, "Collection is read-only."); source.Insert(index, item); } diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Caching/IImageCache.cs b/src/Snap.Hutao/Snap.Hutao/Core/Caching/IImageCache.cs index bda29579..51800703 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/Caching/IImageCache.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/Caching/IImageCache.cs @@ -1,7 +1,6 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. -using Snap.Hutao.Core.DependencyInjection.Abstraction; using Snap.Hutao.Core.IO; namespace Snap.Hutao.Core.Caching; @@ -10,7 +9,7 @@ namespace Snap.Hutao.Core.Caching; /// 为图像缓存提供抽象 /// [HighQuality] -internal interface IImageCache : ICastService +internal interface IImageCache { /// /// Gets the file path containing cached item for given Uri diff --git a/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/HutaoExceptionKind.cs b/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/HutaoExceptionKind.cs index 7b975757..1848aae4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/HutaoExceptionKind.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/HutaoExceptionKind.cs @@ -7,4 +7,6 @@ internal enum HutaoExceptionKind { None, ServiceTypeCastFailed, + FileSystemCreateFileInsufficientPermissions, + PrivateNamedPipeContentHashIncorrect, } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Core/IO/TempFile.cs b/src/Snap.Hutao/Snap.Hutao/Core/IO/TempFile.cs index 82fe8964..02d9347c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/IO/TempFile.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/IO/TempFile.cs @@ -29,7 +29,7 @@ internal readonly struct TempFile : IDisposable } catch (UnauthorizedAccessException ex) { - ThrowHelper.RuntimeEnvironment(SH.CoreIOTempFileCreateFail, ex); + HutaoException.Throw(HutaoExceptionKind.FileSystemCreateFileInsufficientPermissions, SH.CoreIOTempFileCreateFail, ex); } if (delete) diff --git a/src/Snap.Hutao/Snap.Hutao/Core/LifeCycle/Activation.cs b/src/Snap.Hutao/Snap.Hutao/Core/LifeCycle/Activation.cs index 36b2c4eb..b84fedf3 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/LifeCycle/Activation.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/LifeCycle/Activation.cs @@ -148,17 +148,15 @@ internal sealed partial class Activation : IActivation await taskContext.SwitchToBackgroundAsync(); - serviceProvider - .GetRequiredService() - .As()? - .InitializeInternalAsync() - .SafeForget(); + if (serviceProvider.GetRequiredService() is IMetadataServiceInitialization metadataServiceInitialization) + { + metadataServiceInitialization.InitializeInternalAsync().SafeForget(); + } - serviceProvider - .GetRequiredService() - .As()? - .InitializeInternalAsync() - .SafeForget(); + if (serviceProvider.GetRequiredService() is IHutaoUserServiceInitialization hutaoUserServiceInitialization) + { + hutaoUserServiceInitialization.InitializeInternalAsync().SafeForget(); + } serviceProvider .GetRequiredService() diff --git a/src/Snap.Hutao/Snap.Hutao/Core/LifeCycle/InterProcess/PrivateNamedPipeServer.cs b/src/Snap.Hutao/Snap.Hutao/Core/LifeCycle/InterProcess/PrivateNamedPipeServer.cs index aecb8767..1c35891c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/LifeCycle/InterProcess/PrivateNamedPipeServer.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/LifeCycle/InterProcess/PrivateNamedPipeServer.cs @@ -49,7 +49,7 @@ internal sealed partial class PrivateNamedPipeServer : IDisposable { byte[] content = new byte[header->ContentLength]; serverStream.ReadAtLeast(content, header->ContentLength, false); - ThrowHelper.InvalidDataIf(XxHash64.HashToUInt64(content) != header->Checksum, "PipePacket Content Hash incorrect"); + HutaoException.ThrowIf(XxHash64.HashToUInt64(content) != header->Checksum, HutaoExceptionKind.PrivateNamedPipeContentHashIncorrect, "PipePacket Content Hash incorrect"); return content; } diff --git a/src/Snap.Hutao/Snap.Hutao/Extension/DateTimeOffsetExtension.cs b/src/Snap.Hutao/Snap.Hutao/Extension/DateTimeOffsetExtension.cs index f31d6af8..94d7b7e8 100644 --- a/src/Snap.Hutao/Snap.Hutao/Extension/DateTimeOffsetExtension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Extension/DateTimeOffsetExtension.cs @@ -18,20 +18,11 @@ internal static class DateTimeOffsetExtension return defaultValue; } - try + return value switch { - return DateTimeOffset.FromUnixTimeSeconds(value); - } - catch (ArgumentOutOfRangeException) - { - try - { - return DateTimeOffset.FromUnixTimeMilliseconds(value); - } - catch (ArgumentOutOfRangeException) - { - return defaultValue; - } - } + >= -62135596800 and <= 253402300799 => DateTimeOffset.FromUnixTimeSeconds(value), + >= -62135596800000 and <= 253402300799999 => DateTimeOffset.FromUnixTimeMilliseconds(value), + _ => defaultValue, + }; } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs b/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs index bc92c556..ac878e41 100644 --- a/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs @@ -46,34 +46,6 @@ internal static partial class EnumerableExtension return first; } - public static string JoinToString(this IEnumerable source, char separator, Action selector) - { - StringBuilder resultBuilder = new(); - - IEnumerator enumerator = source.GetEnumerator(); - if (!enumerator.MoveNext()) - { - return string.Empty; - } - - T first = enumerator.Current; - selector(resultBuilder, first); - - if (!enumerator.MoveNext()) - { - return resultBuilder.ToString(); - } - - do - { - resultBuilder.Append(separator); - selector(resultBuilder, enumerator.Current); - } - while (enumerator.MoveNext()); - - return resultBuilder.ToString(); - } - public static string JoinToString(this IEnumerable> source, char separator, Action selector) { StringBuilder resultBuilder = new(); diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/IHutaoUserService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/IHutaoUserService.cs index 5bc144de..2bc3641e 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/IHutaoUserService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/IHutaoUserService.cs @@ -1,14 +1,12 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. -using Snap.Hutao.Core.DependencyInjection.Abstraction; - namespace Snap.Hutao.Service.Hutao; /// /// 胡桃用户服务 /// -internal interface IHutaoUserService : ICastService +internal interface IHutaoUserService { /// /// 异步初始化 diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataService.cs index 40c038dd..ad212490 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataService.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Service.Metadata; /// 元数据服务 /// [HighQuality] -internal interface IMetadataService : ICastService +internal interface IMetadataService { IMemoryCache MemoryCache { get; } diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Navigation/INavigationCurrent.cs b/src/Snap.Hutao/Snap.Hutao/Service/Navigation/INavigationCurrent.cs new file mode 100644 index 00000000..296a144a --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Service/Navigation/INavigationCurrent.cs @@ -0,0 +1,9 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +namespace Snap.Hutao.Service.Navigation; + +internal interface INavigationCurrent +{ + Type? Current { get; } +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Navigation/INavigationService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Navigation/INavigationService.cs index b8e328e6..4f9a7c91 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Navigation/INavigationService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Navigation/INavigationService.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Service.Navigation; /// 导航服务 /// [HighQuality] -internal interface INavigationService : ICastService, INavigationCurrent +internal interface INavigationService : INavigationCurrent { /// /// 导航到指定类型的页面 @@ -47,9 +47,4 @@ internal interface INavigationService : ICastService, INavigationCurrent /// 尽可能尝试返回 /// void GoBack(); -} - -internal interface INavigationCurrent -{ - Type? Current { get; } } \ No newline at end of file