[WP] Update functionality

This commit is contained in:
BlubbFish 2017-04-26 21:47:46 +00:00
parent dcd26b83aa
commit 2bbe2e023b
3 changed files with 27 additions and 6 deletions

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben: // übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.3.1")] [assembly: AssemblyVersion("1.0.3.2")]
[assembly: AssemblyFileVersion("1.0.3.1")] [assembly: AssemblyFileVersion("1.0.3.2")]

View File

@ -111,7 +111,7 @@ namespace BlubbFish.Utils {
try { try {
Stream stream = WebRequest.Create(this.url + "version.xml").GetResponse().GetResponseStream(); Stream stream = WebRequest.Create(this.url + "version.xml").GetResponse().GetResponseStream();
String content = new StreamReader(stream).ReadToEnd(); String content = new StreamReader(stream).ReadToEnd();
List<VersionInfo> updates = new List<VersionInfo>(); Boolean update = false;
XmlDocument doc = new XmlDocument(); XmlDocument doc = new XmlDocument();
doc.LoadXml(content); doc.LoadXml(content);
foreach (XmlNode node in doc.DocumentElement.ChildNodes) { foreach (XmlNode node in doc.DocumentElement.ChildNodes) {
@ -120,10 +120,11 @@ namespace BlubbFish.Utils {
for(Int32 i=0;i<this.versions.Length;i++) { for(Int32 i=0;i<this.versions.Length;i++) {
if (this.versions[i].GUID == guid && this.versions[i].Version != version) { if (this.versions[i].GUID == guid && this.versions[i].Version != version) {
this.versions[i].HasUpdate = true; this.versions[i].HasUpdate = true;
update = true;
} }
} }
} }
if (updates.Count > 0) { if (update) {
this.UpdateResult(this, new UpdaterEventArgs(true, "Update verfügbar")); this.UpdateResult(this, new UpdaterEventArgs(true, "Update verfügbar"));
return; return;
} }
@ -141,12 +142,32 @@ namespace BlubbFish.Utils {
/// <returns></returns> /// <returns></returns>
public Boolean Update(Boolean afterExit = true) { public Boolean Update(Boolean afterExit = true) {
try { try {
if (afterExit) {
} catch(Exception e) { this.UpdateAfter();
} else {
this.UpdateNow();
}
} catch (Exception e) {
this.ErrorRaised?.Invoke(this, new UpdaterFailEventArgs(e)); this.ErrorRaised?.Invoke(this, new UpdaterFailEventArgs(e));
return false; return false;
} }
return true; return true;
} }
private void UpdateAfter() {
this.UpdateNow(true);
}
private void UpdateNow(Boolean forAfter = false) {
foreach (VersionInfo file in this.versions) {
if (file.HasUpdate) {
Stream stream = WebRequest.Create(this.url + file.Filename).GetResponse().GetResponseStream();
FileStream target = new FileStream(file.Filename + (forAfter ? "_" : ""), FileMode.Create);
stream.CopyTo(target);
target.Flush();
target.Close();
}
}
}
} }
} }

Binary file not shown.