Files
GazpromApp/Utils/ParentsHelper.cs

53 lines
1.4 KiB
C#

using System.Linq;
using GazpromApp.Models;
namespace GazpromApp.Utils;
public static class ParentsHelper
{
public static void SetPropertyParents(this Point point)
{
foreach (var prop in point.Properties)
{
SetPropertyParentsRecursively(prop);
}
foreach (var prop in point.Equipment.SelectMany(equipment => equipment.Properties))
{
SetPropertyParentsRecursively(prop);
}
}
private static void SetPropertyParentsRecursively(Property property)
{
foreach (var childProp in property.Properties)
{
childProp.Parent = property;
childProp.ParentPropertyId = property.Id;
SetPropertyParentsRecursively(childProp);
}
}
public static void SetEquipmentParents(this Point point)
{
foreach (var prop in point.Equipment)
{
SetEquipmentParentsRecursively(prop);
}
foreach (var prop in point.Equipment.SelectMany(equipment1 => equipment1.Equipments))
{
SetEquipmentParentsRecursively(prop);
}
}
private static void SetEquipmentParentsRecursively(Equipment equipment)
{
foreach (var childProp in equipment.Equipments)
{
childProp.ParentEquipment = equipment;
childProp.ParentEquipmentId = equipment.Id;
SetEquipmentParentsRecursively(childProp);
}
}
}