public async Task <IActionResult> AddSong(SongCreateDto model, int artistId) { if (ModelState.IsValid) { var result = await _songService.Create(model); if (result.IsSuccess) { return(RedirectToAction("Album", new { artistId })); } throw new Exception("No se pudo registrar el álbum"); } else { ModelState.AddModelError("SongCreation", "No se pudo registrar la canción."); } // Volvemos a pasar el modelo en caso falle para que cargue la data de nuevo var artist = await _artistService.Get(artistId); var albums = await _albumService.GetAllByArtist(artistId); var resultViewModel = new AlbumViewModel { ArtistId = artist.ArtistId, ArtistName = artist.Name, Albums = albums }; // Especificamos la ruta de la vista manualmente return(View("Album", resultViewModel)); }
public async Task <IActionResult> CreateSong(SongViewModel model) { var song = await _songService.Create(model.ToDTO()); var songViewModel = song.ToViewModel(); return(Created("post", songViewModel)); }
/// <summary> /// Creates song with category that corresponds with given name /// </summary> /// <param name="song">song</param> /// <param name="albumName">category name</param> public async Task <Guid> CreateSongWithAlbumNameAsync(SongDto song, string albumName) { using (var uow = UnitOfWorkProvider.Create()) { song.AlbumId = (await albumService.GetAlbumIdsByNamesAsync(albumName)).FirstOrDefault(); var productId = songService.Create(song); await uow.Commit(); return(productId); } }
public async Task <StatusCodeResult> Create(CreateSongRequest req) { await _songService.Create(req); return(new StatusCodeResult(201)); }