public static async Task <(StorageFile File, ConversionStatus Result)> TryConvertAsync(
            StorageFile file, StorageFolder targetFolder = null)
        {
            if (file.FileType.ToLower().EndsWith("woff"))
            {
                StorageFolder folder = targetFolder ?? ApplicationData.Current.TemporaryFolder;
                string        name   = Path.GetFileNameWithoutExtension(file.DisplayName);

                if (targetFolder is not null) // Avoid threading errors with multiple converts to the same target folder
                {
                    name += $"-{_random.Next(1000,100000)}";
                }

                StorageFile newFile = await folder.CreateFileAsync($"{name}.otf", CreationCollisionOption.ReplaceExisting).AsTask().ConfigureAwait(false);

                ConversionStatus result = await TryConvertWoffToOtfAsync(file, newFile).ConfigureAwait(false);

                if (result == ConversionStatus.OK)
                {
                    if (DirectWrite.HasValidFonts(GetAppUri(newFile)))
                    {
                        return(newFile, ConversionStatus.OK);
                    }
                    else
                    {
                        return(default, ConversionStatus.UnspecifiedError);
        public static async Task <(StorageFile File, ConversionStatus Result)> TryConvertAsync(StorageFile file)
        {
            if (file.FileType.ToLower().EndsWith("woff"))
            {
                var folder  = ApplicationData.Current.TemporaryFolder;
                var newFile = await folder.CreateFileAsync(file.DisplayName + ".otf", CreationCollisionOption.ReplaceExisting).AsTask().ConfigureAwait(false);

                ConversionStatus result = await TryConvertWoffToOtfAsync(file, newFile).ConfigureAwait(false);

                if (result == ConversionStatus.OK)
                {
                    if (DirectWrite.HasValidFonts(GetAppUri(newFile)))
                    {
                        return(newFile, ConversionStatus.OK);
                    }
                    else
                    {
                        return(default, ConversionStatus.UnspecifiedError);