public int ImportNew() { PermissionContext.VerifyPermission(PermissionToken.MikuDbImport); MikuDbAlbumContract[] existing = HandleQuery(session => session.Query <MikuDbAlbum>().Select(a => new MikuDbAlbumContract(a)).ToArray()); var importer = new AlbumImporter(existing); var imported = importer.ImportNew(); return(HandleTransaction(session => { AuditLog("importing new albums from MikuDB", session); //var all = session.Query<MikuDbAlbum>(); //foreach (var album in all) // session.Delete(album); var newAlbums = new List <MikuDbAlbum>(); foreach (var contract in imported) { var newAlbum = new MikuDbAlbum(contract.AlbumContract); session.Save(newAlbum); newAlbums.Add(newAlbum); } return newAlbums.Count; })); }
public AlbumImportResult ImportOne(string url) { PermissionContext.VerifyPermission(PermissionToken.MikuDbImport); MikuDbAlbumContract[] existing = HandleQuery(session => session.Query <MikuDbAlbum>().Select(a => new MikuDbAlbumContract(a)).ToArray()); var importer = new AlbumImporter(existing); var imported = importer.ImportOne(url); if (imported.AlbumContract == null) { return(imported); } HandleTransaction(session => { SysLog(string.Format("importing album from MikuDB with URL '{0}'", url)); var newAlbum = new MikuDbAlbum(imported.AlbumContract); session.Save(newAlbum); }); return(imported); }