public override bool PackStationFromLcEditRunPackRowForPackStationCondition_CanExecute(string action, WorkItem context, object caller, object target) { // Multi select is not supported if (context.Items.FindByType <IList <PackStationFromLcEditViewResult> >().Count > 0) { if (context.Items.FindByType <IList <PackStationFromLcEditViewResult> >().Last().Count > 1) { return(false); } } IActionCatalogService actionCatalog = context.Services.Get <IActionCatalogService>(true); PackStationFromLcEditViewResult viewResult = null; RunPackRowForPackStationActionParameters actionParameters = null; bool isItemSelected = false; if (context.Items.FindByType <PackStationFromLcEditViewResult>().Count > 0) { viewResult = context.Items.FindByType <PackStationFromLcEditViewResult>().Last(); isItemSelected = true; } else { PackStationFromLcEditViewResult vr = new PackStationFromLcEditViewResult(); if (context.Items.FindByType <PackStationFromLcEditViewParameters>().Count() > 0) { PackStationFromLcEditViewParameters viewParameters = context.Items.FindByType <PackStationFromLcEditViewParameters>().Last(); } viewResult = vr; } PackStationFromLcEditViewToRunPackRowForPackStationActionTranslator translator = null; if (context.Items.FindByType <PackStationFromLcEditViewToRunPackRowForPackStationActionTranslator>().Count > 0) { translator = context.Items.FindByType <PackStationFromLcEditViewToRunPackRowForPackStationActionTranslator>().Last(); } else { translator = context.Items.AddNew <PackStationFromLcEditViewToRunPackRowForPackStationActionTranslator>(); } actionParameters = translator.Translate(viewResult); if (context.Items.FindByType <PackStationOverviewPresenter>().Count > 0) { if (!string.IsNullOrEmpty(context.Items.FindByType <PackStationOverviewPresenter>().Last().ToLoadCarrierId)) { actionParameters.ToLoadCarrierId = context.Items.FindByType <PackStationOverviewPresenter>().Last().ToLoadCarrierId; } else { actionParameters.ToLoadCarrierId = string.Empty; } } actionParameters.IsItemSelected = isItemSelected; actionParameters.IsMultipleItemsSelected = false; return(actionCatalog.CanExecute(ActionNames.RunPackRowForPackStation, context, caller, actionParameters)); }
public override void OnRunPackRowForPackStation(WorkItem context, object caller, object target) { if (context.Items.Contains("IgnoreClose")) { context.Items.Remove(context.Items["IgnoreClose"]); } if (context.Items.Contains("DialogResult")) { context.Items.Remove(context.Items["DialogResult"]); } if (context.Items.Contains("RefreshPackStationOverview")) { context.Items.Remove(context.Items["RefreshPackStationOverview"]); } RunPackRowForPackStationActionParameters actionParameters = target as RunPackRowForPackStationActionParameters; PackRowForPackStationRequest serviceRequest = new PackRowForPackStationRequest(); serviceRequest.PackRowForPackStationParameters = new PackRowForPackStationParameters(); serviceRequest.PackRowForPackStationParameters.FromLoadCarrierId = actionParameters.FromLoadCarrierId; serviceRequest.PackRowForPackStationParameters.PickedQuantity = actionParameters.PickedQuantity; serviceRequest.PackRowForPackStationParameters.ToLoadCarrierId = actionParameters.ToLoadCarrierId; serviceRequest.PackRowForPackStationParameters.PickOrderLineNumber = actionParameters.PickOrderLineNumber; try { PackRowForPackStationResponse serviceResponse = PickLoadCarrierService.PackRowForPackStation(serviceRequest); context.Items.Add(DialogResult.None, "DialogResult"); context.Items.Add(serviceResponse.PackRowForPackStationResult.RefreshGUI.Value, "RefreshPackStationOverview"); } catch (FaultException <ValidationFault> ex) { if (ex.Detail.ValidationError == ValidationError.NullValue) { throw new Imi.SupplyChain.UX.NullValidationException(ex.Detail.Message, ex.Detail.ParameterName); } else { throw new Imi.SupplyChain.UX.ValidationException(ex.Detail.Message, ex.Detail.ParameterName); } } }
public virtual void OnPackStationOverviewRunPackRowForPackStation(WorkItem context, object caller, object target) { if (target is Imi.SupplyChain.Warehouse.UX.Views.PickLoadCarrier.PackStationOverviewPackRowEventArgs) { WorkItem wi = GetModuleWorkItem(context); if (wi.Items.FindByType <RunPackRowForPackStationAction>().Count == 0) { wi.Items.AddNew <RunPackRowForPackStationAction>(); } Imi.SupplyChain.Warehouse.UX.Views.PickLoadCarrier.PackStationOverviewPackRowEventArgs args = target as Imi.SupplyChain.Warehouse.UX.Views.PickLoadCarrier.PackStationOverviewPackRowEventArgs; RunPackRowForPackStationActionParameters actionParameters = new RunPackRowForPackStationActionParameters(); actionParameters.FromLoadCarrierId = args.FromLoadCarrier; actionParameters.ToLoadCarrierId = args.ToLoadCarrier; actionParameters.PickOrderLineNumber = args.PickOrderLineNumber; actionParameters.PickedQuantity = args.QuantityToPack; actionParameters.IsItemSelected = true; IPackStationOverviewView packStationOverviewView = context.SmartParts.FindByType <IPackStationOverviewView>().LastOrDefault(); IPackStationFromLCView packStationFromLcView = context.SmartParts.FindByType <IPackStationFromLCView>().LastOrDefault(); IPackStationToLCView packStationToLcView = context.SmartParts.FindByType <IPackStationToLCView>().LastOrDefault(); try { ActionCatalog.Execute(ActionNames.RunPackRowForPackStation, context, caller, actionParameters); if (context.Items.Contains("RefreshPackStationOverview")) { if (((bool)context.Items["RefreshPackStationOverview"])) { packStationOverviewView.Refresh(); } else { if (packStationFromLcView != null) { packStationFromLcView.Refresh(); } if (packStationToLcView != null) { packStationToLcView.Refresh(); } } } else { if (packStationFromLcView != null) { packStationFromLcView.Refresh(); } if (packStationToLcView != null) { packStationToLcView.Refresh(); } } } catch { throw; } } }
public override void OnPackStationFromLcEditRunPackRowForPackStation(WorkItem context, object caller, object target) { WorkItem wi = GetModuleWorkItem(context); if (wi.Items.FindByType <RunPackRowForPackStationAction>().Count == 0) { wi.Items.AddNew <RunPackRowForPackStationAction>(); } PackStationFromLcEditViewResult viewResult = null; RunPackRowForPackStationActionParameters actionParameters = null; PackStationFromLcEditViewToRunPackRowForPackStationActionTranslator translator = null; bool isItemSelected = false; if (context.Items.FindByType <PackStationFromLcEditViewToRunPackRowForPackStationActionTranslator>().Count > 0) { translator = context.Items.FindByType <PackStationFromLcEditViewToRunPackRowForPackStationActionTranslator>().Last(); } else { translator = context.Items.AddNew <PackStationFromLcEditViewToRunPackRowForPackStationActionTranslator>(); } if (context.Items.FindByType <PackStationFromLcEditViewResult>().Count > 0) { viewResult = context.Items.FindByType <PackStationFromLcEditViewResult>().Last(); isItemSelected = true; } else { viewResult = new PackStationFromLcEditViewResult(); if (context.Items.FindByType <PackStationFromLcEditViewParameters>().Count() > 0) { PackStationFromLcEditViewParameters viewParameters = context.Items.FindByType <PackStationFromLcEditViewParameters>().Last(); } } actionParameters = translator.Translate(viewResult); if (context.Items.FindByType <PackStationOverviewPresenter>().Count > 0) { if (!string.IsNullOrEmpty(context.Items.FindByType <PackStationOverviewPresenter>().Last().ToLoadCarrierId)) { actionParameters.ToLoadCarrierId = context.Items.FindByType <PackStationOverviewPresenter>().Last().ToLoadCarrierId; } else { actionParameters.ToLoadCarrierId = string.Empty; } } actionParameters.IsItemSelected = isItemSelected; actionParameters.IsMultipleItemsSelected = false; IPackStationFromLcEditView view = context.SmartParts.FindByType <PackStationFromLcEditView>().Last(); IPackStationOverviewView packStationOverviewView = context.SmartParts.FindByType <IPackStationOverviewView>().LastOrDefault(); IPackStationFromLCView packStationFromLcView = context.SmartParts.FindByType <IPackStationFromLCView>().LastOrDefault(); IPackStationToLCView packStationToLcView = context.SmartParts.FindByType <IPackStationToLCView>().LastOrDefault(); try { if (!view.Validate()) { return; } ActionCatalog.Execute(ActionNames.RunPackRowForPackStation, context, caller, actionParameters); // Check if view should be closed. bool ignoreClosing = ((context.Items.Get("IgnoreClose") != null) && ((bool)(context.Items.Get("IgnoreClose")))); if (context.Items.Contains("RefreshPackStationOverview")) { if (((bool)context.Items["RefreshPackStationOverview"])) { packStationOverviewView.Refresh(); } else { if (packStationFromLcView != null) { packStationFromLcView.Refresh(); } if (packStationToLcView != null) { packStationToLcView.Refresh(); } } } else { if (packStationFromLcView != null) { packStationFromLcView.Refresh(); } if (packStationToLcView != null) { packStationToLcView.Refresh(); } } } catch (Imi.SupplyChain.UX.ValidationException ex) { view.HandleValidationResult(ValidationHelper.ConvertToResult((Imi.SupplyChain.UX.ValidationException)ex)); } }