public string UploadTrack(UploadTrackDto trackDto) { var uploader = _userRepository.GetByName(trackDto.UploaderUserName); var track = _trackFactory.Produce(trackDto); track.Uploader = uploader; var existingUrlIds = _trackRepository.GetTrackTitles(uploader.Id); track.UrlId = UrlIdGenerator.Generate(track.Title, existingUrlIds); _trackRepository.Create(track); return(track.UrlId); }
public Track Produce(UploadTrackDto trackDto) { if (trackDto == null) { throw new ArgumentNullException(nameof(trackDto)); } if (string.IsNullOrEmpty(trackDto.Title)) { throw new ArgumentException(nameof(trackDto.Title)); } return(new Track { Title = trackDto.Title, Description = trackDto.Description, Artwork = trackDto.Artwork, YearReleased = trackDto.YearReleased }); }
public ActionResult Upload(UploadTrackViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var trackDto = new UploadTrackDto { Title = model.Title, Description = model.Description, Artwork = model.Artwork, YearReleased = model.YearReleased, UploaderUserName = User.Identity.Name }; var trackId = _trackServices.UploadTrack(trackDto); return(RedirectToAction("Track", "User", new { username = User.Identity.Name, id = trackId })); }