Skip to content

Commit

Permalink
Merge branch 'hotfix/0.1.6'
Browse files Browse the repository at this point in the history
  • Loading branch information
KodamaSakuno committed Feb 8, 2016
2 parents 5747290 + 5dfc681 commit 317b54b
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 22 deletions.
2 changes: 1 addition & 1 deletion HeavenlyWind.Base/ProductInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ public class ProductInfo
public const string AppName = "いんてりじぇんと連装砲くん";
public const string ProductName = "Intelligent Naval Gun-kun";

public const string AssemblyVersionString = "0.1.6";
public const string AssemblyVersionString = "0.1.6.1";

public const string ReleaseCodeName = "Moonbria";

Expand Down
58 changes: 37 additions & 21 deletions HeavenlyWind/Services/UpdateService.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Sakuno.KanColle.Amatsukaze.Models;
using Sakuno.KanColle.Amatsukaze.Game.Services;
using Sakuno.SystemInterop;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
Expand Down Expand Up @@ -30,8 +32,21 @@ public class UpdateService : ModelBase
var rRootPath = Path.GetDirectoryName(GetType().Assembly.Location);
var rRootPathLength = rRootPath.Length + 1;

var rDataFiles = Directory.EnumerateFiles(Path.Combine(rRootPath, "Data"), "*").Select(r => r.Substring(rRootPathLength));
var rSRFiles = Directory.EnumerateFiles(Path.Combine(rRootPath, "Resources", "Strings"), "*", SearchOption.AllDirectories).Select(r => r.Substring(rRootPathLength));
IEnumerable<string> rDataFiles;
var rDataDirectory = new DirectoryInfo(Path.Combine(rRootPath, "Data"));
if (rDataDirectory.Exists)
rDataFiles = rDataDirectory.EnumerateFiles("*").Select(r => r.FullName.Substring(rRootPathLength));
else
rDataFiles = new string[]
{
QuestProgressService.DataFilename,
MapService.DataFilename,
ShipLockingService.DataFilename,
};

var rSRDirectory = new DirectoryInfo(Path.Combine(rRootPath, "Resources", "Strings"));
var rSRFiles = rSRDirectory.EnumerateFiles("*", SearchOption.AllDirectories).Select(r => r.FullName.Substring(rRootPathLength));

r_FilesToBeChecked = rDataFiles.Concat(rSRFiles).ToArray();
}

Expand Down Expand Up @@ -88,32 +103,33 @@ async Task CheckForUpdateCore()
Info = rResult.Update;
OnPropertyChanged(nameof(Info));

foreach (var rFileUpdate in rResult.Files)
{
var rFile = new FileInfo(rFileUpdate.Name);

switch (rFileUpdate.Action)
if (rResult.Files != null)
foreach (var rFileUpdate in rResult.Files)
{
case CheckForUpdateFileAction.CreateOrOverwrite:
EnsureDirectory(rFile);
var rFile = new FileInfo(rFileUpdate.Name);

switch (rFileUpdate.Action)
{
case CheckForUpdateFileAction.CreateOrOverwrite:
EnsureDirectory(rFile);

using (var rWriter = new StreamWriter(rFile.Open(FileMode.Create, FileAccess.Write, FileShare.Read)))
await rWriter.WriteAsync(rFileUpdate.Content);
using (var rWriter = new StreamWriter(rFile.Open(FileMode.Create, FileAccess.Write, FileShare.Read)))
await rWriter.WriteAsync(rFileUpdate.Content);

rFile.LastWriteTime = DateTimeUtil.FromUnixTime((ulong)rFileUpdate.Timestamp).LocalDateTime;
break;
rFile.LastWriteTime = DateTimeUtil.FromUnixTime((ulong)rFileUpdate.Timestamp).LocalDateTime;
break;

case CheckForUpdateFileAction.Delete:
NativeMethods.Kernel32.DeleteFileW(rFile.FullName);
break;
case CheckForUpdateFileAction.Delete:
NativeMethods.Kernel32.DeleteFileW(rFile.FullName);
break;

case CheckForUpdateFileAction.Rename:
EnsureDirectory(rFile);
case CheckForUpdateFileAction.Rename:
EnsureDirectory(rFile);

rFile.MoveTo(rFileUpdate.Content);
break;
rFile.MoveTo(rFileUpdate.Content);
break;
}
}
}
}
}
void EnsureDirectory(FileInfo rpFile)
Expand Down

0 comments on commit 317b54b

Please sign in to comment.