Files
FileTime2/src/Core/FileTime.Core.Command/Helper.cs
2022-06-09 05:08:31 +02:00

28 lines
976 B
C#

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;
}
}