public override bool PackStationOverviewRunStopPackingCondition_CanExecute(string action, WorkItem context, object caller, object target) { PackStationOverviewViewParameters viewParameters = null; if (context.Items.FindByType <PackStationOverviewViewParameters>().Count() > 0) { viewParameters = context.Items.FindByType <PackStationOverviewViewParameters>().Last(); } else { viewParameters = new PackStationOverviewViewParameters(); } if (string.IsNullOrEmpty(viewParameters.PickZoneId) && !string.IsNullOrEmpty(viewParameters.DepartureId) && !string.IsNullOrEmpty(viewParameters.ShipToCustomerId) && !string.IsNullOrEmpty(viewParameters.UserId)) { IActionCatalogService actionCatalog = context.Services.Get <IActionCatalogService>(true); RunStopPackingActionParameters actionParameters = null; bool isItemSelected = false; if (context.Items.FindByType <PackStationOverviewViewResult>().Count > 0) { isItemSelected = true; } PackStationOverviewViewToRunStopPackingActionTranslator translator = null; if (context.Items.FindByType <PackStationOverviewViewToRunStopPackingActionTranslator>().Count > 0) { translator = context.Items.FindByType <PackStationOverviewViewToRunStopPackingActionTranslator>().Last(); } else { translator = context.Items.AddNew <PackStationOverviewViewToRunStopPackingActionTranslator>(); } actionParameters = translator.Translate(new PackStationOverviewViewParameters()); actionParameters.IsItemSelected = isItemSelected; actionParameters.IsMultipleItemsSelected = false; return(actionCatalog.CanExecute(ActionNames.RunStopPacking, context, caller, actionParameters)); } return(false); }
public override void OnPackStationOverviewRunStopPacking(WorkItem context, object caller, object target) { WorkItem wi = GetModuleWorkItem(context); if (wi.Items.FindByType <RunStopPackingAction>().Count == 0) { wi.Items.AddNew <RunStopPackingAction>(); } PackStationOverviewViewParameters viewParameters = null; RunStopPackingActionParameters actionParameters = null; PackStationOverviewViewToRunStopPackingActionTranslator translator = null; bool isItemSelected = false; if (context.Items.FindByType <PackStationOverviewViewToRunStopPackingActionTranslator>().Count > 0) { translator = context.Items.FindByType <PackStationOverviewViewToRunStopPackingActionTranslator>().Last(); } else { translator = context.Items.AddNew <PackStationOverviewViewToRunStopPackingActionTranslator>(); } if (context.Items.FindByType <PackStationOverviewViewParameters>().Count() > 0) { viewParameters = context.Items.FindByType <PackStationOverviewViewParameters>().Last(); isItemSelected = true; } else { viewParameters = new PackStationOverviewViewParameters(); } actionParameters = translator.Translate(viewParameters); actionParameters.IsItemSelected = isItemSelected; actionParameters.IsMultipleItemsSelected = false; IPackStationOverviewView view = context.SmartParts.FindByType <PackStationOverviewView>().Last(); PackStationOverviewPresenter overviewPresenter = context.Items.FindByType <PackStationOverviewPresenter>().Last(); try { if (!view.Validate()) { return; } ActionCatalog.Execute(ActionNames.RunStopPacking, context, caller, actionParameters); // Check if view should be closed. bool ignoreClosing = ((context.Items.Get("IgnoreClose") != null) && ((bool)(context.Items.Get("IgnoreClose")))); overviewPresenter.ClearAllButPackedBy(); } catch (Imi.SupplyChain.UX.ValidationException ex) { view.HandleValidationResult(ValidationHelper.ConvertToResult((Imi.SupplyChain.UX.ValidationException)ex)); } }