Fixed path is empty exception

Also converted method to property get, private set
This commit is contained in:
Shivam 2020-06-01 22:50:24 +02:00
parent 33d731644c
commit fea5c8460a
3 changed files with 16 additions and 13 deletions

View File

@ -37,7 +37,7 @@ namespace osu.Game.Tournament.IPC
private int lastBeatmapId; private int lastBeatmapId;
private ScheduledDelegate scheduled; private ScheduledDelegate scheduled;
private StableInfo stableInfo; public StableInfo StableInfo { get; private set; }
public const string STABLE_CONFIG = "tournament/stable.json"; public const string STABLE_CONFIG = "tournament/stable.json";
@ -160,12 +160,10 @@ namespace osu.Game.Tournament.IPC
public static bool CheckExists(string p) => File.Exists(Path.Combine(p, "ipc.txt")); public static bool CheckExists(string p) => File.Exists(Path.Combine(p, "ipc.txt"));
public StableInfo GetStableInfo() => stableInfo;
private string findStablePath() private string findStablePath()
{ {
if (!string.IsNullOrEmpty(readStableConfig())) if (!string.IsNullOrEmpty(readStableConfig()))
return stableInfo.StablePath.Value; return StableInfo.StablePath.Value;
string stableInstallPath = string.Empty; string stableInstallPath = string.Empty;
@ -186,7 +184,7 @@ namespace osu.Game.Tournament.IPC
if (stableInstallPath != null) if (stableInstallPath != null)
{ {
SaveStableConfig(stableInstallPath); SaveStableConfig(stableInstallPath);
return stableInstallPath; return null;
} }
} }
@ -200,12 +198,12 @@ namespace osu.Game.Tournament.IPC
public void SaveStableConfig(string path) public void SaveStableConfig(string path)
{ {
stableInfo.StablePath.Value = path; StableInfo.StablePath.Value = path;
using (var stream = tournamentStorage.GetStream(STABLE_CONFIG, FileAccess.Write, FileMode.Create)) using (var stream = tournamentStorage.GetStream(STABLE_CONFIG, FileAccess.Write, FileMode.Create))
using (var sw = new StreamWriter(stream)) using (var sw = new StreamWriter(stream))
{ {
sw.Write(JsonConvert.SerializeObject(stableInfo, sw.Write(JsonConvert.SerializeObject(StableInfo,
new JsonSerializerSettings new JsonSerializerSettings
{ {
Formatting = Formatting.Indented, Formatting = Formatting.Indented,
@ -217,18 +215,18 @@ namespace osu.Game.Tournament.IPC
private string readStableConfig() private string readStableConfig()
{ {
if (stableInfo == null) if (StableInfo == null)
stableInfo = new StableInfo(); StableInfo = new StableInfo();
if (tournamentStorage.Exists(FileBasedIPC.STABLE_CONFIG)) if (tournamentStorage.Exists(FileBasedIPC.STABLE_CONFIG))
{ {
using (Stream stream = tournamentStorage.GetStream(FileBasedIPC.STABLE_CONFIG, FileAccess.Read, FileMode.Open)) using (Stream stream = tournamentStorage.GetStream(FileBasedIPC.STABLE_CONFIG, FileAccess.Read, FileMode.Open))
using (var sr = new StreamReader(stream)) using (var sr = new StreamReader(stream))
{ {
stableInfo = JsonConvert.DeserializeObject<StableInfo>(sr.ReadToEnd()); StableInfo = JsonConvert.DeserializeObject<StableInfo>(sr.ReadToEnd());
} }
return stableInfo.StablePath.Value; return StableInfo.StablePath.Value;
} }
return null; return null;

View File

@ -66,7 +66,7 @@ namespace osu.Game.Tournament.Screens
private void reload() private void reload()
{ {
var fileBasedIpc = ipc as FileBasedIPC; var fileBasedIpc = ipc as FileBasedIPC;
StableInfo stableInfo = fileBasedIpc?.GetStableInfo(); StableInfo stableInfo = fileBasedIpc?.StableInfo;
fillFlow.Children = new Drawable[] fillFlow.Children = new Drawable[]
{ {
new ActionableInfo new ActionableInfo

View File

@ -38,7 +38,12 @@ namespace osu.Game.Tournament.Screens
private void load(Storage storage, OsuColour colours) private void load(Storage storage, OsuColour colours)
{ {
var fileBasedIpc = ipc as FileBasedIPC; var fileBasedIpc = ipc as FileBasedIPC;
var initialPath = new DirectoryInfo(host.GetStorage(fileBasedIpc?.GetStableInfo().StablePath.Value).GetFullPath(string.Empty) ?? storage.GetFullPath(string.Empty)).Parent?.FullName; var initialPath = new DirectoryInfo(storage.GetFullPath(string.Empty)).Parent?.FullName;
if (!string.IsNullOrEmpty(fileBasedIpc?.StableInfo.StablePath.Value))
{
initialPath = new DirectoryInfo(host.GetStorage(fileBasedIpc.StableInfo.StablePath.Value).GetFullPath(string.Empty)).Parent?.FullName;
}
AddRangeInternal(new Drawable[] AddRangeInternal(new Drawable[]
{ {