コード例 #1
0
 public void SaveExecute()
 {
     using (new WaitCursor())
     {
         SCA.Interface.BusinessLogic.ILinkageConfigMixedService _mixedService = new LinkageConfigMixedService(TheController);
         _mixedService.SaveToDB();
     }
 }
コード例 #2
0
        private bool UpdateToModel(object type, object item, string[] columnNames, string[] data)
        {
            try
            {
                GridDetailType detailType = (GridDetailType)type;
                switch (detailType)
                {
                case GridDetailType.Mixed:
                {
                    int controllerID = ((EditableLinkageConfigMixed)item).ControllerID;
                    int itemID       = ((EditableLinkageConfigMixed)item).ID;
                    ControllerModel controller = SCA.BusinessLib.ProjectManager.GetInstance.Project.Controllers.Find(
                        delegate(ControllerModel x)
                        {
                            return(x.ID == controllerID);
                        }
                        );
                    ILinkageConfigMixedService mixedService = new LinkageConfigMixedService(controller);
                    mixedService.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;

                case GridDetailType.General:
                {
                    int controllerID = ((EditableLinkageConfigGeneral)item).ControllerID;
                    int itemID       = ((EditableLinkageConfigGeneral)item).ID;
                    ControllerModel controller = SCA.BusinessLib.ProjectManager.GetInstance.Project.Controllers.Find(
                        delegate(ControllerModel x)
                        {
                            return(x.ID == controllerID);
                        }
                        );
                    ILinkageConfigGeneralService mixedService = new LinkageConfigGeneralService(controller);
                    mixedService.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;

                case GridDetailType.Standard:
                {
                    int controllerID = ((EditableLinkageConfigStandard)item).ControllerID;
                    int itemID       = ((EditableLinkageConfigStandard)item).ID;
                    ControllerModel controller = SCA.BusinessLib.ProjectManager.GetInstance.Project.Controllers.Find(
                        delegate(ControllerModel x)
                        {
                            return(x.ID == controllerID);
                        }
                        );
                    ILinkageConfigStandardService standardService = new LinkageConfigStandardService(controller);
                    standardService.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;

                case GridDetailType.ManualControlBoard:
                {
                    int controllerID = (( EditableManualControlBoard)item).ControllerID;
                    int itemID       = ((EditableManualControlBoard)item).ID;
                    ControllerModel controller = SCA.BusinessLib.ProjectManager.GetInstance.Project.Controllers.Find(
                        delegate(ControllerModel x)
                        {
                            return(x.ID == controllerID);
                        }
                        );
                    IManualControlBoardService mcbService = new ManualControlBoardService(controller);
                    //mcbService
                    mcbService.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;

                case GridDetailType.Device8000:
                {
                    LoopModel loop   = ((EditableDeviceInfo8000)item).Loop;
                    int       itemID = ((EditableDeviceInfo8000)item).ID;
                    IDeviceService <DeviceInfo8000> service = new DeviceService8000();
                    service.TheLoop = loop;
                    service.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;

                case GridDetailType.Device8001:
                {
                    LoopModel loop   = ((EditableDeviceInfo8001)item).Loop;
                    int       itemID = ((EditableDeviceInfo8001)item).ID;
                    IDeviceService <DeviceInfo8001> service = new DeviceService8001();
                    service.TheLoop = loop;
                    service.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;

                case GridDetailType.Device8003:
                {
                    LoopModel loop   = ((EditableDeviceInfo8003)item).Loop;
                    int       itemID = ((EditableDeviceInfo8003)item).ID;
                    IDeviceService <DeviceInfo8003> service = new DeviceService8003();
                    service.TheLoop = loop;
                    service.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;

                case GridDetailType.Device8007:
                {
                    LoopModel loop   = ((EditableDeviceInfo8007)item).Loop;
                    int       itemID = ((EditableDeviceInfo8007)item).ID;
                    IDeviceService <DeviceInfo8007> service = new DeviceService8007();
                    service.TheLoop = loop;
                    service.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;

                case GridDetailType.Device8021:
                {
                    LoopModel loop   = ((EditableDeviceInfo8021)item).Loop;
                    int       itemID = ((EditableDeviceInfo8021)item).ID;
                    IDeviceService <DeviceInfo8021> service = new DeviceService8021();
                    service.TheLoop = loop;
                    service.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;

                case GridDetailType.Device8036:
                {
                    LoopModel loop   = ((EditableDeviceInfo8036)item).Loop;
                    int       itemID = ((EditableDeviceInfo8036)item).ID;
                    IDeviceService <DeviceInfo8036> service = new DeviceService8036();
                    service.TheLoop = loop;
                    service.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;

                case GridDetailType.Device8053:
                {
                    LoopModel loop   = ((EditableDeviceInfo8053)item).Loop;
                    int       itemID = ((EditableDeviceInfo8053)item).ID;
                    IDeviceService <DeviceInfo8053> service = new DeviceService8053();
                    service.TheLoop = loop;
                    service.UpdateViaSpecifiedColumnName(itemID, columnNames, data);
                }
                break;
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }
コード例 #3
0
        public void ImportExecute()
        {
            //得到需要导入的控制器的信息
            ControllerModel controller = ProjectManager.GetInstance.TheControllerViaImporting;

            ControllerOperationCommon    controllerBase         = new ControllerOperationCommon();
            LinkageConfigStandardService standardLinkageService = new LinkageConfigStandardService(TheController);
            LinkageConfigMixedService    mixedLinkageService    = new LinkageConfigMixedService(TheController);
            LinkageConfigGeneralService  gerneralLinkageService = new LinkageConfigGeneralService(TheController);
            int maxLoopID = controllerBase.GetMaxLoopID();
            List <CheckItem> selectedLoops = LoopNameCollection.Where((d) => d.IsChecked == true).ToList <CheckItem>();

            //比对回路信息是否已经存在:提示,是否覆盖
            foreach (var loop in controller.Loops)
            {
                int selectedLoopCount = selectedLoops.Count((d) => d.Value == loop.Code);
                if (selectedLoopCount <= 0) //未勾选的回路,放弃导入
                {
                    continue;
                }
                LoopModel existLoop = TheController.Loops.Where((d) => d.Code == loop.Code).FirstOrDefault();
                int       amount    = TheController.Loops.Count((d) => d.Code == loop.Code);
                if (amount > 0)
                {
                    string strPromptInfo = "控制器" + TheController.Name + ":已经存在" + loop.Code + ",覆盖吗?";
                    if (MessageBox.Show(strPromptInfo, "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                    {
                        TheController.Loops.RemoveAll((d) => d.Code == loop.Code);
                        loop.Controller   = TheController;
                        loop.ControllerID = TheController.ID;
                        loop.ID           = existLoop.ID;
                        TheController.Loops.Add(loop);
                    }
                }
                else
                {
                    maxLoopID++;
                    loop.Controller   = TheController;
                    loop.ControllerID = TheController.ID;
                    loop.ID           = maxLoopID;
                    TheController.Loops.Add(loop);
                }
            }

            List <CheckItem> lstOtherSetting = OtherSettingsCollection.Where((d) => d.IsChecked == true).ToList <CheckItem>();
            int selectedStandardCount        = lstOtherSetting.Count((d) => d.Value == "标准组态");

            int maxStandardLinkageConfigID = standardLinkageService.GetMaxID();

            if (selectedStandardCount > 0) //未勾选,放弃导入
            {
                //比对组态信息,按编号比对
                foreach (var importConfig in controller.StandardConfig)
                {
                    LinkageConfigStandard existConfig = TheController.StandardConfig.Where((d) => d.Code == importConfig.Code).FirstOrDefault();
                    int amount = TheController.StandardConfig.Count((d) => d.Code == importConfig.Code);
                    if (amount > 0)
                    {
                        string strPromptInfo = "控制器" + TheController.Name + ":已经存在标准组态" + importConfig.Code + ",覆盖吗?";
                        if (MessageBox.Show(strPromptInfo, "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                        {
                            TheController.StandardConfig.RemoveAll((d) => d.Code == importConfig.Code);
                            importConfig.Controller   = TheController;
                            importConfig.ControllerID = TheController.ID;
                            importConfig.ID           = existConfig.ID;
                            TheController.StandardConfig.Add(importConfig);
                        }
                    }
                    else
                    {
                        maxStandardLinkageConfigID++;
                        importConfig.Controller   = TheController;
                        importConfig.ControllerID = TheController.ID;
                        importConfig.ID           = maxStandardLinkageConfigID;
                        TheController.StandardConfig.Add(importConfig);
                    }
                }
            }
            int selectedMixedCount = lstOtherSetting.Count((d) => d.Value == "混合组态");

            if (selectedMixedCount > 0) //未勾选,放弃导入
            {
                //比对组态信息,按编号比对
                foreach (var importConfig in controller.MixedConfig)
                {
                    int amount = TheController.MixedConfig.Count((d) => d.Code == importConfig.Code);
                    if (amount > 0)
                    {
                        string strPromptInfo = "控制器" + TheController.Name + ":已经存在混合组态" + importConfig.Code + ",覆盖吗?";
                        if (MessageBox.Show(strPromptInfo, "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                        {
                            TheController.MixedConfig.RemoveAll((d) => d.Code == importConfig.Code);
                            TheController.MixedConfig.Add(importConfig);
                        }
                    }
                    else
                    {
                        TheController.MixedConfig.Add(importConfig);
                    }
                }
            }

            int selectedGeneralCount = lstOtherSetting.Count((d) => d.Value == "通用组态");

            if (selectedGeneralCount > 0) //未勾选,放弃导入
            {
                //比对组态信息,按编号比对
                foreach (var importConfig in controller.GeneralConfig)
                {
                    int amount = TheController.GeneralConfig.Count((d) => d.Code == importConfig.Code);
                    if (amount > 0)
                    {
                        string strPromptInfo = "控制器" + TheController.Name + ":已经存在通用组态" + importConfig.Code + ",覆盖吗?";
                        if (MessageBox.Show(strPromptInfo, "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                        {
                            TheController.GeneralConfig.RemoveAll((d) => d.Code == importConfig.Code);
                            TheController.GeneralConfig.Add(importConfig);
                        }
                    }
                    else
                    {
                        TheController.GeneralConfig.Add(importConfig);
                    }
                }
            }

            int selectedMCBCount = lstOtherSetting.Count((d) => d.Value == "网络手动盘");

            if (selectedMCBCount > 0) //未勾选,放弃导入            {
            {
                foreach (var importConfig in controller.ControlBoard)
                {
                    int amount = TheController.ControlBoard.Count((d) => d.Code == importConfig.Code);
                    if (amount > 0)
                    {
                        string strPromptInfo = "控制器" + TheController.Name + ":已经存在网络手动盘" + importConfig.Code + ",覆盖吗?";
                        if (MessageBox.Show(strPromptInfo, "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                        {
                            TheController.ControlBoard.RemoveAll((d) => d.Code == importConfig.Code);
                            TheController.ControlBoard.Add(importConfig);
                        }
                    }
                    else
                    {
                        TheController.ControlBoard.Add(importConfig);
                    }
                }
            }

            CloseExecute();
            ProjectManager.GetInstance.TheControllerViaImporting = null;
            //导入完成,导入信息清除
            EventMediator.NotifyColleagues("RefreshNavigator", TheController);
        }