Esempio n. 1
0
 public OtherArtistForAlbum(Album album, string name, bool isSupport, ArtistRoles roles)
 {
     Album = album;
     Name = name;
     IsSupport = isSupport;
     Roles = roles;
 }
 public OtherArtistForAlbum(Album album, string name, bool isSupport, ArtistRoles roles)
 {
     Album     = album;
     Name      = name;
     IsSupport = isSupport;
     Roles     = roles;
 }
Esempio n. 3
0
 public ArtistForSong(Song song, string name, bool support, ArtistRoles roles)
     : this()
 {
     Song      = song;
     IsSupport = support;
     Name      = name;
     Roles     = roles;
 }
Esempio n. 4
0
 public ArtistForAlbum(Album album, Artist artist, bool support, ArtistRoles roles)
     : this()
 {
     Album     = album;
     Artist    = artist;
     IsSupport = support;
     Roles     = roles;
 }
Esempio n. 5
0
 public ArtistForSong(Song song, Artist artist, bool support, ArtistRoles roles)
     : this()
 {
     Song      = song;
     Artist    = artist;
     IsSupport = support;
     Roles     = roles;
 }
Esempio n. 6
0
 public ArtistForAlbum(Album album, string name, bool support, ArtistRoles roles)
     : this()
 {
     Album     = album;
     IsSupport = support;
     Name      = name;
     Roles     = roles;
 }
Esempio n. 7
0
		public static void HasArtist(Album album, string artistName, ArtistRoles? roles) {

			var link = album.AllArtists.FirstOrDefault(a => (a.Artist != null && a.Artist.DefaultName.Equals(artistName)) || (a.Artist == null && string.Equals(a.Name, artistName)));

			Assert.IsNotNull(link, string.Format("Artist '{0}' exists for {1}", artistName, album));

			if (roles.HasValue)
				Assert.AreEqual(roles, link.Roles, string.Format("Roles for {0}", link));

		}
Esempio n. 8
0
		public static void HasArtist(Album album, Artist artist, ArtistRoles? roles) {

			var link = album.GetArtistLink(artist);

			Assert.IsNotNull(link, string.Format("{0} exists for {1}", artist, album));

			if (roles.HasValue)
				Assert.AreEqual(roles, link.Roles, string.Format("Roles for {0}", link));

		}
Esempio n. 9
0
        public virtual ArtistForSong AddArtist(string name, bool isSupport, ArtistRoles roles)
        {
            ParamIs.NotNullOrEmpty(() => name);

            var link = new ArtistForSong(this, name, isSupport, roles);

            AllArtists.Add(link);

            return(link);
        }
Esempio n. 10
0
        public virtual ArtistForSong AddSong(Song song, bool support, ArtistRoles roles)
        {
            ParamIs.NotNull(() => song);

            var link = new ArtistForSong(song, this, support, roles);

            AllSongs.Add(link);
            song.AllArtists.Add(link);

            return(link);
        }
Esempio n. 11
0
        private bool CreateArtist(ISession session, Song song, string name, ArtistRoles roles)
        {
            var artist = FindArtist(session, name);
            var link   = (artist != null ? new ArtistForSong(song, artist, false, roles) : new ArtistForSong(song, name, false, roles));

            if (!song.HasArtistLink(link))
            {
                song.AllArtists.Add(link);
                return(true);
            }

            return(false);
        }
Esempio n. 12
0
        public virtual ArtistForAlbum AddAlbum(Album album, bool support, ArtistRoles roles)
        {
            ParamIs.NotNull(() => album);

            // Check is too slow for now
            //if (HasAlbum(album))
            //	throw new InvalidOperationException(string.Format("{0} has already been added for {1}", album, this));

            var link = new ArtistForAlbum(album, this, support, roles);

            AllAlbums.Add(link);
            album.AllArtists.Add(link);

            return(link);
        }
Esempio n. 13
0
        public void UpdateArtistForAlbumRoles(int artistForAlbumId, ArtistRoles roles)
        {
            VerifyManageDatabase();

            HandleTransaction(session => {
                var artistForAlbum = session.Load <ArtistForAlbum>(artistForAlbumId);
                var album          = artistForAlbum.Album;

                artistForAlbum.Roles = roles;
                album.UpdateArtistString();

                AuditLog(string.Format("updated roles for {0} on {1}", artistForAlbum.ArtistToStringOrName, CreateEntryLink(album)), session);

                session.Update(album);
            });
        }
Esempio n. 14
0
        public static ArtistCategories GetCategories(ArtistType type, ArtistRoles roles)
        {
            if (roles == ArtistRoles.Default || !IsCustomizable(type))
            {
                return(CategoriesForTypes[type]);
            }
            else
            {
                var cat = ArtistCategories.Nothing;

                if (roles.HasFlag(ArtistRoles.Vocalist) || roles.HasFlag(ArtistRoles.Chorus))
                {
                    cat |= ArtistCategories.Vocalist;
                }

                if (roles.HasFlag(ArtistRoles.Arranger) || roles.HasFlag(ArtistRoles.Composer) || roles.HasFlag(ArtistRoles.VoiceManipulator))
                {
                    cat |= ArtistCategories.Producer;
                }

                if (roles.HasFlag(ArtistRoles.Distributor) || roles.HasFlag(ArtistRoles.Publisher))
                {
                    cat |= ArtistCategories.Circle;
                }

                if (roles.HasFlag(ArtistRoles.Animator))
                {
                    cat |= ArtistCategories.Animator;
                }

                if (roles.HasFlag(ArtistRoles.Illustrator))
                {
                    cat |= ArtistCategories.Illustrator;
                }

                //if (roles.HasFlag(ArtistRoles.Illustrator) || roles.HasFlag(ArtistRoles.Lyricist) || roles.HasFlag(ArtistRoles.Mastering))
                //	cat |= ArtistCategories.Other;

                if (cat == ArtistCategories.Nothing)
                {
                    cat = ArtistCategories.Other;
                }

                return(cat);
            }
        }
Esempio n. 15
0
        public void UpdateArtistForAlbumRoles(int artistForAlbumId, ArtistRoles[] roles)
        {
            var rolesBitField = (roles != null ? roles.Aggregate(ArtistRoles.Default, (list, item) => list |= item) : ArtistRoles.Default);

            Service.UpdateArtistForAlbumRoles(artistForAlbumId, rolesBitField);
        }
Esempio n. 16
0
		public static ArtistCategories GetCategories(ArtistType type, ArtistRoles roles) {

			if (roles == ArtistRoles.Default || !IsCustomizable(type)) {

				return CategoriesForTypes[type];

			} else {

				var cat = ArtistCategories.Nothing;

				if (roles.HasFlag(ArtistRoles.Vocalist) || roles.HasFlag(ArtistRoles.Chorus))
					cat |= ArtistCategories.Vocalist;

				if (roles.HasFlag(ArtistRoles.Arranger) || roles.HasFlag(ArtistRoles.Composer) || roles.HasFlag(ArtistRoles.VoiceManipulator))
					cat |= ArtistCategories.Producer;

				if (roles.HasFlag(ArtistRoles.Distributor) || roles.HasFlag(ArtistRoles.Publisher))
					cat |= ArtistCategories.Circle;

				if (roles.HasFlag(ArtistRoles.Animator))
					cat |= ArtistCategories.Animator;

				//if (roles.HasFlag(ArtistRoles.Illustrator) || roles.HasFlag(ArtistRoles.Lyricist) || roles.HasFlag(ArtistRoles.Mastering))
				//	cat |= ArtistCategories.Other;

				if (cat == ArtistCategories.Nothing)
					cat = ArtistCategories.Other;

				return cat;

			}


		}
Esempio n. 17
0
 public void Value(int expected, ArtistRoles actual)
 {
     ((int)actual).Should().Be(expected);
 }
Esempio n. 18
0
        public virtual ArtistForAlbum AddArtist(Artist artist, bool isSupport, ArtistRoles roles)
        {
            ParamIs.NotNull(() => artist);

            return(artist.AddAlbum(this, isSupport, roles));
        }
Esempio n. 19
0
 public virtual ArtistForSong AddArtist(Artist artist, bool support, ArtistRoles roles)
 {
     ParamIs.NotNull(() => artist);
     return(artist.AddSong(this, support, roles));
 }
Esempio n. 20
0
 private ArtistForSongContract CreateArtistForSongContract(int artistId = 0, string artistName = null, ArtistRoles roles = ArtistRoles.Default)
 {
     if (artistId != 0)
     {
         return new ArtistForSongContract {
                    Artist = new ArtistContract {
                        Name = artistName, Id = artistId
                    }, Roles = roles
         }
     }
     ;
     else
     {
         return new ArtistForSongContract {
                    Name = artistName, Roles = roles
         }
     };
 }
Esempio n. 21
0
		public CustomArtist(string name, ArtistRoles roles) {
			Name = name;
			Roles = roles;
		}
 /// <summary>
 /// Filters query by excluding entries with the specified artist role.
 /// </summary>
 public static IQueryable <T> WhereDoesNotHaveRole <T>(this IQueryable <T> query, ArtistRoles role) where T : IArtistLinkWithRoles
 {
     return(query.Where(q => (q.Roles & role) == ArtistRoles.Default));
 }
Esempio n. 23
0
		private bool CreateArtist(ISession session, Song song, string name, ArtistRoles roles) {

			var artist = FindArtist(session, name);
			var link = (artist != null ? new ArtistForSong(song, artist, false, roles) : new ArtistForSong(song, name, false, roles));

			if (!song.HasArtistLink(link)) {
				song.AllArtists.Add(link);
				return true;
			}

			return false;

		}
Esempio n. 24
0
		public CustomArtist(string name, ArtistRoles roles) {
			Name = name;
			Roles = roles;
		}
Esempio n. 25
0
		private ArtistForAlbumContract CreateArtistForAlbumContract(int artistId = 0, string customArtistName = null, ArtistRoles roles = ArtistRoles.Default) {

			if (artistId != 0)
				return new ArtistForAlbumContract { Artist = new ArtistContract { Id = artistId }, Roles = roles };
			else
				return new ArtistForAlbumContract { Name = customArtistName, Roles = roles };

		}