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 string GenerateUrlId(string playlistName, int userId) { string urlId; using (var tx = Session.BeginTransaction()) { var urlIds = Session.QueryOver <Playlist>() .Where(p => p.Creator.Id == userId) .OrderBy(p => p.Name).Asc .Select(p => p.UrlId) .List <string>(); urlId = UrlIdGenerator.Generate(playlistName, urlIds); tx.Commit(); } return(urlId); }