public IActionResult Create(TrackCreatePostViewModel model)
        {
            if (model.AlbumId == null)
            {
                return(BadRequest(string.Format(
                                      Constants.EntityPropertyMissingError, "Album", "ID")));
            }
            var    album  = AlbumService.GetAlbumById(model.AlbumId);
            string artist = model.Artist;
            string title  = model.TrackTitle;

            if (TrackService.Exists(artist, title))
            {
                model.Data[Constants.ErrorKey] = string.Format(
                    Constants.EntityExistsError, "Track", $"{artist} - {title}");
                model.MusicGenres = Enumerator
                                    .GetTextValues(typeof(MusicGenre))
                                    .Select(displayName => new MusicGenreViewModel()
                {
                    DisplayName = displayName
                });
                return(View(model));
            }
            var     genre = Enumerator.ToEnumOrDefault <MusicGenre>(model.Genre);
            decimal price = decimal.Parse(model.Price);

            TrackService.AddTrack(artist, title, genre, model.Link, price);
            var track = TrackService.GetTrackByName(artist, title);

            AlbumTrackService.AddAlbumTrack(album.Id, track.Id);
            model.TrackId = track.Id.ToString();
            return(RedirectTo(string.Format(Constants.TrackDetailsViewRoute, model.AlbumId, model.TrackId)));
        }
示例#2
0
 public ActionResult Add(Track track)
 {
     if (ModelState.IsValid)
     {
         var status = _trackService.AddTrack(track) ? "Saved Successfully!" : "Could not Save!";
         return(Json(status));
     }
     return(View(track));
 }
示例#3
0
        public ActionResult Add(Track track)
        {
            if (ModelState.IsValid)
            {
                var result = _trackService.AddTrack(track);
                ViewBag.HasSaved = result;
            }

            return(View(track));
        }
示例#4
0
        public IActionResult Create(TrackCreatePostViewModel model)
        {
            Guid   albumId = Guid.Parse(model.AlbumId);
            var    album   = AlbumService.GetAlbum(albumId);
            string artist  = model.Artist;
            string title   = model.TrackTitle;

            if (TrackService.Exists(artist, title))
            {
                model.Error = string.Format(Constants.TrackExistsError, artist, title);
                return(View(model));
            }
            string  genreDisplayName = model.Genre;
            var     genre            = Enumerator.ToEnumOrDefault <MusicGenre>(genreDisplayName);
            string  trackUrl         = model.Link;
            decimal price            = decimal.Parse(model.Price);

            TrackService.AddTrack(artist, title, genre, trackUrl, price);
            var track = TrackService.GetTrack(artist, title);

            AlbumTrackService.AddAlbumTrack(album.Id, track.Id);
            model.TrackId = track.Id.ToString();
            return(RedirectTo(string.Format(Constants.TrackDetailsViewRoute, albumId.ToString(), track.Id.ToString())));
        }
示例#5
0
 public void AddTrack([FromBody] Track track)
 {
     _trackService.AddTrack(track);
 }
示例#6
0
        public async Task <TrackResponse> StartTrack(AddTrackRequest trackRequest)
        {
            var tracker = trackRequest.To <LiveTracker>();

            return(await _trackService.AddTrack(tracker));
        }