// [Authorize] public async Task <ActionResult <MusicResource> > CreateMusic(SaveMusicResource saveMusicResource) { try { //GET Current user var userId = User.Identity.Name; // Validation SaveMusicResourceValidator validation = new SaveMusicResourceValidator(); ValidationResult validationResult = await validation.ValidateAsync(saveMusicResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } // mappage view à la BD Music music = _mapperService.Map <SaveMusicResource, Music>(saveMusicResource); // Creation de music Music newMusic = await _musicService.CreateMusic(music); // mappage BD à la view MusicResource musicResource = _mapperService.Map <Music, MusicResource>(newMusic); return(Ok(musicResource)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult <MusicResource> > GetMusicByid(int id) { Music music = await _musicService.GetMusicById(id); MusicResource musicResource = _mapper.Map <Music, MusicResource>(music); return(Ok(musicResource)); }
public async Task <ActionResult <MusicResource> > GetMusicById(int id) { try { Music music = await _musicService.GetMusicById(id); if (music == null) { return(NotFound()); } //mappage MusicResource musicResource = _mapperService.Map <Music, MusicResource>(music); return(Ok(musicResource)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
/// <param name="musicResource">Music resource.</param> /// <param name="isLooped">Is looped.</param> /// <param name="fadeInDuration">Fade in duration (in seconds).</param> /// <param name="fadeOutDuration">Fade out duration (in seconds).</param> public MusicTrack( MusicResource musicResource, bool isLooped, double fadeInDuration, double fadeOutDuration, double volume = 1) { this.MusicResource = musicResource ?? throw new ArgumentNullException(nameof(musicResource)); this.IsLooped = isLooped; this.FadeInDuration = fadeInDuration; this.FadeOutDuration = fadeOutDuration; if (volume < 0 || volume > 1) { throw new ArgumentException("Volume must be in [0;1] range", nameof(volume)); } this.Volume = volume; }
public static bool TryGetLastStopTime(MusicResource musicTrack, out double stopAtPosition) { if (!LastStopTime.TryGetValue(musicTrack, out var result)) { stopAtPosition = 0; return(false); } LastStopTime.Remove(musicTrack); if (Api.Client.Core.ClientRealTime - result.ClientTimeLastPlayback > MusicPlaylistLastStopTimeManager.MaxDurationToRememberTrackPosition) { // it stopped too long ago, forget about this stopAtPosition = 0; return(false); } stopAtPosition = result.StopAtPosition; return(true); }
public static void RememberLastTrack(MusicResource musicTrack, double stopAtPosition) { LastStopTime[musicTrack] = new TrackStopTime(stopAtPosition, Api.Client.Core.ClientRealTime); }