コード例 #1
0
        public TvShowDetailsViewModel(Guid tvShowId)
        {
            _ctx = new MediaCatalogueEntities();


            _tvShow = (from media in _ctx.Media_Item
                       where media.id == tvShowId
                       select media).FirstOrDefault();

            Title       = _tvShow.Title;
            Description = _tvShow.Description;


            var segmentIds = from seg in _ctx.Media_Segment
                             where seg.Media_Item.id == tvShowId
                             orderby seg.SectionOffset
                             select seg.id;

            Segments = new ObservableCollection <TvShowSegment>();

            foreach (var seg in segmentIds)
            {
                Segments.Add(new TvShowSegment(seg));
            }
        }
コード例 #2
0
        protected override CommandResult Update()
        {
            if (_ctx == null)
            {
                _ctx = new MediaCatalogueEntities();
            }

            if (IsNew)
            {
                var tvSeries = (from series in _ctx.TV_Series
                                where series.id == SeriesId
                                select series).FirstOrDefault();

                _presenter = new TV_Presenter
                {
                    id        = this.ID,
                    TV_Series = tvSeries
                };
            }

            _presenter.Name = Name;

            try
            {
                _ctx.SaveChanges();
            }
            catch (Exception)
            {
                return(CommandResult.Failed);
            }

            return(CommandResult.Successful);
        }
コード例 #3
0
        public void UpdateMusicVideoItem(MusicVideoItem item)
        {
            var ent = new MediaCatalogueEntities();


            // Find existing Music_Track record
            var musicTrack = ent.Music_Track.Where(mt => mt.id == item.Id).FirstOrDefault();

            if (musicTrack == null)
            {
                musicTrack = new Music_Track();
                ent.AddToMusic_Track(musicTrack);
            }

            musicTrack.Duration = item.PlayLength;

            // Find/Create Media_Item record
            musicTrack.Media_ItemReference.Load();
            var mediaItem = musicTrack.Media_Item ?? new Media_Item();

            mediaItem.Title = item.Name;


            // Find/Create Artist record
            if (!string.IsNullOrEmpty(item.Artist))
            {
                var artist = ent.Music_Artist.Where(a => a.Name == item.Artist).FirstOrDefault();
            }
        }
コード例 #4
0
        public IEnumerable <MusicVideoItem> SearchVideoItems(string filter)
        {
            var ent = new MediaCatalogueEntities();
            IQueryable <Guid> mvs;

            if (string.IsNullOrEmpty(filter))
            {
                mvs = from mv in ent.Music_Track.Include("Media_Item").Include("Music_Artist")
                      select mv.id;
            }
            else
            {
                mvs = from mv in ent.Music_Track.Include("Media_Item").Include("Music_Artist")
                      where mv.Music_Artist.Name.Contains(filter) ||
                      mv.Media_Item.Title.Contains(filter)
                      select mv.id;
            }

            var result = new List <MusicVideoItem>();

            foreach (var id in mvs)
            {
                result.Add(GetMusicVideoItem(id));
            }

            return(result);
            //return mvs.Select(id => GetMusicVideoItem(id)).ToList();
        }
コード例 #5
0
        public TvSeriesDetailsViewModel(TV_Series series)
        {
            _ctx = new MediaCatalogueEntities();


            if (series != null)
            {
                _series = (from s in _ctx.TV_Series
                           where s.id == series.id
                           select s).FirstOrDefault();
            }

            if (_series == null)
            {
                _series = new TV_Series
                {
                    id          = Guid.NewGuid(),
                    Description = "New Series"
                };
                _ctx.AddToTV_Series(_series);
            }

            Description = _series.Description;
            ID          = _series.id;
        }
コード例 #6
0
        //public TvShowsViewModel()
        //{
        //    // Get the list of TV shows
        //    _ctx = new MediaCatalogueEntities();

        //    var tvShowType = MediaCatalogueHelper.GetTvShowType(_ctx);

        //    var showIds = from mediaItem in _ctx.Media_Item
        //                  where mediaItem.Media_Type.id == tvShowType.id
        //                  select mediaItem.id;


        //    //var shows = from mediaItem in _ctx.Media_Item.Include("Tv_SeriesMedia")
        //    //            where mediaItem.TV_SeriesMedia.Count > 0
        //    //            select mediaItem;

        //    foreach (var id in showIds)
        //    {
        //        TvShows.Add(new TvShowViewModel(id));
        //    }

        //}

        /// <summary>
        /// Creates a new instance of the TvShowsViewModel for a particular Series.
        /// </summary>
        /// <param name="seriesId"></param>
        public TvShowsViewModel(Guid seriesId)
        {
            _ctx = new MediaCatalogueEntities();

            SeriesID = seriesId;

            var tvShowType = MediaCatalogueHelper.GetTvShowType(_ctx);

            //var showIds = from mediaItem in _ctx.Media_Item
            //              where mediaItem.Media_Type.id == tvShowType.id
            //              select mediaItem.id;

            var showIds = from seriesMedia in _ctx.TV_SeriesMedia
                          .Include("Media_Item")
                          .Include("TV_Series")
                          where seriesMedia.TV_Series.id == SeriesID
                          select seriesMedia.Media_Item.id;


            //var shows = from mediaItem in _ctx.Media_Item.Include("Tv_SeriesMedia")
            //            where mediaItem.TV_SeriesMedia.Count > 0
            //            select mediaItem;

            TvShows = new ObservableCollection <TvShow>();

            foreach (var id in showIds)
            {
                TvShows.Add(new TvShow(id));
            }
        }
コード例 #7
0
        public IEnumerable <Artist> GetArtists()
        {
            var ent = new MediaCatalogueEntities();

            return(ent.Music_Artist.OrderBy(a => a.Name).Select(a => new Artist {
                Id = a.id, Name = a.Name
            }).ToList());
        }
コード例 #8
0
        public TvSeriesCategory(Guid categoryId)
        {
            _ctx = new MediaCatalogueEntities();

            _category = (from cat in _ctx.TV_SeriesCategory
                         where cat.id == categoryId
                         select cat).FirstOrDefault();
            ID          = _category.id;
            Title       = _category.Title;
            Description = _category.Description;
            IsDirty     = false;
        }
コード例 #9
0
        public TvSeriesPresenter(Guid presenterId)
        {
            _ctx = new MediaCatalogueEntities();

            _presenter = (from presenter in _ctx.TV_Presenter
                          where presenter.id == presenterId
                          select presenter).FirstOrDefault();

            ID      = _presenter.id;
            Name    = _presenter.Name;
            IsDirty = false;
        }
コード例 #10
0
ファイル: TvShow.cs プロジェクト: mathomps/Test-Import
        protected override CommandResult Update()
        {
            if (_ctx == null)
            {
                _ctx = new MediaCatalogueEntities();
            }

            if (_tvShow == null)
            {
                _tvShow    = new Media_Item();
                _tvShow.id = ID;
                _ctx.AddToMedia_Item(_tvShow);
            }

            // Update the various Entity objects with changes made and save them.
            _tvShow.Title       = Title;
            _tvShow.Description = Description;

            // Find/create a TV SeriesMedia link

            if (SeriesID != Guid.Empty)
            {
                if ((from seriesMedia in _ctx.TV_SeriesMedia
                     .Include("TV_Series")
                     .Include("Media_Item")
                     where seriesMedia.Media_Item.id == _tvShow.id &&
                     seriesMedia.TV_Series.id == SeriesID
                     select seriesMedia.id).Count() == 0)
                {
                    // No TV_SeriesMedia record exists yet - create one
                    var tvSeriesMedia = new TV_SeriesMedia
                    {
                        id         = Guid.NewGuid(),
                        Media_Item = _tvShow,
                    };

                    tvSeriesMedia.TV_Series = (from series in _ctx.TV_Series
                                               where series.id == SeriesID
                                               select series).FirstOrDefault();
                }
            }

            try
            {
                _ctx.SaveChanges();
            }
            catch (Exception)
            {
                return(CommandResult.Failed);
            }

            return(CommandResult.Successful);
        }
コード例 #11
0
        public TvSeriesListViewModel()
        {
            _ctx = new MediaCatalogueEntities();
            _seriesCollection = new ObservableCollection <TvSeriesDetailsViewModel>();

            var seriesColl = (from series in _ctx.TV_Series
                              orderby series.Description
                              select series);

            foreach (var series in seriesColl)
            {
                _seriesCollection.Add(new TvSeriesDetailsViewModel(series));
            }
            OnPropertyChanged("TvSeries");
        }
コード例 #12
0
        public MusicVideoItem GetMusicVideoItem(Guid id)
        {
            var ent = new MediaCatalogueEntities();
            var mv  = ent.Music_Track.Where(mt => mt.id == id).FirstOrDefault();

            if (mv == null)
            {
                return(null);
            }


            // A MusicTrack should have a linked Music_Artist, Music_Genre, and Media_Item
            // A Media_Item should have a linked Media_File

            mv.Media_ItemReference.Load();
            mv.Music_ArtistReference.Load();

            //mv.Media_Item.

            var result = new MusicVideoItem
            {
                Id         = mv.id,
                Name       = mv.Media_Item == null ? string.Empty : mv.Media_Item.Title,
                Artist     = mv.Music_Artist == null ? string.Empty : mv.Music_Artist.Name,
                PlayLength = mv.Duration.HasValue ? mv.Duration.Value : 0
            };

            // Get Media_File info
            if (mv.Media_Item != null)
            {
                mv.Media_Item.Media_FileReference.Load();
                var mediaFileInfo = mv.Media_Item.Media_File;
                if (mediaFileInfo != null)
                {
                    result.FileInfo = new MediaFileInfo
                    {
                        Filename     = mediaFileInfo.Filename,
                        ModifiedDate = mediaFileInfo.ModifiedDate,
                        Size         = mediaFileInfo.Size
                    };
                }
            }

            return(result);
        }
コード例 #13
0
        public TvShowSegment(Guid segmentId)
        {
            _ctx = new MediaCatalogueEntities();

            _segment = (from seg in _ctx.Media_Segment
                        .Include("Media_Item")
                        .Include("TV_Presenter")
                        .Include("TV_SeriesCategory")
                        where seg.id == segmentId
                        select seg).FirstOrDefault();

            ID = segmentId;

            if (_segment != null)
            {
                var seriesId = (from sm in _ctx.TV_SeriesMedia
                                where sm.Media_Item.id == _segment.Media_Item.id
                                select sm.TV_Series.id).FirstOrDefault();

                Presenters = MediaCatalogueHelper.GetTvSeriesPresenters(seriesId, _ctx);
                Categories = MediaCatalogueHelper.GetTvSeriesCategories(seriesId, _ctx);

                Title         = _segment.Title;
                Description   = _segment.Description;
                StartOffset   = _segment.SectionOffset;
                SectionLength = _segment.SectionLength;

                if (_segment.TV_Presenter != null)
                {
                    Presenter = (from pres in Presenters
                                 where pres.ID == _segment.TV_Presenter.id
                                 select pres).FirstOrDefault();
                }

                if (_segment.TV_SeriesCategory != null)
                {
                    Category = (from cat in Categories
                                where cat.ID == _segment.TV_SeriesCategory.id
                                select cat).FirstOrDefault();
                }
            }

            IsDirty = false;
        }
コード例 #14
0
        public TvSeriesPresentersViewModel(Guid tvSeriesId)
        {
            _ctx = new MediaCatalogueEntities();

            var presenterIds = from pres in _ctx.TV_Presenter
                               .Include("TV_Series")
                               where pres.TV_Series.id == tvSeriesId
                               orderby pres.Name
                               select pres.id;

            _tvSeriesId = tvSeriesId;

            Presenters = new ObservableCollection <TvSeriesPresenter>();

            foreach (var presenterId in presenterIds)
            {
                Presenters.Add(new TvSeriesPresenter(presenterId));
            }
        }
コード例 #15
0
        public static List <TvSeriesCategory> GetTvSeriesCategories(Guid tvSeriesId, MediaCatalogueEntities ctx)
        {
            var categoryIds = from category in ctx.TV_SeriesCategory
                              where category.TV_Series.id == tvSeriesId
                              orderby category.Title
                              select category.id;

            var categoriesList = new List <TvSeriesCategory>();

            foreach (var cId in categoryIds)
            {
                categoriesList.Add(new TvSeriesCategory(cId));
            }

            return(categoriesList);

            //return (from sc in ctx.TV_SeriesCategory
            //        where sc.TV_Series.id == tvSeriesId
            //        orderby sc.Title
            //        select sc).ToList();
        }
コード例 #16
0
        public TvSeriesCategoriesViewModel(Guid tvSeriesId)
        {
            var ctx = new MediaCatalogueEntities();

            _tvSeriesId = tvSeriesId;

            var categories = from cat in ctx.TV_SeriesCategory
                             .Include("TV_Series")
                             where cat.TV_Series.id == tvSeriesId
                             orderby cat.Title
                             select cat.id;

            var catList = new ObservableCollection <TvSeriesCategory>();

            foreach (var categ in categories)
            {
                catList.Add(new TvSeriesCategory(categ));
            }

            Categories = catList;
        }
コード例 #17
0
        public static TvShowSegment NewSegment(Guid tvShowId)
        {
            var ctx = new MediaCatalogueEntities();
            var seg = new TvShowSegment
            {
                ID          = Guid.NewGuid(),
                ParentID    = tvShowId,
                Title       = "new segment",
                Description = "enter a description for this segment."
            };

            var tvSeriesId = (from ser in ctx.TV_SeriesMedia
                              .Include("TV_Series")
                              where ser.Media_Item.id == tvShowId
                              select ser.TV_Series.id).FirstOrDefault();

            seg.Presenters = MediaCatalogueHelper.GetTvSeriesPresenters(tvSeriesId, ctx);
            seg.Categories = MediaCatalogueHelper.GetTvSeriesCategories(tvSeriesId, ctx);

            return(seg);
        }
コード例 #18
0
        protected override CommandResult Update()
        {
            if (_ctx == null)
            {
                _ctx = new MediaCatalogueEntities();
            }

            if (IsNew)
            {
                var tvSeries = (from series in _ctx.TV_Series
                                where series.id == SeriesID
                                select series).FirstOrDefault();

                // Note: Because we are attaching a Series to the SeriesCategory, the SeriesCategory
                // is automatically associated with the DataContext we are using - no need to manually add it.
                _category = new TV_SeriesCategory
                {
                    id        = this.ID,
                    TV_Series = tvSeries
                };
            }

            _category.Title       = Title;
            _category.Description = Description;

            try
            {
                _ctx.SaveChanges();
            }
            catch (Exception)
            {
                return(CommandResult.Failed);
            }

            return(CommandResult.Successful);
        }
コード例 #19
0
ファイル: TvShow.cs プロジェクト: mathomps/Test-Import
        /// <summary>
        /// Creates a new instance of the TvShowViewModel, loading the Media_Item entity
        /// with the specified id.
        /// </summary>
        /// <param name="id"></param>
        public TvShow(Guid id)
        {
            _ctx = new MediaCatalogueEntities();

            _tvShow = (from mi in _ctx.Media_Item
                       .Include("TV_SeriesMedia")
                       where mi.id == id
                       select mi).FirstOrDefault();

            if (_tvShow.TV_SeriesMedia != null)
            {
                var seriesMediaId = _tvShow.TV_SeriesMedia.FirstOrDefault().id;

                SeriesID = (from seriesMedia in _ctx.TV_SeriesMedia
                            .Include("TV_Series")
                            where seriesMedia.id == seriesMediaId
                            select seriesMedia.TV_Series.id).FirstOrDefault();
            }

            ID          = id;
            Title       = _tvShow.Title;
            Description = _tvShow.Description;
            IsDirty     = false;
        }
コード例 #20
0
        public static List <TvSeriesPresenter> GetTvSeriesPresenters(Guid tvSeriesId, MediaCatalogueEntities ctx)
        {
            var presenterIds = from presenter in ctx.TV_Presenter
                               where presenter.TV_Series.id == tvSeriesId
                               orderby presenter.Name
                               select presenter.id;
            var presentersList = new List <TvSeriesPresenter>();

            foreach (var pId in presenterIds)
            {
                presentersList.Add(new TvSeriesPresenter(pId));
            }

            return(presentersList);

            //return (from pres in ctx.TV_Presenter
            //        where pres.TV_Series.id == tvSeriesId
            //        orderby pres.Name
            //        select pres).ToList();
        }
コード例 #21
0
 public MusicImportViewModel()
 {
     _ctx = new MediaCatalogueEntities();
 }
コード例 #22
0
 public static Media_Type GetTvShowType(MediaCatalogueEntities ctx)
 {
     return((from mt in ctx.Media_Type
             where mt.id == _tvShowId
             select mt).FirstOrDefault());
 }
コード例 #23
0
        protected override CommandResult Update()
        {
            if (_ctx == null)
            {
                _ctx = new MediaCatalogueEntities();
            }

            if (IsNew)
            {
                _segment = new Media_Segment {
                    id = this.ID
                };
                _segment.Media_Item = (from media in _ctx.Media_Item
                                       where media.id == ParentID
                                       select media).FirstOrDefault();

                _ctx.AddToMedia_Segment(_segment);
            }

            _segment.Title         = this.Title;
            _segment.Description   = this.Description;
            _segment.SectionOffset = this.StartOffset;
            _segment.SectionLength = this.SectionLength;


            //var seg = (from segment in _ctx.Media_Segment
            //           where segment.id == ID
            //           select segment).FirstOrDefault();

            //if (seg == null)
            //{
            //    // Add as a new segment
            //    seg = new Media_Segment
            //    {
            //        id = ID,
            //        Title = this.Title,
            //        Description = this.Description,
            //        SectionOffset = this.StartOffset,
            //        SectionLength = this.SectionLength,
            //    };

            //    seg.Media_Item = (from media in _ctx.Media_Item
            //                      where media.id == ParentID
            //                      select media).FirstOrDefault();

            //    ctx.AddToMedia_Segment(seg);
            //}
            //else
            //{
            //    seg.Title = this.Title;
            //    seg.Description = this.Description;
            //    seg.SectionOffset = this.StartOffset;
            //    seg.SectionLength = this.SectionLength;
            //}


            // Update Presenter
            if (Presenter == null)
            {
                _segment.TV_Presenter = null;
            }
            else
            {
                _segment.TV_Presenter = (from pres in _ctx.TV_Presenter
                                         where pres.id == Presenter.ID
                                         select pres).FirstOrDefault();
            }

            // Update SeriesCategory
            if (Category == null)
            {
                _segment.TV_SeriesCategory = null;
            }
            else
            {
                _segment.TV_SeriesCategory = (from cat in _ctx.TV_SeriesCategory
                                              where cat.id == Category.ID
                                              select cat).FirstOrDefault();
            }


            try
            {
                _ctx.SaveChanges();
            }
            catch (Exception)
            {
                return(CommandResult.Failed);
            }

            return(CommandResult.Successful);
        }
コード例 #24
0
 public static Media_Type GetMusicVideoType(MediaCatalogueEntities ctx)
 {
     return((from mt in ctx.Media_Type
             where mt.id == _musicVideoClipId
             select mt).FirstOrDefault());
 }