예제 #1
0
        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;
            }));
        }
예제 #2
0
        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);
        }