Пример #1
0
        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));
        }
Пример #2
0
        public async Task <IActionResult> CreateSong(SongViewModel model)
        {
            var song = await _songService.Create(model.ToDTO());

            var songViewModel = song.ToViewModel();

            return(Created("post", songViewModel));
        }
Пример #3
0
        /// <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);
            }
        }
Пример #4
0
        public async Task <StatusCodeResult> Create(CreateSongRequest req)
        {
            await _songService.Create(req);

            return(new StatusCodeResult(201));
        }