public static IPlaybillItem ToPlaybillItem(this PlaybillItemEntity entity) { MediaSourceEntity sourceEntity = entity.MediaSource; IMediaSource mediaSource = null; if (sourceEntity == null) { mediaSource = new NullMediaSource(entity.MediaSourceTitle, TimeSpan.FromSeconds(entity.MediaSourceDuration.Value)); } else { mediaSource = entity.MediaSource.ToMediaSource(entity); // FromEntity(entity, entity.MediaSource); } IPlaySource playSource = Create(entity, mediaSource); IPlaybillItem result = null; switch (entity.ScheduleMode) { case PlayScheduleMode.Auto: result = PlaybillItem.Auto(playSource); break; case PlayScheduleMode.Timing: result = PlaybillItem.Timing(playSource, entity.StartTime.Value); break; case PlayScheduleMode.TimingBreak: result = PlaybillItem.TimingBreak(playSource, entity.StartTime.Value); break; } result.Id = entity.Id; return(result); }
private void AddPlayItem(MediaItem mediaItem, PlayScheduleMode scheduleMode, DateTime?startTime) { PlaylistBuilder builder = CreateBuilder(); PlaybillItem billItem = null; try { switch (scheduleMode) { case PlayScheduleMode.Timing: billItem = PlaybillItem.Timing(mediaItem, startTime.Value); builder.AddTimingItem((TimingPlaybillItem)billItem); break; case PlayScheduleMode.Auto: billItem = PlaybillItem.Auto(mediaItem); builder.AddAutoItem(new AutoPlayItem(billItem), this.SelectedPlayItem != null ? this.SelectedPlayItem.PlayItem : null); break; case PlayScheduleMode.TimingBreak: billItem = PlaybillItem.TimingBreak(mediaItem, startTime.Value); builder.AddTimingBreakItem((TimingPlaybillItem)billItem); break; } Rebuild(builder); } catch (Exception ex) { //editor.Rollback(); OnError(ex); } }
private void AddPlayItem(MediaItem mediaItem, PlayScheduleMode scheduleMode, DateTime?startTime) { using (var editor = this.Edit()) { try { PlaybillItem billItem = null; switch (scheduleMode) { case PlayScheduleMode.Timing: billItem = PlaybillItem.Timing(mediaItem, startTime.Value); editor.AddTiming((TimingPlaybillItem)billItem); break; case PlayScheduleMode.Auto: billItem = PlaybillItem.Auto(mediaItem); if (this.SelectedPlayItem != null) { editor.AddAuto(this.SelectedPlayItem.PlayItem, new AutoPlayItem(billItem)); } else { editor.AddAuto(new AutoPlayItem(billItem)); } break; case PlayScheduleMode.TimingBreak: billItem = PlaybillItem.TimingBreak(mediaItem, startTime.Value); editor.AddTiming((TimingPlaybillItem)billItem); break; } } catch (Exception ex) { editor.Rollback(); RaiseDisplayMessageInteractionRequest("错误", ex.Message); } } }