public MediaDirectoryViewmodel(IMediaDirectory directory, string directoryName, bool includeImport = false, bool includeExport = false)
 {
     Directory      = directory;
     DirectoryName  = directoryName;
     SubDirectories = (directory as IIngestDirectory)?.SubDirectories?.Where(d => includeImport && d.ContainsImport() || includeExport && d.ContainsExport())
                      .Select(d => new MediaDirectoryViewmodel((IIngestDirectory)d, d.DirectoryName, includeImport, includeExport)).ToList() ?? new List <MediaDirectoryViewmodel>();
 }
Example #2
0
        public MediaSearchViewmodel(IPreview preview, IEngine engine, TMediaType mediaType, VideoLayer layer,
                                    bool closeAfterAdd, VideoFormatDescription videoFormatDescription)
        {
            _engine = engine;
            Layer   = layer;
            if (mediaType == TMediaType.Movie)
            {
                _videoFormatDescription = engine.FormatDescription;
                if (preview != null)
                {
                    PreviewViewmodel = new PreviewViewmodel(engine, preview)
                    {
                        IsSegmentsVisible = true
                    }
                }
                ;
            }
            else
            {
                _videoFormatDescription = videoFormatDescription;
            }
            _mediaType = mediaType;
            if (PreviewViewmodel != null)
            {
                PreviewViewmodel.PropertyChanged += _onPreviewViewModelPropertyChanged;
            }
            IMediaDirectory pri = mediaType == TMediaType.Animation
                ? (IMediaDirectory)engine.MediaManager.AnimationDirectoryPRI
                : engine.MediaManager.MediaDirectoryPRI;
            IMediaDirectory sec = mediaType == TMediaType.Animation
                ? (IMediaDirectory)engine.MediaManager.AnimationDirectorySEC
                : engine.MediaManager.MediaDirectorySEC;

            _searchDirectory = pri != null && pri.DirectoryExists()
                ? pri
                : sec != null && sec.DirectoryExists()
                    ? sec
                    : null;
            if (_searchDirectory != null)
            {
                _searchDirectory.MediaAdded    += _searchDirectory_MediaAdded;
                _searchDirectory.MediaRemoved  += _searchDirectory_MediaRemoved;
                _searchDirectory.MediaVerified += _searchDirectory_MediaVerified;
            }
            _mediaCategory    = MediaCategories.FirstOrDefault();
            NewEventStartType = TStartType.After;
            if (!closeAfterAdd)
            {
                OkButtonText = resources._button_Add;
            }
            _createCommands();
            Items = new ObservableCollection <MediaViewViewmodel>(_searchDirectory.GetFiles()
                                                                  .Where(m => _canAddMediaToCollection(m, mediaType))
                                                                  .Select(m => new MediaViewViewmodel(m)));
            _itemsView = CollectionViewSource.GetDefaultView(Items);
            _itemsView.SortDescriptions.Add(mediaType == TMediaType.Movie
                ? new SortDescription(nameof(MediaViewViewmodel.LastUpdated), ListSortDirection.Descending)
                : new SortDescription(nameof(MediaViewViewmodel.MediaName), ListSortDirection.Ascending));
            _itemsView.Filter += _itemsFilter;
        }
        public MediaSearchViewmodel(IPreview preview, IMediaManager manager, TMediaType mediaType, VideoLayer layer, bool closeAfterAdd, VideoFormatDescription videoFormatDescription)
        {
            _manager = manager;
            _engine  = manager.Engine;
            Layer    = layer;
            if (mediaType == TMediaType.Movie)
            {
                _videoFormatDescription = manager.FormatDescription;
                _frameRate = _videoFormatDescription.FrameRate;
                if (preview != null)
                {
                    _previewViewmodel = new PreviewViewmodel(preview)
                    {
                        IsSegmentsVisible = true
                    }
                }
                ;
                WindowWidth = _previewViewmodel != null ? 950 : 650;
            }
            else
            {
                _videoFormatDescription = videoFormatDescription;
                _frameRate  = videoFormatDescription?.FrameRate;
                WindowWidth = 750;
            }
            _mediaType = mediaType;
            if (_previewViewmodel != null)
            {
                _previewViewmodel.PropertyChanged += _onPreviewViewModelPropertyChanged;
            }
            IMediaDirectory pri = mediaType == TMediaType.Animation ? (IMediaDirectory)_manager.AnimationDirectoryPRI : _manager.MediaDirectoryPRI;
            IMediaDirectory sec = mediaType == TMediaType.Animation ? (IMediaDirectory)_manager.AnimationDirectorySEC : _manager.MediaDirectorySEC;

            _searchDirectory                = pri != null && pri.DirectoryExists() ? pri : sec != null && sec.DirectoryExists() ? sec : null;
            _searchDirectory.MediaAdded    += _searchDirectory_MediaAdded;
            _searchDirectory.MediaRemoved  += _searchDirectory_MediaRemoved;
            _searchDirectory.MediaVerified += _searchDirectory_MediaVerified;

            _closeAfterAdd    = closeAfterAdd;
            _mediaCategory    = MediaCategories.FirstOrDefault();
            NewEventStartType = TStartType.After;
            if (!closeAfterAdd)
            {
                OkButtonText = resources._button_Add;
            }
            _createCommands();
            _items = new ObservableCollection <MediaViewViewmodel>(_searchDirectory.GetFiles()
                                                                   .Where(m => _canAddMediaToCollection(m, mediaType))
                                                                   .Select(m => new MediaViewViewmodel(m)));
            _itemsView = CollectionViewSource.GetDefaultView(_items);
            _itemsView.SortDescriptions.Add(new SortDescription(nameof(MediaViewViewmodel.MediaName), ListSortDirection.Ascending));
            _itemsView.Filter += _itemsFilter;
            _view              = new MediaSearchView()
            {
                DataContext = this
            };
            _view.Closed += _windowClosed;
            _view.Show();
        }
        public void Initialize()
        {
            Debug.WriteLine(this, "Begin initializing");
            Logger.Debug("Begin initializing");
            ArchiveDirectory      = this.LoadArchiveDirectory <ArchiveDirectory>(_engine.IdArchive);
            MediaDirectoryPRI     = (_engine.PlayoutChannelPRI == null) ? null : ((CasparServerChannel)_engine.PlayoutChannelPRI).Owner.MediaDirectory;
            MediaDirectorySEC     = (_engine.PlayoutChannelSEC == null) ? null : ((CasparServerChannel)_engine.PlayoutChannelSEC).Owner.MediaDirectory;
            MediaDirectoryPRV     = (_engine.PlayoutChannelPRV == null) ? null : ((CasparServerChannel)_engine.PlayoutChannelPRV).Owner.MediaDirectory;
            AnimationDirectoryPRI = (_engine.PlayoutChannelPRI == null) ? null : ((CasparServerChannel)_engine.PlayoutChannelPRI).Owner.AnimationDirectory;
            AnimationDirectorySEC = (_engine.PlayoutChannelSEC == null) ? null : ((CasparServerChannel)_engine.PlayoutChannelSEC).Owner.AnimationDirectory;
            AnimationDirectoryPRV = (_engine.PlayoutChannelPRV == null) ? null : ((CasparServerChannel)_engine.PlayoutChannelPRV).Owner.AnimationDirectory;
            IMediaDirectory[] initializationList = new IMediaDirectory[] { MediaDirectoryPRI, MediaDirectorySEC, MediaDirectoryPRV, AnimationDirectoryPRI, AnimationDirectorySEC, AnimationDirectoryPRV, ArchiveDirectory };
            foreach (MediaDirectory dir in initializationList.OfType <IMediaDirectory>().Distinct())
            {
                dir.Initialize();
            }
            if (ArchiveDirectory != null)
            {
                ArchiveDirectory.MediaDeleted += ArchiveDirectory_MediaDeleted;
            }

            ServerDirectory sdir = MediaDirectoryPRI as ServerDirectory;

            if (sdir != null)
            {
                sdir.MediaPropertyChanged += _serverMediaPropertyChanged;
                sdir.PropertyChanged      += _onServerDirectoryPropertyChanged;
                sdir.MediaSaved           += _onServerDirectoryMediaSaved;
                sdir.MediaVerified        += _mediaPRIVerified;
                sdir.MediaRemoved         += _mediaPRIRemoved;
            }
            sdir = MediaDirectorySEC as ServerDirectory;
            if (MediaDirectoryPRI != MediaDirectorySEC && sdir != null)
            {
                sdir.MediaPropertyChanged += _serverMediaPropertyChanged;
                sdir.PropertyChanged      += _onServerDirectoryPropertyChanged;
            }
            AnimationDirectory adir = AnimationDirectoryPRI as AnimationDirectory;

            if (adir != null)
            {
                adir.PropertyChanged      += _onAnimationDirectoryPropertyChanged;
                adir.MediaAdded           += _onAnimationDirectoryMediaAdded;
                adir.MediaRemoved         += _onAnimationDirectoryMediaRemoved;
                adir.MediaPropertyChanged += _onAnimationDirectoryMediaPropertyChanged;
            }
            adir = AnimationDirectorySEC as AnimationDirectory;
            if (adir != null)
            {
                adir.PropertyChanged += _onAnimationDirectoryPropertyChanged;
            }

            _loadIngestDirs(Path.Combine(Directory.GetCurrentDirectory(), ConfigurationManager.AppSettings["IngestFolders"]));
            _fileManager.VolumeReferenceLoudness = Convert.ToDecimal(_engine.VolumeReferenceLoudness);

            Debug.WriteLine(this, "End initializing");
            Logger.Debug("End initializing");
        }
        private void _ingestSelectionToDir(IServerDirectory directory)
        {
            IMediaDirectory currentDir = _selectedDirectory?.Directory;

            if (currentDir is IIngestDirectory)
            {
                List <IConvertOperation> ingestList = new List <IConvertOperation>();
                var selectedMedia = _getSelections();
                ThreadPool.QueueUserWorkItem(o =>
                {
                    selectedMedia.ForEach(m =>
                    {
                        if (!m.IsVerified)
                        {
                            m.Verify();
                        }
                    });
                });
                foreach (IMedia sourceMedia in selectedMedia)
                {
                    string destFileName = FileUtils.GetUniqueFileName(directory.Folder, $"{Path.GetFileNameWithoutExtension(sourceMedia.FileName)}{FileUtils.DefaultFileExtension(sourceMedia.MediaType)}");
                    IPersistentMediaProperties destMediaProperties = new PersistentMediaProxy {
                        FileName      = destFileName,
                        MediaName     = FileUtils.GetFileNameWithoutExtension(sourceMedia.FileName, sourceMedia.MediaType),
                        MediaType     = sourceMedia.MediaType == TMediaType.Unknown ? TMediaType.Movie : sourceMedia.MediaType,
                        Duration      = sourceMedia.Duration,
                        DurationPlay  = sourceMedia.DurationPlay,
                        MediaGuid     = sourceMedia.MediaGuid,
                        MediaCategory = sourceMedia.MediaCategory
                    };
                    ingestList.Add(
                        FileManagerViewmodel.CreateConvertOperation(
                            sourceMedia,
                            destMediaProperties,
                            directory,
                            _mediaManager.VideoFormat,
                            (sourceMedia.Directory is IIngestDirectory) ? ((IIngestDirectory)sourceMedia.Directory).AudioVolume : 0,
                            (sourceMedia.Directory is IIngestDirectory) ? ((IIngestDirectory)sourceMedia.Directory).SourceFieldOrder : TFieldOrder.Unknown,
                            (sourceMedia.Directory is IIngestDirectory) ? ((IIngestDirectory)sourceMedia.Directory).AspectConversion : TAspectConversion.NoConversion,
                            (sourceMedia.Directory is IIngestDirectory) ? ((IIngestDirectory)sourceMedia.Directory).MediaLoudnessCheckAfterIngest : false
                            ));
                }
                if (ingestList.Count != 0)
                {
                    using (IngestEditViewmodel ievm = new IngestEditViewmodel(ingestList, _preview, _mediaManager))
                    {
                        if (ievm.ShowDialog() == true)
                        {
                            foreach (var operationVm in ievm.OperationList)
                            {
                                _mediaManager.FileManager.Queue(operationVm.FileOperation, false);
                            }
                        }
                    }
                }
            }
        }
 public MediaDirectoryViewmodel(IMediaDirectory directory, bool includeImport = false, bool includeExport = false)
 {
     _directory      = directory;
     _subdirectories = (directory as IIngestDirectory)?.SubDirectories != null
         ? ((IIngestDirectory)directory)
                       .SubDirectories
                       .Where(d => (includeImport && d.ContainsImport()) || (includeExport && d.ContainsExport()))
                       .Select(d => new MediaDirectoryViewmodel((IIngestDirectory)d, includeImport, includeExport)).ToList()
         : new List <MediaDirectoryViewmodel>();
 }
Example #7
0
        private void _archiveCopy(Media fromMedia, IMediaDirectory destDirectory, bool deleteAfterSuccess, bool toTop)
        {
            FileOperation operation = new FileOperation {
                Kind = deleteAfterSuccess ? TFileOperationKind.Move : TFileOperationKind.Copy, SourceMedia = fromMedia, DestDirectory = destDirectory
            };

            operation.Success += _archived;
            operation.Failure += _failure;
            MediaManager.FileManager.Queue(operation, toTop);
        }
Example #8
0
        private void _archiveCopy(IMedia fromMedia, IMediaDirectory destDirectory, bool deleteAfterSuccess)
        {
            var operation = new FileOperation((FileManager)MediaManager.FileManager)
            {
                Kind = deleteAfterSuccess ? TFileOperationKind.Move : TFileOperationKind.Copy, Source = fromMedia, DestDirectory = destDirectory
            };

            operation.Success += _archiveCopy_success;
            operation.Failure += _archiveCopy_failure;
            MediaManager.FileManager.Queue(operation);
        }
Example #9
0
        private void _archiveCopy(IMedia fromMedia, IMediaDirectory destDirectory, bool deleteAfterSuccess)
        {
            var operation = deleteAfterSuccess
                ? (FileOperationBase) new MoveOperation {
                Source = fromMedia, DestDirectory = destDirectory
            }
                : new CopyOperation {
                Source = fromMedia, DestDirectory = destDirectory
            };

            operation.Success += _archiveCopy_success;
            operation.Failure += _archiveCopy_failure;
            FileManager.Current.Queue(operation);
        }
        private void _setSelectdDirectory(MediaDirectoryViewmodel directory)
        {
            IMediaDirectory dir = _selectedDirectory?.Directory;

            if (dir != null)
            {
                dir.MediaAdded      -= _selectedDirectoryMediaAdded;
                dir.MediaRemoved    -= _selectedDirectoryMediaRemoved;
                dir.PropertyChanged -= _selectedDirectoryPropertyChanged;
            }
            dir = directory?.Directory;
            _selectedDirectory = directory;
            if (dir != null)
            {
                dir.MediaAdded      += _selectedDirectoryMediaAdded;
                dir.MediaRemoved    += _selectedDirectoryMediaRemoved;
                dir.PropertyChanged += _selectedDirectoryPropertyChanged;
                if (dir is IArchiveDirectory)
                {
                    if (!string.IsNullOrEmpty((dir as IArchiveDirectory).SearchString))
                    {
                        SearchText = (dir as IArchiveDirectory).SearchString;
                    }
                }
            }
            PreviewDisplay = PreviewViewmodel != null &&
                             dir != null &&
                             (!(dir is IIngestDirectory) || (dir as IIngestDirectory).AccessType == TDirectoryAccessType.Direct);
            if (PreviewViewmodel != null)
            {
                PreviewViewmodel.IsSegmentsVisible = dir is IServerDirectory || dir is IArchiveDirectory;
            }
            _reloadFiles(directory);
            SelectedMedia = null;
            NotifyPropertyChanged(nameof(SelectedDirectory));
            NotifyPropertyChanged(nameof(DisplayDirectoryInfo));
            NotifyPropertyChanged(nameof(IsDisplayFolder));
            NotifyPropertyChanged(nameof(IsServerDirectory));
            NotifyPropertyChanged(nameof(IsMediaCategoryVisible));
            NotifyPropertyChanged(nameof(IsIngestOrArchiveDirectory));
            NotifyPropertyChanged(nameof(IsAnimationDirectory));
            NotifyPropertyChanged(nameof(IsDisplayClipNr));
            InvalidateRequerySuggested();
            _notifyDirectoryPropertiesChanged();
        }
Example #11
0
        private string ValidateDestFileName()
        {
            IMediaProperties media = _convertOperation.DestMediaProperties;

            if (media != null)
            {
                IMediaDirectory dir = _convertOperation.DestDirectory;
                if (dir != null)
                {
                    if (_destFileName.StartsWith(" ") || _destFileName.EndsWith(" "))
                    {
                        return(resources._validate_FileNameCanNotStartOrEndWithSpace);
                    }
                    else
                    if (_destFileName.IndexOfAny(Path.GetInvalidFileNameChars()) > 0)
                    {
                        return(resources._validate_FileNameCanNotContainSpecialCharacters);
                    }
                    else
                    {
                        var newName = _destFileName.ToLowerInvariant();
                        if (dir.FileExists(newName, media.Folder))
                        {
                            return(resources._validate_FileAlreadyExists);
                        }
                        else
                        if (media is IPersistentMediaProperties)
                        {
                            if (media.MediaType == TMediaType.Movie &&
                                !FileUtils.VideoFileTypes.Contains(Path.GetExtension(newName).ToLower()))
                            {
                                return(string.Format(resources._validate_FileMustHaveExtension, string.Join(resources._or_, FileUtils.VideoFileTypes)));
                            }
                            if (media.MediaType == TMediaType.Still &&
                                !FileUtils.StillFileTypes.Contains(Path.GetExtension(newName).ToLower()))
                            {
                                return(string.Format(resources._validate_FileMustHaveExtension, string.Join(resources._or_, FileUtils.StillFileTypes)));
                            }
                        }
                    }
                }
            }
            return(null);
        }
        public static string GetDisplayName(this IMediaDirectory mediaDirectory, IMediaManager mediaManager)
        {
            switch (mediaDirectory)
            {
            case IServerDirectory _:
                return(mediaDirectory == mediaManager.MediaDirectoryPRI ? Properties.Resources._primary : Properties.Resources._secondary);

            case IAnimationDirectory _:
                return(mediaDirectory == mediaManager.AnimationDirectoryPRI ? Properties.Resources._animations_Primary : Properties.Resources._animations_Secondary);

            case IIngestDirectory ingestDirectory:
                return(ingestDirectory.DirectoryName);

            case IArchiveDirectory _:
                return(Properties.Resources._archive);

            default:
                return(mediaDirectory.Folder);
            }
        }
Example #13
0
        public IIngestOperation CreateIngestOperation(IIngestMedia sourceMedia, IMediaDirectory destDirectory)
        {
            var sourceDirectory = sourceMedia.Directory as IIngestDirectory;

            if (sourceDirectory == null)
            {
                return(null);
            }
            return(new IngestOperation(this)
            {
                Source = sourceMedia,
                DestDirectory = destDirectory,
                AudioVolume = sourceDirectory.AudioVolume,
                SourceFieldOrderEnforceConversion = sourceDirectory.SourceFieldOrder,
                AspectConversion = sourceDirectory.AspectConversion,
                LoudnessCheck = sourceDirectory.MediaLoudnessCheckAfterIngest,
                StartTC = sourceMedia.TcStart,
                Duration = sourceMedia.Duration
            });
        }
 private void _refreshMediaDirectory(IMediaDirectory directory)
 {
     if (directory != null)
     {
         ThreadPool.QueueUserWorkItem(o =>
         {
             try
             {
                 directory.Refresh();
             }
             catch (Exception e)
             {
                 if (directory == SelectedDirectory.Directory)
                 {
                     Application.Current.Dispatcher.BeginInvoke((Action) delegate
                     {
                         MessageBox.Show(string.Format(resources._message_DirectoryRefreshFailed, e.Message), resources._caption_Error, MessageBoxButton.OK, MessageBoxImage.Hand);
                     });
                 }
             }
         });
     }
 }
Example #15
0
        internal IConvertOperation CreateConvertOperation(IMedia sourceMedia, IMediaProperties destMediaProperties, IMediaDirectory destDirectory, TVideoFormat outputFormat, decimal audioVolume, TFieldOrder sourceFieldOrderEnforceConversion, TAspectConversion aspectConversion, bool loudnessCheck)
        {
            IConvertOperation result = _fileManager.CreateConvertOperation();

            result.SourceMedia         = sourceMedia;
            result.DestMediaProperties = destMediaProperties;
            result.DestDirectory       = destDirectory;
            result.AudioVolume         = audioVolume;
            result.SourceFieldOrderEnforceConversion = sourceFieldOrderEnforceConversion;
            result.AspectConversion = aspectConversion;
            result.StartTC          = sourceMedia.TcPlay;
            result.Duration         = sourceMedia.DurationPlay;
            result.LoudnessCheck    = loudnessCheck;
            return(result);
        }
Example #16
0
 public ServerMedia(IMediaDirectory directory, Guid guid, UInt64 idPersistentMedia, IArchiveDirectory archiveDirectory) : base(directory, guid, idPersistentMedia)
 {
     IdPersistentMedia = idPersistentMedia;
     _isArchived       = new Lazy <bool>(() => archiveDirectory != null && EngineController.Database.DbArchiveContainsMedia(archiveDirectory, this));
 }
 public ExtensionNameDropdownListTagHelper(IMediaDirectory mediaDirectory, ISettingDictionaryManager settingDictionaryManager)
 {
     _mediaDirectory           = mediaDirectory;
     _settingDictionaryManager = settingDictionaryManager;
 }
Example #18
0
 public Media(IMediaDirectory directory, Guid mediaGuid = default(Guid))
 {
     _directory = (MediaDirectory)directory;
     _mediaGuid = mediaGuid == default(Guid)? Guid.NewGuid() : mediaGuid;
     _directory.MediaAdd(this);
 }
Example #19
0
 public IndexModel(IMediaDirectory mediaDirectory)
 {
     _mediaDirectory = mediaDirectory;
 }
Example #20
0
 /// <summary>
 /// 初始化类<see cref="StorageController"/>。
 /// </summary>
 /// <param name="mediaFileProvider">媒体文件提供者接口。</param>
 /// <param name="storageDirectory">存储文件夹接口。</param>
 public StorageController(IMediaDirectory mediaFileProvider, IStorageDirectory storageDirectory)
 {
     _mediaFileProvider = mediaFileProvider;
     _storageDirectory  = storageDirectory;
 }
Example #21
0
 /// <summary>
 /// 初始化类<see cref="MediaController"/>。
 /// </summary>
 /// <param name="mediaFileProvider">媒体文件提供者接口。</param>
 public MediaController(IMediaDirectory mediaFileProvider)
 {
     _mediaFileProvider = mediaFileProvider;
 }
Example #22
0
 public ServerMedia(IMediaDirectory directory, Guid guid, UInt64 idPersistentMedia, IArchiveDirectory archiveDirectory) : base(directory, guid, idPersistentMedia)
 {
     IdPersistentMedia = idPersistentMedia;
     _archiveDirectory = archiveDirectory;
     _isArchived       = new Lazy <bool>(() => _archiveDirectory == null ? false :_archiveDirectory.DbArchiveContainsMedia(this));
 }
 /// <summary>
 /// 初始化类<see cref="ExtensionNameDropdownListTagHelper"/>。
 /// </summary>
 /// <param name="mediaDirectory">媒体文件夹接口。</param>
 /// <param name="stringManager">字典管理接口。</param>
 public ExtensionNameDropdownListTagHelper(IMediaDirectory mediaDirectory, INamedStringManager stringManager)
 {
     _mediaDirectory = mediaDirectory;
     _stringManager  = stringManager;
 }
Example #24
0
 /// <summary>
 /// 初始化类<see cref="UserManager"/>。
 /// </summary>
 /// <param name="store">用户存储接口。</param>
 /// <param name="optionsAccessor"><see cref="T:Microsoft.AspNetCore.Identity.IdentityOptions" />实例对象。</param>
 /// <param name="passwordHasher">密码加密器接口。</param>
 /// <param name="userValidators">用户验证接口。</param>
 /// <param name="passwordValidators">密码验证接口。</param>
 /// <param name="keyNormalizer">唯一键格式化字符串。</param>
 /// <param name="errors">错误实例。</param>
 /// <param name="serviceProvider">服务提供者接口。</param>
 public UserManager(IUserStore <User> store, IOptions <IdentityOptions> optionsAccessor, IPasswordHasher <User> passwordHasher, IEnumerable <IUserValidator <User> > userValidators, IEnumerable <IPasswordValidator <User> > passwordValidators, ILookupNormalizer keyNormalizer, IdentityErrorDescriber errors, IServiceProvider serviceProvider)
     : base(store, optionsAccessor, passwordHasher, userValidators, passwordValidators, keyNormalizer, errors, serviceProvider)
 {
     _directory = serviceProvider.GetRequiredService <IMediaDirectory>();
 }
Example #25
0
 public AnimatedMedia(IMediaDirectory directory, Guid guid, ulong idPersistentMedia) : base(directory, guid, idPersistentMedia)
 {
     MediaType = TMediaType.Animation;
 }
Example #26
0
 public AnimatedMedia(IMediaDirectory directory, Guid guid, UInt64 idPersistentMedia) : base(directory, guid, idPersistentMedia)
 {
     _fields.DictionaryOperation += _fields_DictionaryOperation;
     _mediaType = TMediaType.Animation;
 }
Example #27
0
 public EditModel(IMediaDirectory mediaDirectory)
 {
     _mediaDirectory = mediaDirectory;
 }
Example #28
0
 internal PersistentMedia(IMediaDirectory directory, Guid guid, UInt64 idPersistentMedia) : base(directory, guid)
 {
     IdPersistentMedia = idPersistentMedia;
     _mediaSegments    = new Lazy <MediaSegments>(() => EngineController.Database.DbMediaSegmentsRead <MediaSegments>(this));
 }
Example #29
0
 /// <summary>
 /// 初始化类<see cref="UploadController"/>。
 /// </summary>
 /// <param name="mediaDirectory">媒体文件夹接口实例。</param>
 public UploadController(IMediaDirectory mediaDirectory)
 {
     _mediaDirectory = mediaDirectory;
 }
 internal PersistentMedia(IMediaDirectory directory, Guid guid, UInt64 idPersistentMedia) : base(directory, guid)
 {
     IdPersistentMedia = idPersistentMedia;
     _mediaSegments    = new Lazy <MediaSegments>(() => this.DbMediaSegmentsRead <MediaSegments>());
 }