Exemplo n.º 1
0
        /// <summary>
        /// </summary>
        /// <param name="trackId">
        /// The track id.
        /// </param>
        /// <param name="userProfileId">
        /// The user profile id.
        /// </param>
        /// <returns>
        /// </returns>
        private TrackAudio GetTrackAudioForSeller(int trackId, int userProfileId)
        {
            // мы можем дать скачать и послушать свои треки продавцу
            Track track;

            using (var repository = Factory.GetTrackRepository())
            {
                track =
                    repository.FirstOrDefault(
                        t => t.Id == trackId && (t.OwnerId == userProfileId || t.OwnerId == null),
                        t => t.Artist);
            }

            if (track != null && track.TrackFile != null)
            {
                return(new TrackAudio()
                {
                    AudioStream =
                        Mp3StreamHelper.GetAudioStream(
                            track.Name,
                            track.Artist.Name,
                            track.TrackFile),
                    FileName = track.FileName
                });
            }

            return(GetTrackSample(trackId));
        }
Exemplo n.º 2
0
        /// <summary>
        /// </summary>
        /// <param name="trackId">
        /// The track id.
        /// </param>
        /// <returns>
        /// </returns>
        private TrackAudio GetTrackAudioForAdmin(int trackId)
        {
            // мы можем дать скачать и послушать все треки админу
            Track track;

            using (var repository = Factory.GetTrackRepository())
            {
                track = repository.GetById(trackId, t => t.Artist);
            }

            if (track != null)
            {
                return(new TrackAudio()
                {
                    AudioStream =
                        Mp3StreamHelper.GetAudioStream(
                            track.Name,
                            track.Artist.Name,
                            track.TrackFile),
                    FileName = track.FileName
                });
            }

            return(null);
        }
Exemplo n.º 3
0
        /// <summary>
        /// </summary>
        /// <param name="trackId">
        /// The track id.
        /// </param>
        /// <param name="userProfileId">
        /// The user profile id.
        /// </param>
        /// <returns>
        /// </returns>
        private TrackAudio GetTrackAudioForBuyer(int trackId, int userProfileId)
        {
            // мы можем дать скачать и послушать только купленные треки для обычных пользователей
            var purchasedTrack = GetPurchasedTrack(trackId, userProfileId);

            if (purchasedTrack != null && purchasedTrack.TrackFile != null)
            {
                return(new TrackAudio()
                {
                    AudioStream =
                        Mp3StreamHelper.GetAudioStream(
                            purchasedTrack.Name,
                            purchasedTrack.Artist.Name,
                            purchasedTrack.TrackFile),
                    FileName = purchasedTrack.FileName
                });
            }

            return(GetTrackSample(trackId));
        }
Exemplo n.º 4
0
        /// <summary>
        /// </summary>
        /// <param name="trackId">
        /// The track id.
        /// </param>
        /// <returns>
        /// </returns>
        private TrackAudio GetTrackSample(int trackId)
        {
            Track track;

            using (var repository = Factory.GetTrackRepository())
            {
                track = repository.FirstOrDefault(t => t.Id == trackId, t => t.Artist);
            }

            if (track != null && track.TrackFile != null)
            {
                return(new TrackAudio()
                {
                    AudioStream = Mp3StreamHelper.GetAudioStream(
                        track.Name,
                        track.Artist.Name,
                        track.TrackFile,
                        true),
                    FileName = track.FileName
                });
            }

            return(null);
        }