private void NewSystemCreated(SystemBase system)
        {
            string systemType      = system.HvacSystemType;
            int    systemTypeAsInt = Convert.ToInt32(systemType);

            switch (systemTypeAsInt)
            {
            case 1:
                LeftSideBarChild child = new LeftSideBarChild(system.Name, "VRF", system.StatusIcon, system);
                child.IsSelected = true;
                _vrfSystemsObservableCollection.Add(child);
                break;

            case 2:
                child            = new LeftSideBarChild(system.Name, "Heat Exchanger", system.StatusIcon, system);
                child.IsSelected = true;
                _heatExchangerObservableCollection.Add(child);
                break;

            case 6:

                child            = new LeftSideBarChild(system.Name, "Central Controller", system.StatusIcon, system);
                child.IsSelected = true;
                _centralContollerObservableCollection.Add(child);
                break;
            }
            updateLeftSideBarItems();
            _eventAggregator.GetEvent <SystemSelectedItemSubscriber>().Publish((SystemBase)system);
        }
        //Acc End IA
        private void OnSelectedSystemTab(SystemBase system)
        {
            LeftSideBarChild toSelect = AllSystems.FirstOrDefault(a => a.Children.FirstOrDefault(b => b.Source.Id == system.Id) != null)?.Children.FirstOrDefault(b => b.Source.Id == system.Id);

            if (toSelect != null)
            {
                toSelect.IsSelected = true;
            }
        }
        private void SelectedTreeViewItemClick(object leftSideBarChild)
        {
            if (leftSideBarChild.GetType().Equals(typeof(LeftSideBarChild)))
            {
                var object2 = ((LeftSideBarChild)leftSideBarChild).Source;

                var vrf = WorkFlowContext.CurrentSystem as JCHVRF.Model.NextGen.SystemVRF;
                if (vrf != null && vrf.HvacSystemType == "1")
                {
                    if ((vrf.MyPipingOrphanNodes != null && vrf.MyPipingOrphanNodes.Count > 0) || (vrf.SystemStatus == SystemStatus.WIP && vrf.IsManualPiping))
                    {
                        JCHMessageBox.Show(Langauge.Current.GetMessage("ALERT_CHANGES_CANVAS"));
                        LeftSideBarChild toselect = AllSystems?.FirstOrDefault(a => a.Children.Count > 0 && a.Children.FirstOrDefault(b => ((SystemBase)b.Source)?.Id == _lastSelectedId) != null)?.Children.FirstOrDefault(b => ((SystemBase)b.Source)?.Id == _lastSelectedId);
                        if (toselect != null)
                        {
                            toselect.IsSelected = true;
                        }
                        else
                        {
                            toselect            = AllSystems?.FirstOrDefault(a => a.Children.Count > 0 && a.Children.FirstOrDefault() != null)?.Children.FirstOrDefault();
                            toselect.IsSelected = true;
                        }
                        return;
                    }
                    //Start Bug#4695 : If ODU is dirty then get confirmation before user leaves the current system. Retain user on the same system if he wants to stay.
                    else if (vrf.IsODUDirty)
                    {
                        MessageBoxResult messageBoxResult = JCHMessageBox.Show(Langauge.Current.GetMessage("ALERT_CHANGES_ON_SYSTEM_FLIP"), MessageType.Warning, MessageBoxButton.YesNo);

                        if (messageBoxResult == MessageBoxResult.Yes)
                        {
                            LeftSideBarChild toselect = AllSystems?.FirstOrDefault(a => a.Children.Count > 0 && a.Children.FirstOrDefault(b => ((SystemBase)b.Source)?.Id == _lastSelectedId) != null)?.Children.FirstOrDefault(b => ((SystemBase)b.Source)?.Id == _lastSelectedId);
                            if (toselect != null)
                            {
                                toselect.IsSelected = true;
                            }
                            else
                            {
                                toselect            = AllSystems?.FirstOrDefault(a => a.Children.Count > 0 && a.Children.FirstOrDefault() != null)?.Children.FirstOrDefault();
                                toselect.IsSelected = true;
                            }
                            return;
                        }
                    }
                    //End Bug#4695
                }


                _eventAggregator.GetEvent <SystemSelectedItemSubscriber>().Publish((SystemBase)object2);
                _lastSelectedId = ((SystemBase)object2).Id;
            }
        }
        private void DisplayProjectDetails(IProjectInfoBAL projectInfoBll)
        {
            var currentProject = JCHVRF.Model.Project.GetProjectInstance;
            //currentProject = projectInfoBll.GetProjectInfo(currentProject.projectID).ProjectLegacy; //CurrentProject object is already being filled in the line above. commenting this to fix bug#2234

            List <LeftSideBarChild> vrfSystems = new List <LeftSideBarChild>();

            foreach (JCHVRF.Model.NextGen.SystemVRF systemVRF in currentProject.SystemListNextGen)
            {
                vrfSystems.Add(new LeftSideBarChild(systemVRF.Name, "VRF", systemVRF.StatusIcon, systemVRF));
            }
            _vrfSystemsObservableCollection.AddRange(vrfSystems);

            List <LeftSideBarChild> centralControllers = new List <LeftSideBarChild>();

            foreach (JCHVRF.Model.ControlSystem controlSystem in currentProject.ControlSystemList)
            {
                centralControllers.Add(new LeftSideBarChild(controlSystem.Name, "VRF", controlSystem.StatusIcon, controlSystem));
            }

            _centralContollerObservableCollection.AddRange(centralControllers);

            List <LeftSideBarChild> HeatExchangerSystems = new List <LeftSideBarChild>();

            foreach (JCHVRF.Model.SystemHeatExchanger systemHeatExch in currentProject.HeatExchangerSystems)
            {
                HeatExchangerSystems.Add(new LeftSideBarChild(systemHeatExch.Name, "VRF", systemHeatExch.StatusIcon, systemHeatExch));
            }


            _heatExchangerObservableCollection.AddRange(HeatExchangerSystems);

            if (vrfSystems.Count > 0)
            {
                _selectedLeftSideBarChild = vrfSystems[0];
            }
            else if (centralControllers.Count > 0)
            {
                _selectedLeftSideBarChild = centralControllers[0];
            }
            else if (HeatExchangerSystems.Count > 0)
            {
                _selectedLeftSideBarChild = HeatExchangerSystems[0];
            }

            updateLeftSideBarItems();

            _selectedLeftSideBarChild.IsSelected = true;
            _eventAggregator.GetEvent <SystemSelectedItemSubscriber>().Publish((SystemBase)_selectedLeftSideBarChild.Source);
        }
        private void OnLoadedChanged(string state)
        {
            if (state == "Loaded")
            {
                fromLoad = false;
                if (!_isLoadedOnce)
                {
                    Project.GetProjectInstance.SelectedSystemID = string.Empty;
                    RefreshSystemsList();

                    LeftSideBarItem  sideBarItem = AllSystems.FirstOrDefault(a => a.Children.Count > 0);
                    LeftSideBarChild first       = sideBarItem != null ? sideBarItem.Children[0] : null;

                    if (first != null)
                    {
                        if (firstInstance)
                        {
                            first.IsSelected = true;
                            first.IsEditable = false;
                            _eventAggregator.GetEvent <SystemSelectedItemSubscriber>().Publish((SystemBase)first.Source);
                            firstInstance = false;
                        }
                        else
                        {
                            SystemBase selectedSystem = WorkFlowContext.CurrentSystem;
                            foreach (LeftSideBarItem item in AllSystems)
                            {
                                foreach (LeftSideBarChild child in item.Children)
                                {
                                    if (child.Source.Equals(selectedSystem))
                                    {
                                        child.IsSelected = true;
                                        _eventAggregator.GetEvent <SystemSelectedItemSubscriber>().Publish(selectedSystem);
                                    }
                                }
                            }
                        }
                    }
                }
                _isLoadedOnce = true;
            }
            else
            {
            }
            fromLoad = true;
        }
        void filterSystemList()
        {
            AllSystems = null;

            if (Project.GetProjectInstance?.SystemListNextGen != null)
            {
                foreach (SystemBase system in Project.GetProjectInstance.SystemListNextGen)
                {
                    if (ContainsSearchText(system))
                    {
                        AllSystems[0].Children.Add(new LeftSideBarChild(system.Name, AllSystems[0].Header, system.StatusIcon, system));
                    }
                }
            }
            if (Project.GetProjectInstance?.HeatExchangerSystems != null)
            {
                foreach (SystemBase system in Project.GetProjectInstance.HeatExchangerSystems)
                {
                    if (ContainsSearchText(system))
                    {
                        AllSystems[1].Children.Add(new LeftSideBarChild(system.Name, AllSystems[0].Header, system.StatusIcon, system));
                    }
                }
            }

            if (Project.GetProjectInstance?.ControlSystemList != null)
            {
                foreach (SystemBase system in Project.GetProjectInstance.ControlSystemList)
                {
                    if (ContainsSearchText(system))
                    {
                        AllSystems[2].Children.Add(new LeftSideBarChild(system.Name, AllSystems[0].Header, system.StatusIcon, system));
                    }
                }
            }
            if (AllSystems != null && AllSystems.Count > 0)
            {
                LeftSideBarItem  sideBarItem = AllSystems.FirstOrDefault(a => a.Children.Count > 0);
                LeftSideBarChild first       = sideBarItem != null ? sideBarItem.Children[0] : null;
                if (first != null)
                {
                    first.IsSelected = true;
                    _eventAggregator.GetEvent <SystemSelectedItemSubscriber>().Publish((SystemBase)first.Source);
                }
            }
        }
        public void RefreshSystemsList()
        {
            AllSystems = null;

            if (Project.GetProjectInstance?.SystemListNextGen != null)
            {
                foreach (SystemBase system in Project.GetProjectInstance.SystemListNextGen)
                {
                    if (ContainsSearchText(system))
                    {
                        AllSystems[0].Children.Add(new LeftSideBarChild(system.Name, AllSystems[0].Header, system.StatusIcon, system));
                    }
                }
            }
            if (Project.GetProjectInstance?.HeatExchangerSystems != null)
            {
                foreach (SystemBase system in Project.GetProjectInstance.HeatExchangerSystems)
                {
                    if (ContainsSearchText(system))
                    {
                        AllSystems[1].Children.Add(new LeftSideBarChild(system.Name, AllSystems[0].Header, system.StatusIcon, system));
                    }
                }
            }

            if (Project.GetProjectInstance?.ControlSystemList != null)
            {
                foreach (SystemBase system in Project.GetProjectInstance.ControlSystemList)
                {
                    if (ContainsSearchText(system))
                    {
                        AllSystems[2].Children.Add(new LeftSideBarChild(system.Name, AllSystems[0].Header, system.StatusIcon, system));
                    }
                }
            }
            //RaisePropertyChanged("AllSystems");
            if (fromLoad == true)
            {
                _lastSelectedId = Project.CurrentProject.SelectedSystemID;
                if (!string.IsNullOrEmpty(_lastSelectedId))
                {
                    LeftSideBarChild toselect = AllSystems?.FirstOrDefault(a => a.Children.Count > 0 && a.Children.FirstOrDefault(b => ((SystemBase)b.Source)?.Id == _lastSelectedId) != null)?.Children.FirstOrDefault(b => ((SystemBase)b.Source)?.Id == _lastSelectedId);
                    if (toselect != null)
                    {
                        toselect.IsSelected = true;
                        if (isEditable.HasValue)
                        {
                            toselect.IsEditable = isEditable.Value;
                            //toselect.IsEditable = false;
                        }
                        if (isSideBarVisible.HasValue)
                        {
                            toselect.IsSideBarVisible = isSideBarVisible.Value;
                        }
                        _eventAggregator.GetEvent <SystemSelectedItemSubscriber>().Publish((SystemBase)toselect.Source);
                    }
                }
                else
                {
                    LeftSideBarItem  sideBarItem = AllSystems.FirstOrDefault(a => a.Children.Count > 0);
                    LeftSideBarChild first       = sideBarItem != null ? sideBarItem.Children[0] : null;
                    if (first != null)
                    {
                        first.IsSelected = true;
                        if (isEditable.HasValue)
                        {
                            first.IsEditable = isEditable.Value;
                        }
                        if (isSideBarVisible.HasValue)
                        {
                            first.IsSideBarVisible = isSideBarVisible.Value;
                        }
                        _eventAggregator.GetEvent <SystemSelectedItemSubscriber>().Publish((SystemBase)first.Source);
                    }
                }
            }
        }