private EMSLoadFlowNodeRecord CreateEMSLoadFlowNodeRecord(HierarchicalFilter hierarchyTree, long id) { EMSLoadFlowNodeRecord rec = new EMSLoadFlowNodeRecord(); HierarchicalRecordData recordData; if (!hierarchicalRecordData.TryGetValue(id, out recordData)) { DMSLogger.Log(DMSLogger.LogLevel.DebugLog, "[EMSLoadFlow]: Record { 0:X} does not exists in hierarchical record data dictionary.", id); return(rec); } if (recordData.Name != null && !recordData.Name.Equals(string.Empty)) { rec.Title = string.Format("{0}", recordData.Name); } else { rec.Title = string.Empty; } rec.Lid = id; rec.Level = (byte)hierarchyTreeFilter.GetNodeByLid(id).Level; EMSLoadFlowRecordBean data = recordData as EMSLoadFlowRecordBean; if (data != null && (DMSType)ModelCodeHelper.ExtractTypeFromGlobalId(id) == DMSType.BUSNODE) { rec.Voltage = data.Voltage; rec.VoltageLevel = data.VoltageLevel; rec.PNode = data.PNode; } return(rec); }
private List <EMSLoadFlowNodeRecord> CreateEMSLoadFlowNodeRecords() { List <EMSLoadFlowNodeRecord> records = new List <EMSLoadFlowNodeRecord>(); try { List <long> gids = GetElementsForSelectedCircuits(selectedRecords, ModelCode.BUSNODERESULTSTA, ModelCode.TARESVAL_PARENTCIRCUIT); FillEMSLoadFlowNodeProperties(gids); GetElementsNames(gids); foreach (long id in selectedRecords) { EMSLoadFlowNodeRecord circuitRecord = CreateEMSLoadFlowNodeRecord(hierarchyTreeFilter, id); records.Add(circuitRecord); if (hierarchyTreeFilter.GetNodeByLid(id).Children == null) { continue; } foreach (HierarchicalFilterNode childNode in hierarchyTreeFilter.GetNodeByLid(id).Children) { if ((DMSType)ModelCodeHelper.ExtractTypeFromGlobalId(childNode.Lid) != DMSType.BUSNODE) { continue; } MeasurementValueQuality lfQuality; if (!lfMeasureQuality.TryGetValue(id, out lfQuality) || CheckIsLFStatusDisabled(lfQuality)) { continue; } records.Add(CreateEMSLoadFlowNodeRecord(hierarchyTreeFilter, childNode.Lid)); } } } catch (Exception) { DMSLogger.Log(DMSLogger.LogLevel.Error, "[EMSLoadFlow]: Error occurred while creating EMSLoadFlowNode records."); throw; } return(records); }