public PlaylistDto Create(PlaylistDto playlistDto) { PlaylistDto savedPlaylistDto; using (ITransaction transaction = Session.BeginTransaction()) { User user = UserManager.Get(playlistDto.UserId); Playlist playlist = new Playlist(playlistDto.Id); playlistDto.SetPatchableProperties(playlist); user.AddPlaylist(playlist); List <PlaylistItem> playlistItems = new List <PlaylistItem>(); foreach (PlaylistItemDto dto in playlistDto.Items) { PlaylistItem playlistItem = new PlaylistItem(dto.Id, dto.Title, dto.Cid, dto.Song.Id, dto.Song.Type, dto.Song.Title, dto.Song.Duration, dto.Song.Author); dto.SetPatchableProperties(playlistItem); playlistItems.Add(playlistItem); } playlist.AddItems(playlistItems); PlaylistManager.Save(playlist); savedPlaylistDto = PlaylistDto.Create(playlist); transaction.Commit(); } return(savedPlaylistDto); }
public JsonDataContractActionResult CreateMultiple(List <PlaylistItemDto> playlistItemDtos) { List <PlaylistItem> playlistItems = PlaylistItem.Create(playlistItemDtos); // Split items into their respective playlists and then save on each. foreach (var playlistGrouping in playlistItems.GroupBy(i => i.Playlist)) { List <PlaylistItem> groupingItems = playlistGrouping.ToList(); Playlist playlist = groupingItems.First().Playlist; playlist.AddItems(groupingItems); PlaylistItemManager.Save(groupingItems); } List <PlaylistItemDto> savedPlaylistItemDtos = PlaylistItemDto.Create(playlistItems); return(new JsonDataContractActionResult(savedPlaylistItemDtos)); }