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