public void SaveExecute() { using (new WaitCursor()) { SCA.Interface.BusinessLogic.ILinkageConfigMixedService _mixedService = new LinkageConfigMixedService(TheController); _mixedService.SaveToDB(); } }
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); }
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); }