53 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|
|
} |