From 4816cd006daa7b70e1995aa07bf0c68b02f57125 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Sun, 27 Nov 2022 14:25:03 +0100 Subject: [PATCH] Fix possible InvalidOperationException on OldName I don't know how it's possible, MSDN docs don't mention it, but since it's nullable, this should help. --- ArchiSteamFarm/Core/ASF.cs | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/ArchiSteamFarm/Core/ASF.cs b/ArchiSteamFarm/Core/ASF.cs index 2939077a3..519a1a0d9 100644 --- a/ArchiSteamFarm/Core/ASF.cs +++ b/ArchiSteamFarm/Core/ASF.cs @@ -822,24 +822,28 @@ public static class ASF { ArgumentNullException.ThrowIfNull(sender); ArgumentNullException.ThrowIfNull(e); - if (string.IsNullOrEmpty(e.OldName)) { - throw new InvalidOperationException(nameof(e.OldName)); - } - if (string.IsNullOrEmpty(e.OldFullPath)) { throw new InvalidOperationException(nameof(e.OldFullPath)); } - if (string.IsNullOrEmpty(e.Name)) { - throw new InvalidOperationException(nameof(e.Name)); - } - if (string.IsNullOrEmpty(e.FullPath)) { throw new InvalidOperationException(nameof(e.FullPath)); } - await OnDeletedFile(e.OldName, e.OldFullPath).ConfigureAwait(false); - await OnCreatedFile(e.Name, e.FullPath).ConfigureAwait(false); + string? oldName = e.OldName; + + if (string.IsNullOrEmpty(oldName)) { + oldName = Path.GetFileName(e.OldFullPath); + } + + string? name = e.Name; + + if (string.IsNullOrEmpty(name)) { + name = Path.GetFileName(e.FullPath); + } + + await OnDeletedFile(oldName, e.OldFullPath).ConfigureAwait(false); + await OnCreatedFile(name, e.FullPath).ConfigureAwait(false); } private static async Task RegisterBots() {