Ejemplo n.º 1
0
        public void Update(Playlist playlist)
        {
            try
            {
                NHibernateSessionManager.Instance.BeginTransaction();
                playlist.ValidateAndThrow();

                Playlist knownPlaylist = PlaylistDao.Get(playlist.Id);

                if (knownPlaylist == null)
                {
                    PlaylistDao.Update(playlist);
                }
                else
                {
                    PlaylistDao.Merge(playlist);
                }

                NHibernateSessionManager.Instance.CommitTransaction();
            }
            catch (Exception exception)
            {
                Logger.Error(exception);
                NHibernateSessionManager.Instance.RollbackTransaction();
                throw;
            }
        }
Ejemplo n.º 2
0
        public void DeletePlaylist()
        {
            //  Create a new Playlist and write it to the database.
            string title    = string.Format("New Playlist {0:D4}", Folder.Playlists.Count);
            var    playlist = new Playlist(title);

            Folder.AddPlaylist(playlist);
            PlaylistManager.Save(playlist);

            //  Now delete the created Playlist and ensure it is removed.
            PlaylistManager.Delete(playlist.Id);

            //  Remove entity from NHibernate cache to force DB query to ensure actually created.
            NHibernateSessionManager.Instance.Clear();

            Playlist deletedPlaylist = PlaylistDao.Get(playlist.Id);

            bool objectNotFoundExceptionEncountered = false;

            try
            {
                //  Evaluating a lazyily-loaded entity which isn't in the database will throw an ONF exception.
                Assert.IsNull(deletedPlaylist);
            }
            catch (ObjectNotFoundException)
            {
                objectNotFoundExceptionEncountered = true;
            }

            Assert.IsTrue(objectNotFoundExceptionEncountered);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Copy a playlist. Useful for sharing.
        /// </summary>
        /// <param name="id">The playlist ID to copy</param>
        /// <returns>A new playlist with a new ID which has been saved.</returns>
        public Playlist CopyAndSave(Guid id)
        {
            Playlist copiedPlaylist;

            try
            {
                Playlist playlistToCopy = PlaylistDao.Get(id);

                if (playlistToCopy == null)
                {
                    string errorMessage = string.Format("No playlist found with id: {0}", id);
                    throw new ApplicationException(errorMessage);
                }

                copiedPlaylist = new Playlist(playlistToCopy);
                DoSave(copiedPlaylist);
            }
            catch (Exception exception)
            {
                Logger.Error(exception);
                throw;
            }

            return(copiedPlaylist);
        }
Ejemplo n.º 4
0
        public void DeletePlaylist()
        {
            //  Create a new Playlist and write it to the database.
            string title    = string.Format("New Playlist {0:D4}", User.Playlists.Count);
            var    playlist = new Playlist(title);

            User.AddPlaylist(playlist);

            NHibernateSessionManager.Instance.OpenSessionAndBeginTransaction();
            PlaylistManager.Save(playlist);
            NHibernateSessionManager.Instance.CommitTransactionAndCloseSession();

            NHibernateSessionManager.Instance.OpenSessionAndBeginTransaction();
            //  Now delete the created Playlist and ensure it is removed.
            PlaylistManager.Delete(playlist.Id);
            NHibernateSessionManager.Instance.CommitTransactionAndCloseSession();

            NHibernateSessionManager.Instance.OpenSessionAndBeginTransaction();
            Playlist deletedPlaylist = PlaylistDao.Get(playlist.Id);

            bool objectNotFoundExceptionEncountered = false;

            try
            {
                //  Evaluating a lazyily-loaded entity which isn't in the database will throw an ONF exception.
                Assert.IsNull(deletedPlaylist);
            }
            catch (ObjectNotFoundException)
            {
                objectNotFoundExceptionEncountered = true;
            }

            Assert.IsTrue(objectNotFoundExceptionEncountered);
            NHibernateSessionManager.Instance.CommitTransactionAndCloseSession();
        }
Ejemplo n.º 5
0
        public ShareCode GetShareCode(ShareableEntityType entityType, Guid entityId)
        {
            //  TODO: Support sharing other entities.
            if (entityType != ShareableEntityType.Playlist)
            {
                throw new NotSupportedException("Only Playlist entityType can be shared currently.");
            }

            ShareCode shareCode;

            try
            {
                Playlist playlistToCopy = PlaylistDao.Get(entityId);

                if (playlistToCopy == null)
                {
                    string errorMessage = string.Format("No playlist found with id: {0}", entityId);
                    throw new ApplicationException(errorMessage);
                }

                var shareablePlaylistCopy = new Playlist(playlistToCopy);
                PlaylistManager.Save(shareablePlaylistCopy);

                shareCode = new ShareCode(shareablePlaylistCopy);
                Save(shareCode);
            }
            catch (Exception exception)
            {
                Logger.Error(exception);
                throw;
            }

            return(shareCode);
        }
Ejemplo n.º 6
0
 public void Delete(Guid id)
 {
     try
     {
         Playlist playlist = PlaylistDao.Get(id);
         playlist.User.RemovePlaylist(playlist);
         PlaylistDao.Delete(playlist);
     }
     catch (Exception exception)
     {
         Logger.Error(exception);
         throw;
     }
 }
Ejemplo n.º 7
0
 public void UpdateTitle(Guid playlistId, string title)
 {
     try
     {
         Playlist playlist = PlaylistDao.Get(playlistId);
         playlist.Title = title;
         PlaylistDao.Update(playlist);
     }
     catch (Exception exception)
     {
         Logger.Error(exception);
         throw;
     }
 }
Ejemplo n.º 8
0
        public void ReturnCorrectPlaylistIdFromPlayloistName(string expect, string name)
        {
            //arragne
            var conn = SQliteConnectionHelper.CreateMemoryPlaylistTable();

            conn.InsertTestData("insert into playlist values ('1','first')");
            conn.InsertTestData("insert into playlist values ('2','second')");
            var service = new PlaylistDao(conn);

            //assert
            var id = service.GetPlaylistIdFromName(name);

            Assert.AreEqual(expect, id);
        }
Ejemplo n.º 9
0
        public void AddItem_NoItemsInPlaylist_FirstItemIdSet()
        {
            Playlist playlist = Folder.CreateAndAddPlaylist();

            PlaylistManager.Save(playlist);

            PlaylistItem playlistItem = Helpers.CreateItemInPlaylist(playlist);

            //  Remove entity from NHibernate cache to force DB query to ensure actually created.
            NHibernateSessionManager.Instance.Clear();

            Playlist playlistFromDatabase = PlaylistDao.Get(playlist.Id);

            Assert.AreEqual(playlistFromDatabase.FirstItem, playlistItem);
        }
Ejemplo n.º 10
0
        public Playlist Get(Guid id)
        {
            Playlist playlist;

            try
            {
                playlist = PlaylistDao.Get(id);
            }
            catch (Exception exception)
            {
                Logger.Error(exception);
                throw;
            }

            return(playlist);
        }
Ejemplo n.º 11
0
        public IEnumerable <PlaylistDto> GetAllPlaylist()
        {
            var data = new PlaylistDao().GetAllPlaylist().Select(s => new PlaylistDto
            {
                ID                  = s.ID,
                PlaylistName        = s.PlaylistName,
                PlaylistDescription = s.PlaylistDescription,
                PlaylistImage       = s.PlaylistImage,
                CateID              = s.CateID,
                UserID              = s.UserID,
                CategoryDto         = new CategoryBus().GetCateById(s.CateID ?? 0),
                UserDto             = new UserBus().GetUserDtoById(s.UserID),
            });

            return(data);
        }
Ejemplo n.º 12
0
        /// <summary>
        ///     This is the work for saving a PlaylistItem without the Transaction wrapper.
        /// </summary>
        private void DoSave(Playlist playlist)
        {
            foreach (PlaylistItem playlistItem in playlist.Items)
            {
                //  This is a bit of a hack, but NHibernate pays attention to the "dirtyness" of immutable entities.
                //  As such, if two PlaylistItems reference the same Video object -- NonUniqueObjectException is thrown even though no changes
                //  can be persisted to the database.
                playlistItem.Video = VideoDao.Merge(playlistItem.Video);

                playlistItem.ValidateAndThrow();
                playlistItem.Video.ValidateAndThrow();
            }

            playlist.ValidateAndThrow();
            PlaylistDao.Save(playlist);
        }
Ejemplo n.º 13
0
        public IEnumerable <PlaylistDto> GetPlaylistByIdUser(int id)
        {
            var data = new PlaylistDao().GetPlaylistByIdUser(id).Select(s => new PlaylistDto
            {
                ID                  = s.ID,
                PlaylistName        = s.PlaylistName,
                PlaylistDescription = s.PlaylistDescription,
                PlaylistImage       = s.PlaylistImage,
                LinkImage           = baseUrl + s.PlaylistImage,
                CateID              = s.CateID,
                UserID              = s.UserID,
                UserDto             = new UserBus().GetUserById(s.UserID),
            });

            return(data);
        }
Ejemplo n.º 14
0
        public PlaylistDto GetPlaylistByCate(int id)
        {
            var data = new PlaylistDao().GetPlaylistByCate(id);

            return(new PlaylistDto
            {
                ID = data.ID,
                PlaylistName = data.PlaylistName,
                PlaylistDescription = data.PlaylistDescription,
                PlaylistImage = data.PlaylistImage,
                CateID = data.CateID,
                UserID = data.UserID,
                LinkImage = baseUrl + data.PlaylistImage,
                CategoryDto = new CategoryBus().GetCateById(data.CateID ?? 0),
            });
        }
Ejemplo n.º 15
0
        public void ReturnAllPlaylistNamesReturnCorrect()
        {
            //Arrange
            var conn = SQliteConnectionHelper.CreateMemoryPlaylistTable();

            conn.InsertTestData("insert into playlist values (1,'first')");
            conn.InsertTestData("insert into playlist values (2,'second')");
            var service = new PlaylistDao(conn);

            //act
            var playlistNames = service.NameOfAllPlaylists();

            //assert
            Assert.AreEqual("first", playlistNames[0]);
            Assert.AreEqual("second", playlistNames[1]);
        }
Ejemplo n.º 16
0
        public void Updates()
        {
            Playlist playlist = Folder.CreateAndAddPlaylist();

            PlaylistManager.Save(playlist);

            PlaylistManager.UpdateTitle(playlist.Id, "Existing Playlist 001");

            //  Remove entity from NHibernate cache to force DB query to ensure actually created.
            NHibernateSessionManager.Instance.Clear();

            Playlist playlistFromDatabase = PlaylistDao.Get(playlist.Id);

            //  Test that the product was successfully inserted
            Assert.IsNotNull(playlistFromDatabase);
            Assert.AreEqual(playlist.Title, playlistFromDatabase.Title);
        }
Ejemplo n.º 17
0
 public void UpdateFirstItem(Guid playlistId, Guid firstItemId)
 {
     try
     {
         NHibernateSessionManager.Instance.BeginTransaction();
         Playlist playlist = PlaylistDao.Get(playlistId);
         playlist.FirstItem = PlaylistItemDao.Get(firstItemId);
         PlaylistDao.Update(playlist);
         NHibernateSessionManager.Instance.CommitTransaction();
     }
     catch (Exception exception)
     {
         Logger.Error(exception);
         NHibernateSessionManager.Instance.RollbackTransaction();
         throw;
     }
 }
Ejemplo n.º 18
0
 public void UpdateTitle(Guid playlistId, string title)
 {
     try
     {
         NHibernateSessionManager.Instance.BeginTransaction();
         Playlist playlist = PlaylistDao.Get(playlistId);
         playlist.Title = title;
         PlaylistDao.Update(playlist);
         NHibernateSessionManager.Instance.CommitTransaction();
     }
     catch (Exception exception)
     {
         Logger.Error(exception);
         NHibernateSessionManager.Instance.RollbackTransaction();
         throw;
     }
 }
Ejemplo n.º 19
0
        public void Delete(Guid id)
        {
            try
            {
                NHibernateSessionManager.Instance.BeginTransaction();

                Playlist playlist = PlaylistDao.Get(id);
                playlist.Folder.RemovePlaylist(playlist);
                PlaylistDao.Delete(playlist);

                NHibernateSessionManager.Instance.CommitTransaction();
            }
            catch (Exception exception)
            {
                Logger.Error(exception);
                NHibernateSessionManager.Instance.RollbackTransaction();
                throw;
            }
        }
Ejemplo n.º 20
0
 public bool CreatePlaylist(PlaylistDto playlistDTO)
 {
     try
     {
         var data = new PlaylistDao().CreatePlaylist(new Playlist()
         {
             PlaylistName        = playlistDTO.PlaylistName,
             UserID              = playlistDTO.UserID,
             CateID              = playlistDTO.CateID,
             PlaylistImage       = playlistDTO.PlaylistImage,
             PlaylistDescription = playlistDTO.PlaylistDescription
         });
         return(true);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         return(false);
     }
 }
Ejemplo n.º 21
0
        public void Updates()
        {
            Playlist playlist = User.CreateAndAddPlaylist();

            NHibernateSessionManager.Instance.OpenSessionAndBeginTransaction();
            PlaylistManager.Save(playlist);
            NHibernateSessionManager.Instance.CommitTransactionAndCloseSession();

            NHibernateSessionManager.Instance.OpenSessionAndBeginTransaction();
            PlaylistManager.UpdateTitle(playlist.Id, "Existing Playlist 001");
            NHibernateSessionManager.Instance.CommitTransactionAndCloseSession();

            NHibernateSessionManager.Instance.OpenSessionAndBeginTransaction();
            Playlist playlistFromDatabase = PlaylistDao.Get(playlist.Id);

            //  Test that the product was successfully inserted
            Assert.IsNotNull(playlistFromDatabase);
            //  Sessions should be isolated -- before and after should be different here.
            Assert.AreNotEqual(playlist.Title, playlistFromDatabase.Title);
            NHibernateSessionManager.Instance.CommitTransactionAndCloseSession();
        }
Ejemplo n.º 22
0
        public void Update(Playlist playlist)
        {
            try
            {
                playlist.ValidateAndThrow();

                Playlist knownPlaylist = PlaylistDao.Get(playlist.Id);

                if (knownPlaylist == null)
                {
                    PlaylistDao.Update(playlist);
                }
                else
                {
                    PlaylistDao.Merge(playlist);
                }
            }
            catch (Exception exception)
            {
                Logger.Error(exception);
                throw;
            }
        }
Ejemplo n.º 23
0
 public List <PlaylistDto> GetPlaylistByIdCate(int id)
 {
     try
     {
         var data = new PlaylistDao().GetPlaylistByIdCate(id).Select(s => new PlaylistDto
         {
             ID                  = s.ID,
             PlaylistName        = s.PlaylistName,
             PlaylistDescription = s.PlaylistDescription,
             PlaylistImage       = s.PlaylistImage,
             CateID              = s.CateID,
             UserID              = s.UserID,
             LinkImage           = baseUrl + s.PlaylistImage,
             UserDto             = new UserBus().GetUserDtoById(s.UserID),
             CategoryDto         = new CategoryBus().GetCateById(s.CateID ?? 0),
         }).ToList();
         return(data);
     }
     catch (Exception)
     {
         return(null);
     }
 }
Ejemplo n.º 24
0
        public void Update(Playlist playlist)
        {
            try
            {
                playlist.ValidateAndThrow();

                //  TODO: Is this necessary still? Seems odd to me.
                Playlist knownPlaylist = PlaylistDao.Get(playlist.Id);

                if (knownPlaylist == null)
                {
                    PlaylistDao.Update(playlist);
                }
                else
                {
                    PlaylistDao.Merge(playlist);
                }
            }
            catch (Exception exception)
            {
                Logger.Error(exception);
                throw;
            }
        }