/
githubmirror
/
PowerToys
Обзор
Документация
Войти
/
githubmirror
/
PowerToys
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/modules/AdvancedPaste/AdvancedPaste.UnitTests/Utils/ResourceUtils.cs
47 строк
2 KB
Ani
[AdvancedPaste]Add Semantic Kernel opt-in to allow chaining of paste actions (#35902)
11 дек 2024, 12:28
Не верифицирован
11 дек 2024, 12:28
bf3474b
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.IO; using System.Linq; using System.Reflection; using System.Threading.Tasks; using Windows.ApplicationModel.DataTransfer; using Windows.Storage.Streams; namespace AdvancedPaste.UnitTests.Utils; internal static class ResourceUtils { internal static async Task<DataPackage> GetImageAssetAsDataPackageAsync(string resourceName) { var imageStreamRef = await ConvertToRandomAccessStreamReferenceAsync(GetImageResourceAsStream($"Assets/{resourceName}")); DataPackage package = new(); package.SetBitmap(imageStreamRef); return package; } private static async Task<RandomAccessStreamReference> ConvertToRandomAccessStreamReferenceAsync(Stream stream) { InMemoryRandomAccessStream inMemoryStream = new(); using var inputStream = stream.AsInputStream(); await RandomAccessStream.CopyAsync(inputStream, inMemoryStream); inMemoryStream.Seek(0); return RandomAccessStreamReference.CreateFromStream(inMemoryStream); } private static Stream GetImageResourceAsStream(string filename) { var assembly = Assembly.GetExecutingAssembly(); var assemblyName = new AssemblyName(assembly.FullName ?? throw new InvalidOperationException()); var resourceName = $"{assemblyName.Name}.{filename.Replace("/", ".")}"; return assembly.GetManifestResourceNames().Contains(resourceName) ? assembly.GetManifestResourceStream(resourceName) : throw new InvalidOperationException($"Embedded resource '{resourceName}' does not exist."); } }