@Transactional public List<Album> getAll( MDOUser user, boolean authorInfo, boolean songsInfo, boolean resourcesInfo, int fromResult, int maxResults, boolean orderDesc, boolean orderByAuthor ) { List<MDOAlbum> albums = this.daoAlbum.getAll( user.getLogin(), fromResult, maxResults, orderDesc, orderByAuthor ); return Album.transform( albums, authorInfo, songsInfo, resourcesInfo ); }
@Transactional public List<Album> getAll( MDOUser user, long authorSid, boolean authorInfo, boolean songsInfo, boolean resourcesInfo, int fromResult, int maxResults, boolean orderDesc, boolean orderByAuthor ) { List<MDOAlbum> albums = daoAlbum.getAll( authorSid, user.getLogin(), fromResult, maxResults, orderDesc, orderByAuthor ); return Album.transform( albums, authorInfo, songsInfo, resourcesInfo ); }
@Override public RandomList getRandomList( User user ) { List<MDOGenre> randomGenreList = daoGenre.getRandomGenre( user.getLogin(), 1 ); if ( randomGenreList != null && randomGenreList.size() > 0 ) { List<MDOAlbum> albumList = daoAlbum.getAll( user.getLogin(), randomGenreList.get( 0 ) ); RandomList rl = new RandomList( "RandomListName-Genre", "RandomListTitle-Genre" ); rl.addDetail( randomGenreList.get( 0 ).getName() ); for ( int i = 0; i < albumList.size() && i < MAX_ELEMENTS; i++ ) { for ( MDOSong mdoSong : albumList.get( i ).getSongs() ) { Song song = new Song( mdoSong, true, true ); rl.addSong( song ); } } long seed = System.nanoTime(); if ( rl.getSongs() != null ) { Collections.shuffle( rl.getSongs(), new Random( seed ) ); } return rl; } return null; }
public long fuseGenres( User user, List<Long> genreSids, String newGenreName ) { MDOUser mdouser = daoUser.getUserByLogin( user.getLogin() ); // 1st, creating the new genre MDOGenre newGenre = new MDOGenre( newGenreName, mdouser ); daoGenre.save( newGenre ); for ( int i = 0; i < genreSids.size(); i++ ) { // second, replacing current genre by the new one MDOGenre genre = this.daoGenre.getGenre( user.getLogin(), genreSids.get( i ) ); List<MDOAlbum> albums = this.daoAlbum.getAll( user.getLogin(), genre ); for ( MDOAlbum mdoAlbum : albums ) { mdoAlbum.setGenre( newGenre ); daoAlbum.save( mdoAlbum ); } // third, removing all olds genres daoGenre.remove( genre ); } return daoGenre.getByName( user.getLogin(), newGenreName ).getSid(); } }