示例#1
0
        // consider creating a slimmed down TrackForCreationDto object
        public ActionResult <TrackDto> Create(TrackDto trackDto, [FromRoute] long albumId)
        {
            // note: param null check is unnecessary in modern ASP.NET
            // as [ApiController] handles it, returning 400 Bad Request by itself

            TrackModel trackModel = _mapper.Map <TrackModel>(trackDto);

            trackModel.AlbumId = albumId;

            _service.CreateTrack(trackModel);
            _service.Save();
            var trackReturned = _mapper.Map <TrackDto>(trackModel);

            return(CreatedAtAction("Create", trackReturned)); // 201

            //// note: Kevin Dockx uses a void method for creation, repo.AddAuthor
            //// followed by a repo.Save() right in the controller, and uses CreatedAtRoute
            //return CreatedAtRoute("GetTrack",
            //    new { trackId = trackReturned.TrackId },
            //    trackReturned);
            //// finally, add (Name = "GetTrack") in [HttpGet]
        }
示例#2
0
        public IActionResult Create(TrackCreateInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Redirect("/Tracks/Create?albumId=" + model.AlbumId));
            }

            Album album = albumService.GetById(model.AlbumId);

            if (album == null)
            {
                return(Redirect("/Tracks/Create?albumId=" + model.AlbumId));
            }

            Track track = model.MapTo <Track>();

            album.Price += model.Price * GlobalConstants.PriceDiscountConeficient;
            trackService.CreateTrack(track);
            albumService.UpdateAlbum(album);

            return(Redirect("/Albums/Details?id=" + model.AlbumId));
        }
 public int Execute()
 {
     return(_service.CreateTrack(_command.Track));
 }