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; }
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); }