示例#1
0
        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);
        }
示例#2
0
        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
            });
        }
示例#3
0
        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 }));
        }