Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
		public InspectedAlbum(MikuDbAlbumContract importedAlbum)
			: this() {

			ImportedAlbum = importedAlbum;

		}
Exemplo n.º 4
0
 public InspectedAlbum(MikuDbAlbumContract importedAlbum)
     : this()
 {
     ImportedAlbum = importedAlbum;
 }
Exemplo n.º 5
0
		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;
		}