public static async Task <IBook> GetBookFromFile(Windows.Storage.IStorageFile file) { if (file == null) { return(null); } else if (Path.GetExtension(file.Path).ToLower() == ".pdf") { var book = new Books.Pdf.PdfBook(); try { await book.Load(file); } catch { return(null); } if (book.PageCount <= 0) { return(null); } return(book); } else if (new string[] { ".zip", ".cbz" }.Contains(Path.GetExtension(file.Path).ToLower())) { var book = new Books.Cbz.CbzBook(); try { await book.LoadAsync(WindowsRuntimeStreamExtensions.AsStream(await file.OpenReadAsync())); } catch { return(null); } if (book.PageCount <= 0) { return(null); } return(book); } else if (new string[] { ".rar", ".cbr", ".7z", ".cb7" }.Contains(Path.GetExtension(file.Path).ToLower())) { var book = new Books.Compressed.CompressedBook(); try { await book.LoadAsync(WindowsRuntimeStreamExtensions.AsStream(await file.OpenReadAsync())); } catch { return(null); } if (book.PageCount <= 0) { return(null); } return(book); } return(null); }
public async static Task<IBook> GetBookFromFile(Windows.Storage.IStorageFile file) { if (file == null) { return null; } else if (Path.GetExtension(file.Path).ToLower() == ".pdf") { var book = new Books.Pdf.PdfBook(); await book.Load(file); return book; } else if (new string[] { ".zip", ".cbz" }.Contains(Path.GetExtension(file.Path).ToLower())) { var book = new Books.Cbz.CbzBook(); await book.LoadAsync(WindowsRuntimeStreamExtensions.AsStream(await file.OpenReadAsync())); return book; } else if (new string[] { ".rar", ".cbr" }.Contains(Path.GetExtension(file.Path).ToLower())) { var book = new Books.Compressed.CompressedBook(); await book.LoadAsync(WindowsRuntimeStreamExtensions.AsStream(await file.OpenReadAsync())); return book; } return null; }