Skip to content

Commit

Permalink
fix interface naming and ordering
Browse files Browse the repository at this point in the history
  • Loading branch information
jesper-dax committed Dec 3, 2024
1 parent 8321414 commit 6a3dbae
Showing 1 changed file with 44 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ private TerminalEquipmentAZConnectivityViewEquipmentInfo BuildTerminalEquipmentV

List<TerminalEquipmentAZConnectivityViewTerminalStructureInfo> terminalStructureInfos = new();

foreach (var terminalStructure in terminalEquipment.TerminalStructures.Where(t => !t.Deleted).OrderBy(o => o.Position))
foreach (var terminalStructure in GetOrderedTerminalStructures(terminalEquipment))
{
if (!_terminalStructureSpecifications.TryGetValue(terminalStructure.SpecificationId, out var terminalStructureSpecification))
throw new ApplicationException($"Invalid/corrupted terminal equipment specification: {terminalEquipment.SpecificationId} has reference to non-existing terminal structure specification with id: {terminalStructure.SpecificationId}");
Expand Down Expand Up @@ -177,7 +177,7 @@ private TerminalEquipmentAZConnectivityViewEquipmentInfo BuildTerminalEquipmentV
new TerminalEquipmentAZConnectivityViewTerminalStructureInfo(
id: terminalStructure.Id,
category: terminalStructureSpecification.Category,
name: terminalStructure.Name,
name: GetTerminalStructureHeaderName(terminalStructure),
specName: terminalStructureSpecification.Name,
lines: CompactLines(lineInfos).ToArray()
)
Expand All @@ -193,12 +193,51 @@ private TerminalEquipmentAZConnectivityViewEquipmentInfo BuildTerminalEquipmentV
terminalStructures: terminalStructureInfos.ToArray(),
isLineTermination: terminalEquipmentSpecification.IsLineTermination
)
{
{
ParentNodeStructureId = parentStructureId
}
);
}

private static IEnumerable<TerminalStructure> GetOrderedTerminalStructures(TerminalEquipment terminalEquipment)
{
if (terminalEquipment.TerminalStructures.Any(t => t.interfaceInfo != null))
{
var interfaces = terminalEquipment.TerminalStructures.Where(t => !t.Deleted).Where(t => t.interfaceInfo != null).OrderBy(t => t.interfaceInfo.SlotNumber).ThenBy(t => t.interfaceInfo.SubSlotNumber).ThenBy(t => t.interfaceInfo.PortNumber);

var nonInterfaces = terminalEquipment.TerminalStructures.Where(t => !t.Deleted).Where(t => t.interfaceInfo != null).OrderBy(t => t.interfaceInfo.SlotNumber).ThenBy(t => t.interfaceInfo.SubSlotNumber).ThenBy(t => t.interfaceInfo.PortNumber);

return interfaces.Concat(nonInterfaces);
}
else
{
return terminalEquipment.TerminalStructures.Where(t => !t.Deleted).OrderBy(o => o.Position);
}
}

private static string GetTerminalStructureHeaderName(TerminalStructure terminalStructure)
{
if (terminalStructure.interfaceInfo != null)
return GetInterfaceName(terminalStructure);
else
return terminalStructure.Name;
}

private static string GetInterfaceName(TerminalStructure terminalStructure)
{
string interfaceName = terminalStructure.interfaceInfo.InterfaceType + "-" + terminalStructure.interfaceInfo.SlotNumber;

if (terminalStructure.interfaceInfo.SubSlotNumber > 0)
interfaceName += ("/" + terminalStructure.interfaceInfo.SubSlotNumber);

interfaceName += ("/" + terminalStructure.interfaceInfo.PortNumber);

if (terminalStructure.interfaceInfo.CircuitName != null)
interfaceName += (" (" + terminalStructure.interfaceInfo.CircuitName + ")");

return interfaceName;
}

private List<TerminalEquipmentAZConnectivityViewLineInfo> CompactLines(List<TerminalEquipmentAZConnectivityViewLineInfo> lineInfos)
{
List<TerminalEquipmentAZConnectivityViewLineInfo> compactedLines = new();
Expand Down Expand Up @@ -650,6 +689,8 @@ public RelevantEquipmentData(IEventStore eventStore, UtilityNetworkProjection ut
}
}



private record TraceInfo
{
public IUtilityGraphTerminalRef SourceTerminal { get; set; }
Expand Down

0 comments on commit 6a3dbae

Please sign in to comment.