private static void CreateGroup(SystemBase newSystem, ControlSystem systemToDuplicate) { ControlGroup _group = new ControlGroup(); ControlGroup _groupP = Project.CurrentProject.ControlGroupList.Find(x => x.ControlSystemID.Equals(systemToDuplicate.Id)); _group = _groupP.DeepClone(); List <Controller> _controllers = Project.CurrentProject.ControllerList.FindAll(x => x.ControlGroupID.Equals(_groupP.Id)); _group.AddToControlSystem(newSystem.Id); _group.SetName("Group " + (Project.CurrentProject.ControlGroupList.Count + 1)); _group.Id = Guid.NewGuid().ToString("N"); foreach (var item in _controllers) { Controller controllerCopy = item.DeepClone(); controllerCopy.ControlGroupID = _group.Id; controllerCopy.ControlSystemID = newSystem.Id; Project.CurrentProject.ControllerList.Add(controllerCopy); } Project.CurrentProject.ControlGroupList.Add(_group); List <RoomIndoor> copySysHeatExch = Project.CurrentProject.ExchangerList.FindAll(x => x.ControlGroupID.Contains(_groupP.Id)); foreach (var item in copySysHeatExch) { item.ControlGroupID.Add(_group.Id); } List <JCHVRF.Model.NextGen.SystemVRF> copySysVrf = Project.CurrentProject.SystemListNextGen.FindAll(x => x.ControlGroupID.Contains(_groupP.Id)); foreach (var item in copySysVrf) { item.ControlGroupID.Add(_group.Id); } var copysystemoncanvaslist = ((ControlSystem)newSystem).SystemsOnCanvasList; foreach (var sys in copysystemoncanvaslist) { if (sys.System.GetType() == typeof(RoomIndoor)) { ((RoomIndoor)sys.System).ControlGroupID.Add(_group.Id); } else if (sys.System.GetType() == typeof(JCHVRF.Model.NextGen.SystemVRF)) { ((JCHVRF.Model.NextGen.SystemVRF)sys.System).ControlGroupID.Add(_group.Id); } } }
/// <summary> /// Create Group and add it to Project, later Compatibility Check /// </summary> /// <param name="data"></param> /// <param name="project"></param> /// <returns></returns> public bool AssignGroupToEquipment(ImageData data, Project project) { bool isValid = false; _group = Project.CurrentProject.ControlGroupList.Find(x => x.ControlSystemID.Equals(CurrentSystem.Id)); if (_group != null) { } else { _group = new ControlGroup(); _group.SetName("Group " + (Project.CurrentProject.ControlGroupList.Count + 1)); _group.AddToControlSystem(_currentSystem.Id); _group.IsValidGrp = false; Project.CurrentProject.ControlGroupList.Add(_group); } controlsystem = Project.CurrentProject.ControlSystemList.Find(c => c.Id == _currentSystem.Id); if (controlsystem != null) { SelectedSystems = controlsystem.SystemsOnCanvasList; } var systemtoadd = new SystemsOnCanvas(); var systemType = data.Source.GetType(); switch (systemType.Name) { case "CentralController": isValid = CheckForController(data); break; case "SystemVRF": isValid = CheckForVrf(data, systemtoadd); break; case "RoomIndoor": isValid = CheckForHe(data, systemtoadd); break; } CheckForErrors(SelectedSystems, Project.CurrentProject.ControllerList.FindAll(c => c.ControlGroupID == _group.Id).Count); return(isValid); }