public IActionResult GetAlbum(string nameArtist, string nameAlbum) { var nameArtistForRequest = nameArtist.Replace(" ", "+"); var nameAlbumForRequest = nameAlbum.Replace(" ", "+"); var listTrackInDb = _trackService.GetAll().Where(a => a.AlbumId == _albumService.Get(nameAlbum).Id); if (listTrackInDb.Count() == 0) { Album alb = _albumService.GetAll().Where(a => a.Name == nameAlbum).FirstOrDefault(b => b.NameArtist == nameArtist); Album album = _albumService.GetAlbum(nameArtistForRequest, nameAlbumForRequest); var artistId = _artistService.Get(nameArtist).Id; foreach (Track track in album.Tracks) { track.AlbumId = alb.Id; track.NameAlbum = nameAlbum; _trackService.Create(track); } _albumService.Update(alb); return(View(album)); } else { return(View(_albumService.GetAll().Where(a => a.Name == nameAlbum).FirstOrDefault(b => b.NameArtist == nameArtist))); } }
public void CreateTrack_UnderNormalConditions_ReturnsOkResponse() { //arrange var trackToCreate = new TrackDto() { TrackId = 7, IsActive = true, TrackDescription = "test description 7", TrackName = "track name 7" }; Mock.Arrange(() => _trackService.Create(trackToCreate)) .Returns(trackToCreate) .OccursOnce(); var trackController = new TrackController(_trackService) { Request = new HttpRequestMessage() { RequestUri = new Uri("http://localhost/api/track") } }; //act var actual = trackController.Post(trackToCreate) as CreatedNegotiatedContentResult <TrackDto>; var actualContent = actual.Content; //assert Mock.Assert(_trackService); Assert.That(actual, Is.Not.Null); Assert.That(actual, Is.TypeOf <CreatedNegotiatedContentResult <TrackDto> >()); Assert.That(actualContent, Is.EqualTo(trackToCreate)); }
public IHttpActionResult Post(TrackDto track) { using (_trackService) { var response = _trackService.Create(track); return(Created(new Uri(Request.RequestUri, $"{response.TrackId}"), response)); } }
public async Task <IActionResult> Create(CreateTrackFormModel track) { var currAlbum = await _albums.Albums(track.AlbumId); if (ModelState.IsValid) { var trackId = _service.Create( track.Name, track.Duration, track.AlbumId); return(RedirectToAction(nameof(Create))); } ViewData["AlbumId"] = new SelectList(currAlbum, "Id", "Name", track.AlbumId); return(View(track)); }
public void Search() { string[] filenames = Directory.GetFiles("D:/WEB_Onion/OAA.Web/wwwroot/tracks/", "*.mp3", SearchOption.AllDirectories); foreach (var link in filenames) { // nameTrack-nameArtist.mp3 var nameTrack = ""; var nameArtist = ""; var splited = link.Split("-"); nameTrack = splited[0].Split("/")[5]; nameArtist = splited[1].Replace(".mp3", ""); var linkT = "http://localhost:52527/tracks/" + nameTrack + "-" + nameArtist + ".mp3"; var nameT = nameTrack.Replace(" ", "+"); var nameA = nameArtist.Replace(" ", "+"); if (artistService.GetAll().Where(a => a.Name == nameArtist).Count() == 0) { AddArtistToDb(nameArtist); } var nameAlbum = trackService.GetAlbumTrackName(nameA, nameT); Album album = albumService.GetAll().Where(a => a.NameArtist == nameArtist).FirstOrDefault(b => b.Name == nameAlbum); if (album == null) { Album alb = albumService.GetAlbum(nameArtist, nameAlbum); alb.ArtistId = artistService.Get(nameArtist).Id; albumService.Create(alb); } if (trackService.GetAll().Where(a => a.Name == nameTrack).FirstOrDefault(b => b.NameAlbum == nameAlbum) != null) { AddLinkToDb(nameTrack, nameArtist, linkT); } else { Track track = trackService.AddTrackFromLast(nameTrack, nameArtist, linkT); track.AlbumId = albumService.GetAll().Where(a => a.Name == nameAlbum).FirstOrDefault(b => b.NameArtist == nameArtist).Id; track.NameAlbum = nameAlbum; trackService.Create(track); } } }
public async Task <VideoDto> GetVideo(string spotifyId, string artist, string album, string song) { var video = await _videoService.Get(spotifyId); if (video != null) { return(video); } var track = await _trackService.Get(spotifyId) ?? await _trackService.Create(new CreateTrackRequest { SpotifyId = spotifyId, Album = album, Name = song, Artist = artist }); var searchListRequest = _youTubeService.Search.List("snippet"); searchListRequest.Q = $"{artist} {album} {song}"; searchListRequest.MaxResults = 1; var result = await searchListRequest.ExecuteAsync(); if (!(result.Items.FirstOrDefault() is { } searchResult)) { return(null); } return(await _videoService.Create(new CreateVideoRequest { TrackId = track.Id, YouTubeId = searchResult.Id.VideoId })); }