public AlbumForUserContract(AlbumForUser albumForUser, ContentLanguagePreference languagePreference)
        {
            ParamIs.NotNull(() => albumForUser);

            Album          = new AlbumContract(albumForUser.Album, languagePreference);
            Id             = albumForUser.Id;
            MediaType      = albumForUser.MediaType;
            PurchaseStatus = albumForUser.PurchaseStatus;
            Rating         = albumForUser.Rating;
            User           = new UserContract(albumForUser.User);
        }
        public AlbumForUserForApiContract(
            AlbumForUser albumForUser,
            ContentLanguagePreference languagePreference,
            IEntryThumbPersister thumbPersister,
            bool ssl,
            AlbumOptionalFields fields,
            bool shouldShowCollectionStatus)
        {
            Album  = new AlbumForApiContract(albumForUser.Album, null, languagePreference, thumbPersister, ssl, fields, SongOptionalFields.None);
            Rating = albumForUser.Rating;

            if (shouldShowCollectionStatus)
            {
                MediaType      = albumForUser.MediaType;
                PurchaseStatus = albumForUser.PurchaseStatus;
            }
        }
        public AlbumForUserForApiContract(
            AlbumForUser albumForUser,
            ContentLanguagePreference languagePreference,
            IAggregatedEntryImageUrlFactory thumbPersister,
            AlbumOptionalFields fields,
            bool shouldShowCollectionStatus,
            bool includeUser = false)
        {
            Album  = albumForUser != null ? new AlbumForApiContract(albumForUser.Album, null, languagePreference, thumbPersister, fields, SongOptionalFields.None) : null;
            Rating = albumForUser?.Rating ?? 0;

            if (shouldShowCollectionStatus)
            {
                MediaType      = albumForUser?.MediaType ?? null;
                PurchaseStatus = albumForUser?.PurchaseStatus ?? null;
            }

            if (includeUser)
            {
                User = albumForUser != null ? new UserForApiContract(albumForUser.User) : null;
            }
        }