PowerToys/Plugins/Wox.Plugin.Program/IProgramSource.cs
bao-qian 6f3cdeda70 Refactoring Program plugin to use parallel linq
much master when use parallel
2016-04-22 23:03:32 +01:00

49 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
namespace Wox.Plugin.Program
{
public interface IProgramSource
{
List<Program> LoadPrograms();
int BonusPoints { get; set; }
}
[Serializable]
public abstract class AbstractProgramSource : IProgramSource
{
public abstract List<Program> LoadPrograms();
public int BonusPoints { get; set; }
protected Program CreateEntry(string file)
{
var p = new Program
{
Title = Path.GetFileNameWithoutExtension(file),
IcoPath = file,
ExecutePath = file
};
switch (Path.GetExtension(file).ToLower())
{
case ".exe":
p.ExecuteName = Path.GetFileName(file);
try
{
FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(file);
if (!string.IsNullOrEmpty(versionInfo.FileDescription))
{
p.Title = versionInfo.FileDescription;
}
}
catch (Exception) { }
break;
}
return p;
}
}
}