/// <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)); }
/// <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); }
/// <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)); }
/// <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); }