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); }
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)); }
public PlaylistItem(FileImpInfo info) { CopyFileInfo(info); }