public Index(MikuDbAlbumContract[] albums, string titleFilter, AlbumStatus status) { ParamIs.NotNull(() => albums); Albums = albums; AllStatuses = new Dictionary<AlbumStatus, string> { { AlbumStatus.New, "Unprocessed (new)" }, { AlbumStatus.Skipped, "Rejected" }, { AlbumStatus.Approved, "Processed" } }; Status = status; TitleFilter = titleFilter; }
public MikuDbAlbum(MikuDbAlbumContract contract) : this() { ParamIs.NotNull(() => contract); CoverPicture = (contract.CoverPicture != null ? new PictureData(contract.CoverPicture) : null); Data = XmlHelper.SerializeToXml(contract.Data); SourceUrl = contract.SourceUrl; Status = contract.Status; Title = contract.Title; }
public InspectedAlbum(MikuDbAlbumContract importedAlbum) : this() { ImportedAlbum = importedAlbum; }
private InspectedAlbum Inspect(ISession session, MikuDbAlbum imported, ImportedAlbumOptions options) { Album albumMatch; var foundAlbums = FindAlbums(session, imported); switch (options.MergedAlbumId) { case null: albumMatch = foundAlbums.FirstOrDefault(); break; case 0: albumMatch = null; break; default: albumMatch = session.Load<Album>(options.MergedAlbumId); if (!foundAlbums.Contains(albumMatch)) foundAlbums.Add(albumMatch); break; } var importedContract = new MikuDbAlbumContract(imported); var data = importedContract.Data; var artists = data.ArtistNames.Concat(data.VocalistNames).Concat(!string.IsNullOrEmpty(data.CircleName) ? new[] { data.CircleName } : new string[] {}) .Select(a => InspectArtist(session, a)) .ToArray(); var matchedArtists = artists.Where(a => a.ExistingArtist != null).Select(a => a.ExistingArtist).ToArray(); var tracks = data.Tracks.Select(t => InspectTrack(session, t, matchedArtists, albumMatch)).ToArray(); var result = new InspectedAlbum(importedContract); result.MergeTracks = options.MergeTracks ?? true; if (albumMatch != null) { result.MergedAlbum = new AlbumContract(albumMatch, PermissionContext.LanguagePreference); result.MergedAlbumId = albumMatch.Id; } result.ExistingAlbums = foundAlbums.Select(a => new AlbumContract(a, PermissionContext.LanguagePreference)) .Concat(new[] { new AlbumContract { Name = "Nothing" } }).ToArray(); result.Artists = artists.Select(a => a.InspectedArtist).ToArray(); result.Tracks = tracks; return result; }
public void SetUp() { karenTDoc = ResourceHelper.ReadHtmlDocument("KarenT_SystemindParadox.htm"); importer = new KarenTAlbumImporter(new PictureDownloaderStub()); importedAlbum = importer.GetAlbumData(karenTDoc, "http://"); importedData = importedAlbum.Data; }