/// <summary> /// Constructor /// </summary> public UnmergeOrderComponentControl(UnmergeOrderComponent component) : base(component) { InitializeComponent(); _component = component; _cancelReason.DataSource = _component.ReasonChoices; _cancelReason.DataBindings.Add("Value", _component, "SelectedReason", true, DataSourceUpdateMode.OnPropertyChanged); _okButton.DataBindings.Add("Enabled", _component, "AcceptEnabled", false, DataSourceUpdateMode.OnPropertyChanged); }
protected bool ExecuteCore(WorklistItemSummaryBase item) { EnumValueInfo reason; var reasonCode = OrderMergeSettings.Default.UnmergeDefaultReasonCode; if (string.IsNullOrEmpty(reasonCode)) { var unmergeComponent = new UnmergeOrderComponent(); var exitCode = ApplicationComponent.LaunchAsDialog( this.Context.DesktopWindow, unmergeComponent, string.Format("Undo merge order {0}", AccessionFormat.Format(item.AccessionNumber))); if (exitCode != ApplicationComponentExitCode.Accepted) { return(false); } reason = unmergeComponent.SelectedReason; } else { // confirm var message = string.Format("Un-merge all orders merged into {0}?", item.AccessionNumber); if (DialogBoxAction.No == this.Context.DesktopWindow.ShowMessageBox(message, MessageBoxActions.YesNo)) { return(false); } reason = new EnumValueInfo(reasonCode, null, null); } Platform.GetService( delegate(IOrderEntryService service) { var request = new UnmergeOrderRequest(item.OrderRef) { UnmergeReason = reason }; service.UnmergeOrder(request); }); InvalidateFolders(); return(true); }
public void SetComponent(IApplicationComponent component) { _component = (UnmergeOrderComponent)component; }