Exemple #1
0
        /// <summary>
        /// Converts a videodb_videodata object to VideoDbMovie object.
        /// Functions makes additional queries to fill owner name, mediatype name and genres.
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        private VideoDbMovie ConvertToVideoDbMovie(videodb_videodata source)
        {
            var converted = new VideoDbMovie
            {
                DigitalVideoFilePath = source.filename,
                DiskId      = source.diskid,
                Id          = source.id,
                ImgUrl      = source.imgurl,
                Length      = source.runtime.ToString(),
                Plot        = source.plot,
                Rating      = source.rating,
                SubTitle    = source.subtitle,
                Title       = source.title,
                OwnerId     = source.owner_id,
                MediaTypeId = source.mediatype
            };

            converted.Genres = _videoDbRepo.GetGenresForVideo(source.id).ToList();

            if (source.owner_id == _options.DeletedOwnerId && _options.IsDeletedOwnerVirtual)
            {
                converted.Owner = "Video has been marked as deleted (no owner).";
            }
            else
            {
                converted.Owner = _videoDbRepo.GetUserName(source.owner_id);
            }

            converted.MediaType = _videoDbRepo.GetMediaType(source.mediatype);

            return(converted);
        }
        public void InsertOrUpdateVideoDataTest()
        {
            var video = new videodb_videodata();

            video.title = "TestVideo";

            // plot was cut after 256 items, see https://github.com/viper3400/VideoDb/issues/1
            var plotBuilder = new StringBuilder();

            plotBuilder.Append("Lorem ipsum dolor sit amet, causae honestatis his eu. Justo quaeque gubergren at per, probo brute nihil vis no.");
            plotBuilder.Append("His id salutandi consectetuer. In qualisque incorrupte vis, iudico aliquip mei et, ei adolescens voluptaria duo. ");
            plotBuilder.Append("Atqui populo singulis cum at. In causae labores vivendo sea. In brute oporteat appellantur sed.");
            plotBuilder.Append("Cu odio error laboramus his, percipit iracundia argumentum eam te, ea tamquam utroque constituto mei. ");
            plotBuilder.Append("Odio albucius elaboraret ei est. Iudico possim nam ne, cu iusto efficiantur vix. ");
            plotBuilder.Append("Te eum simul albucius conclusionemque, et cum nulla eruditi intellegam. Impetus singulis no mel.");
            plotBuilder.Append("Usu quidam accumsan concludaturque an, pri dico inimicus.");
            video.plot     = plotBuilder.ToString();;
            video.owner_id = 3;

            IVideoDbRepository _videoDbRepository
                = new VideoDbRepository(VideoDbContextFactory.Create(connectionString));

            var id = _videoDbRepository.InsertOrUpdateVideo(video);

            Assert.True(id != 0);

            var actual = _videoDbRepository.GetVideoDataById(id);

            Assert.Equal("TestVideo", actual.title);
            Assert.Equal(plotBuilder.ToString(), actual.plot);
            Assert.Equal(3, actual.owner_id);

            video.title = "TestVideo (Updated)";
            var updatedId = _videoDbRepository.InsertOrUpdateVideo(video);

            Assert.Equal(id, updatedId);

            Assert.Equal("TestVideo (Updated)", actual.title);
            Assert.Equal(plotBuilder.ToString(), actual.plot);
            Assert.Equal(3, actual.owner_id);

            var deleted = _videoDbRepository.DeleteVideo(updatedId);

            Assert.True(deleted);

            var deletedVideo = _videoDbRepository.GetVideoDataById(updatedId);

            Assert.Null(deletedVideo);
        }
Exemple #3
0
        /// <summary>
        /// Creates a new record if the id of the given object is 0.
        /// Otherwise the record with the given id will be updated.
        /// </summary>
        /// <param name="Video"></param>
        /// <returns>Returns the id of the record.</returns>
        public int InsertOrUpdateVideo(videodb_videodata Video)
        {
            if (Video.id.Equals(0))
            {
                // if id is 0 we will create a new record
                Video.created    = DateTime.Now;
                Video.lastupdate = DateTime.Now;
                _dbContext.VideoData.Add(Video);
                _dbContext.SaveChanges();
            }
            else
            {
                // in this case an existing record may be modified
                Video.lastupdate = DateTime.Now;
                _dbContext.Entry(Video).State = EntityState.Modified;
                _dbContext.SaveChanges();
            }

            return(Video.id);
        }