CopyCommand WIP
This commit is contained in:
28
src/Core/FileTime.Core.Command/Helper.cs
Normal file
28
src/Core/FileTime.Core.Command/Helper.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using FileTime.Core.Extensions;
|
||||
using FileTime.Core.Models;
|
||||
|
||||
namespace FileTime.Core.Command;
|
||||
|
||||
public static class Helper
|
||||
{
|
||||
public static async Task<string?> GetNewNameAsync(IContainer resolvedTarget, string name, TransportMode transportMode)
|
||||
{
|
||||
var items = await resolvedTarget.Items.GetItemsAsync() ?? throw new NullReferenceException();
|
||||
var newName = name;
|
||||
var targetNameExists = resolvedTarget != null && items.Any(i => i.Path.GetName() == newName);
|
||||
if (transportMode == TransportMode.Merge && resolvedTarget != null)
|
||||
{
|
||||
for (var i = 0; targetNameExists; i++)
|
||||
{
|
||||
newName = name + (i == 0 ? "_" : $"_{i}");
|
||||
targetNameExists = resolvedTarget != null && items.Any(i => i.Path.GetName() == newName);
|
||||
}
|
||||
}
|
||||
else if (transportMode == TransportMode.Skip && targetNameExists)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return newName;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user