public static async Task <IBook> ToPlatformAsync([NotNull] this ContentPackage source) { var result = new Book { Name = source.GetValue(ParamBookName, DefaultName), Pages = source.GetParts().Select(part => part.ToPlatform()) }; var configuration = InteractiveInkServices.EngineService.Engine.Configuration; var identifier = configuration.GetString(ConfigurationKeys.Language); result.Language = InteractiveInkServices.LanguageService.Languages.Single(x => x.Tag == identifier); if (!(await source.GetTargetFileAsync() is { } file)) { return(result); } result.Name = source.GetValue(ParamBookName, file.DisplayName); result.TargetFile = file; result.TargetFileProperties = await file.GetBasicPropertiesAsync(); return(result); }