-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathDownloadDetailsPlugin.cs
More file actions
203 lines (177 loc) · 4.95 KB
/
DownloadDetailsPlugin.cs
File metadata and controls
203 lines (177 loc) · 4.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
using System;
namespace NoteFly
{
/// <summary>
///
/// </summary>
public class DownloadDetailsPlugin
{
/// <summary>
/// The name of the plugin
/// </summary>
private string name;
/// <summary>
/// The version of the plugin.
/// </summary>
private string version;
/// <summary>
/// The download url of the plugin to download
/// </summary>
private string downloadurl;
/// <summary>
/// The kind of license this plugin is under released.
/// </summary>
private string licensetype;
/// <summary>
/// The description of the plugin.
/// </summary>
private string description;
/// <summary>
/// The sidnature of the plugin.
/// </summary>
private string signature;
/// <summary>
///
/// </summary>
/// <param name="name"></param>
public DownloadDetailsPlugin()
{
}
/// <summary>
/// Get the name of the plugin.
/// </summary>
public string Name
{
get
{
return this.name;
}
set
{
if (String.IsNullOrEmpty(value))
{
Log.Write(LogType.error, "No plugin name");
}
this.name = value;
}
}
/// <summary>
/// Get the version of this plugin as string.
/// </summary>
public string Version
{
get
{
return this.version;
}
set
{
this.version = value;
}
}
/// <summary>
/// Get the url where to download this plugin.
/// </summary>
public string DownloadUrl
{
get
{
return this.downloadurl;
}
set
{
if (Uri.IsWellFormedUriString(value, UriKind.Absolute))
{
Log.Write(LogType.error, "Not well formed download url.");
}
this.downloadurl = value;
}
}
/// <summary>
/// Get the license type.
/// </summary>
public string LicenseType
{
get
{
return this.licensetype;
}
set
{
this.licensetype = value;
}
}
/// <summary>
/// Get the description
/// </summary>
public string Description
{
get
{
return this.description;
}
set
{
this.description = value;
}
}
/// <summary>
/// Get the signature.
/// </summary>
public string Signature
{
get
{
return this.signature;
}
set
{
this.signature = value;
}
}
/// <summary>
/// Get if this a plugin that is installed.
/// </summary>
/// <returns>True if a plugin with this name is installed.</returns>
public bool IsInstalledPlugin()
{
if (string.IsNullOrEmpty(this.name))
{
Log.Write(LogType.error, "Cannot figure out if plugin is installed because plugin name unknow.");
return false;
}
string[] installedpluginnames = PluginsManager.GetInstalledPlugins();
for (int i = 0; i < installedpluginnames.Length; i++)
{
if (this.name.Equals(installedpluginnames[i], StringComparison.OrdinalIgnoreCase))
{
return true;
}
}
return false;
}
/// <summary>
/// Get if this plugindetails is of newer version than installed.
/// </summary>
/// <returns>True if newer DownloadDetailsPlugin version is newer than installed.</returns>
public bool IsNewerVersion()
{
if (string.IsNullOrEmpty(this.name) || string.IsNullOrEmpty(this.version))
{
Log.Write(LogType.error, "DownloadDetailsPlugin name and/or versions is unknown.");
return false;
}
short[] installedpluginversion = PluginsManager.GetPluginVersionByName(this.name);
short[] availablepluginversion = Program.ParserVersionString(this.version);
if (Program.CompareVersions(availablepluginversion, installedpluginversion) > 0)
{
// 1 if availablepluginversion is higher than installedpluginversion
return true;
}
else
{
return false;
}
}
}
}