Пример #1
0
        /// <summary>
        /// Process the command
        /// </summary>
        /// <param name="InLine"></param>
        private static void ProcessCommand(String[] InLine)
        {
            MM_Element Element = null;

            if (InLine.Length == 3)
            {
                if (InLine[1].Equals("Substation", StringComparison.CurrentCultureIgnoreCase))
                {
                    MM_Substation FoundSub;
                    if (MM_Repository.Substations.TryGetValue(InLine[2], out FoundSub))
                    {
                        Element = FoundSub;
                    }
                    else
                    {
                        foreach (MM_Substation Sub in MM_Repository.Substations.Values)
                        {
                            if (Sub.LongName.Equals(InLine[2], StringComparison.CurrentCultureIgnoreCase))
                            {
                                Element = Sub;
                                break;
                            }
                        }
                    }
                }
                else if (InLine[1].Equals("Line", StringComparison.CurrentCultureIgnoreCase))
                {
                    Element = MM_Repository.Lines[InLine[2]];
                }
                else if (InLine[1].Equals("Contingency", StringComparison.CurrentCultureIgnoreCase))
                {
                    Element = MM_Repository.Contingencies[InLine[2]];
                }
                else
                {
                    Element = MM_Repository.LocateElement(InLine[2].Split('.')[0], InLine[2].Split('.')[1], InLine[1], "");
                }
            }
            else if (InLine.Length == 2)
            {
                Int32 TryNum;
                if (!Int32.TryParse(InLine[1], out TryNum) || !MM_Repository.TEIDs.TryGetValue(TryNum, out Element))
                {
                    return;
                }
            }


            if (InLine[0].Equals("Search", StringComparison.CurrentCultureIgnoreCase))
            {
                MM_Form_Builder.SearchDisplay(Map.ctlNetworkMap, InLine[1], false, false);
            }
            else if (InLine[0].Equals("Message", StringComparison.CurrentCultureIgnoreCase))
            {
                MM_System_Interfaces.MessageBox("Message received: " + String.Join(" ", InLine, 1, InLine.Length - 1), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else if (InLine[0].Equals("Zoom", StringComparison.CurrentCultureIgnoreCase))
            {
                if (Element is MM_AlarmViolation)
                {
                    Element = (Element as MM_AlarmViolation).ViolatedElement;
                }
                if (Element is MM_Substation)
                {
                    Map.ctlNetworkMap.Coordinates.Center = ((Element as MM_Substation).LngLat);
                    Map.ctlNetworkMap.Coordinates.UpdateZoom(MM_Repository.OverallDisplay.StationZoomLevel);
                }
                else if (Element is MM_Line)
                {
                    Map.ctlNetworkMap.Coordinates.Center = (((Element as MM_Line).Midpoint));
                    Map.ctlNetworkMap.Coordinates.UpdateZoom(MM_Repository.OverallDisplay.StationZoomLevel);
                }
                else if (Element.Substation != null)
                {
                    Map.ctlNetworkMap.Coordinates.Center = (Element.Substation.LngLat);
                    Map.ctlNetworkMap.Coordinates.UpdateZoom(MM_Repository.OverallDisplay.StationZoomLevel);
                }
            }
            else if (InLine[0].Equals("Property", StringComparison.CurrentCultureIgnoreCase))
            {
                MM_Form_Builder.PropertyPage(Element, Map.ctlNetworkMap);
            }
            else if (InLine[0].Equals("OneLine", StringComparison.CurrentCultureIgnoreCase))
            {
                MM_Form_Builder.OneLine_Display(Element, Map.ctlNetworkMap);
            }
        }