Innovenergy_trunk/csharp/app/API/DataModel/Data.Extensions.cs

27 lines
689 B
C#
Raw Normal View History

2023-02-16 12:57:06 +00:00
namespace InnovEnergy.API.DataModel;
public static class DataExtensions
{
public static Folder GetOrCreateFolder(this Data data, IEnumerable<String> path)
{
var parent = data.Root;
var stack = new Stack<String>(path.Reverse());
while (stack.Count > 0)
{
var childFolderName = stack.Pop();
var childFolder = parent.Folders.FirstOrDefault(f => f.Name == childFolderName);
if (childFolder is null)
{
childFolder = new Folder { Name = childFolderName };
parent.Add(childFolder);
}
parent = childFolder;
}
return parent;
}
}