public IAsyncOperation <ROMData> LoadROMAsync(ROMEntry entry) { IStorageFile file = entry.File; String fileExtension = this.GetFileExtension(file).ToLower(); Func <Task <ROMData> > helper = async() => { ROMData romData = new ROMData(); if (fileExtension == "zip") { var zipData = await this.GetBytesFromZipFileAsync(file, this.romFileExtensions); romData.data = zipData.Bytes; romData.fileExtension = zipData.ROMExtension; } else { romData.data = await this.GetBytesFromFileAsync(file); romData.fileExtension = this.GetFileExtension(file); } romData.file = file; romData.size = (uint)romData.data.Length; if (this.currentROM != null) { this.currentROM.CheatCache = null; } this.currentROM = entry; return(romData); }; return(helper().AsAsyncOperation <ROMData>()); }
internal static ROMData FromUtility(Utility.ROMData data) { return(new ROMData() { size = data.Size, file = data.File, fileExtension = data.FileExtension, data = data.Data }); }