From 4f683ed978658ce5930b8421cae32a51bdbf533e Mon Sep 17 00:00:00 2001 From: Irving Covarrubias Date: Fri, 26 Sep 2025 00:34:58 +0000 Subject: [PATCH] Restore Item by using item in Identity if it has. --- .../RecycleBin/RestoreRecycleBinItem.cs | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/Commands/RecycleBin/RestoreRecycleBinItem.cs b/src/Commands/RecycleBin/RestoreRecycleBinItem.cs index 228ae4cab..5b2fc76f4 100644 --- a/src/Commands/RecycleBin/RestoreRecycleBinItem.cs +++ b/src/Commands/RecycleBin/RestoreRecycleBinItem.cs @@ -23,16 +23,28 @@ protected override void ExecuteCmdlet() { if (ParameterSpecified(nameof(Identity))) { - var recycleBinItem = Identity.GetRecycleBinItem(Connection.PnPContext); - - if (recycleBinItem == null) + // if Identity has item, use it + if (Identity.Item != null) { - throw new PSArgumentException("Recycle bin item not found with the ID specified", nameof(Identity)); + if (Force || ShouldContinue(string.Format(Resources.RestoreRecycleBinItem, Identity.Item.LeafName), Resources.Confirm)) + { + Identity.Item.Restore(); + ClientContext.ExecuteQueryRetry(); + } } - - if (Force || ShouldContinue(string.Format(Resources.RestoreRecycleBinItem, recycleBinItem.LeafName), Resources.Confirm)) + else { - recycleBinItem.Restore(); + var recycleBinItem = Identity.GetRecycleBinItem(Connection.PnPContext); + + if (recycleBinItem == null) + { + throw new PSArgumentException("Recycle bin item not found with the ID specified", nameof(Identity)); + } + + if (Force || ShouldContinue(string.Format(Resources.RestoreRecycleBinItem, recycleBinItem.LeafName), Resources.Confirm)) + { + recycleBinItem.Restore(); + } } } else