public static void FileOpened(FileImpInfo fileInfo)
        {
            var id   = fileInfo.SmartId;
            var data = db.Find <FileData>(id);

            if (data == null)
            {
                data = new FileData()
                {
                    Id        = id,
                    SmartName = fileInfo.SmartName,
                    LastPath  = fileInfo.FullPath
                };

                db.Insert(data);
            }
            else if (data.LastPath != fileInfo.FullPath)
            {
                db.Update(data);
            }

            var usageData = new FileUsageData
            {
                FileInfoId = id,
                TimeOpened = DateTime.UtcNow
            };

            db.Insert(usageData);
        }
        public static void FileClosed(FileImpInfo fileInfo, TimeSpan?mediaTime = null, TimeSpan?mediaDuration = null)
        {
            var id        = fileInfo.SmartId;
            var nonClosed = db.Query <FileUsageData>("Select * FROM [FileUsageData] WHERE [FileInfoId] = ? AND [TimeClosed] IS NULL", id);

            var complete = false;

            if (mediaTime != null && mediaDuration != null)
            {
                if (mediaTime.Value.TotalSeconds > mediaDuration.Value.TotalSeconds * 0.75)
                {
                    complete           = true;
                    fileInfo.LastUsage = DateTime.UtcNow;
                }
            }
            else if (fileInfo.FileType == FileTypes.Pictures)
            {
                fileInfo.LastUsage = DateTime.UtcNow;
            }

            foreach (var fileUsageData in nonClosed)
            {
                fileUsageData.TimeClosed     = DateTime.UtcNow;
                fileUsageData.FileTimeClosed = mediaTime;
                fileUsageData.Completed      = complete;
            }

            db.UpdateAll(nonClosed);
        }
        /// <summary>
        /// Filter files by their extensions and convert them to imp fileinfos
        /// </summary>
        /// <param name="infos">Files to be filtered</param>
        /// <param name="extensions">extensions to filter by. Null or empty list gives all</param>
        /// <returns> Filtered files </returns>
        public static FileImpInfo[] FilterFiles(FileInfo[] infos, List <string> extensions)
        {
            if (extensions == null || extensions.Count < 1)
            {
                var files = new FileImpInfo[infos.Length];
                for (var j = 0; j < infos.Length; j++)
                {
                    files[j] = new FileImpInfo(infos[j]);
                }
                return(files);
            }

            var fileList = new List <FileImpInfo>();

            foreach (var fileInfo in infos)
            {
                var extension = Path.GetExtension(fileInfo.Name);
                if (extensions.All(x => String.Compare(extension, x, StringComparison.OrdinalIgnoreCase) != 0))
                {
                    continue;
                }
                fileList.Add(new FileImpInfo(fileInfo));
            }

            return(fileList.ToArray());
        }
        protected override void OpenFile(FileImpInfo fileInfo)
        {
            var item = new PlaylistItem(fileInfo);

            this.window.PanelPlaylist.ListPlaylist.AddToList(item);

            OpenFile(item);
        }
Exemple #5
0
 private void CopyFileInfo(FileImpInfo info)
 {
     this.SmartId   = info.SmartId;
     this.FileType  = info.FileType;
     this.FullPath  = info.FullPath;
     this.FileName  = info.FileName;
     this.LastUsage = info.LastUsage;
     SmartName      = info.SmartName;
     DateModified   = info.DateModified;
     Name           = StringHandler.RemoveExtension(info.FileName);
 }
 protected abstract void OpenFile(FileImpInfo file);
 protected abstract void AddFile(FileImpInfo fileImpInfo);
 protected override void AddFile(FileImpInfo fileInfo)
 {
     this.window.PanelPlaylist.ListPlaylist.AddToList(new PlaylistItem(fileInfo));
 }
Exemple #9
0
 public PlaylistItem(FileImpInfo info)
 {
     CopyFileInfo(info);
 }