public PackStationToLCViewParameters TranslateFromResultToParameters(string toLoadCarrierId)
        {
            PackStationToLCViewParameters viewParameters = null;

            if (!string.IsNullOrEmpty(toLoadCarrierId))
            {
                viewParameters = new PackStationToLCViewParameters();

                viewParameters.LoadCarrierId = toLoadCarrierId;
            }

            return(viewParameters);
        }
        public override void PackStationOverviewViewUpdatedEventHandler(object sender, DataEventArgs <PackStationOverviewViewResult> eventArgs)
        {
            IPackStationOverviewView packStationOverviewView = WorkItem.SmartParts.FindByType <IPackStationOverviewView>().Last();

            //if (packStationOverviewView.CurrentItem != null)
            //    packStationOverviewView.SetFocus();

            IList <PackStationOverviewViewResult> ViewResults = packStationOverviewView.GetData;


            IDataView packStationFromLCView = WorkItem.Items.Get("Imi.SupplyChain.Warehouse.UX.Views.PickLoadCarrier.IPackStationFromLCView") as IDataView;

            if (packStationFromLCView != null)
            {
                PackStationOverviewViewToPackStationFromLCViewTranslator packStationOverviewViewToPackStationFromLCViewTranslator = null;

                if (WorkItem.Items.FindByType <PackStationOverviewViewToPackStationFromLCViewTranslator>().Count > 0)
                {
                    packStationOverviewViewToPackStationFromLCViewTranslator = WorkItem.Items.FindByType <PackStationOverviewViewToPackStationFromLCViewTranslator>().Last();
                }
                else
                {
                    packStationOverviewViewToPackStationFromLCViewTranslator = WorkItem.Items.AddNew <PackStationOverviewViewToPackStationFromLCViewTranslator>();
                }

                if (packStationFromLCView.IsEnabled)
                {
                    PackStationFromLCViewParameters packStationFromLCViewParameters = packStationOverviewViewToPackStationFromLCViewTranslator.TranslateFromResultToParameters(ViewResults);
                    packStationFromLCView.Update(packStationFromLCViewParameters);
                }
                else
                {
                    packStationFromLCView.Update(null);
                }
            }

            IDataView packStationToLCView = WorkItem.Items.Get("Imi.SupplyChain.Warehouse.UX.Views.PickLoadCarrier.IPackStationToLCView") as IDataView;

            if (packStationToLCView != null)
            {
                PackStationOverviewViewToPackStationToLCViewTranslator packStationOverviewViewToPackStationToLCViewTranslator = null;

                if (WorkItem.Items.FindByType <PackStationOverviewViewToPackStationToLCViewTranslator>().Count > 0)
                {
                    packStationOverviewViewToPackStationToLCViewTranslator = WorkItem.Items.FindByType <PackStationOverviewViewToPackStationToLCViewTranslator>().Last();
                }
                else
                {
                    packStationOverviewViewToPackStationToLCViewTranslator = WorkItem.Items.AddNew <PackStationOverviewViewToPackStationToLCViewTranslator>();
                }

                if (packStationToLCView.IsEnabled)
                {
                    string toLoadCarrierId = string.Empty;
                    if (WorkItem.Items.FindByType <PackStationOverviewPresenter>().Count > 0)
                    {
                        toLoadCarrierId = WorkItem.Items.FindByType <PackStationOverviewPresenter>().Last().ToLoadCarrierId;
                    }
                    PackStationToLCViewParameters packStationToLCViewParameters = packStationOverviewViewToPackStationToLCViewTranslator.TranslateFromResultToParameters(toLoadCarrierId);
                    packStationToLCView.Update(packStationToLCViewParameters);
                }
                else
                {
                    packStationToLCView.Update(null);
                }
            }
        }
        public override void OnPackStationToLCRunFinishPackingWorkflow(WorkItem context, object caller, object target)
        {
            WorkItem wi = GetModuleWorkItem(context);

            if (wi.Items.FindByType <RunFinishPackingWorkflowAction>().Count == 0)
            {
                wi.Items.AddNew <RunFinishPackingWorkflowAction>();
            }

            PackStationToLCViewResult viewResult = null;
            RunFinishPackingWorkflowActionParameters actionParameters = null;
            PackStationToLCViewToRunFinishPackingWorkflowActionTranslator translator = null;
            bool isItemSelected = false;

            if (context.Items.FindByType <PackStationToLCViewToRunFinishPackingWorkflowActionTranslator>().Count > 0)
            {
                translator = context.Items.FindByType <PackStationToLCViewToRunFinishPackingWorkflowActionTranslator>().Last();
            }
            else
            {
                translator = context.Items.AddNew <PackStationToLCViewToRunFinishPackingWorkflowActionTranslator>();
            }

            if (context.Items.FindByType <PackStationToLCViewResult>().Count > 0)
            {
                viewResult     = context.Items.FindByType <PackStationToLCViewResult>().Last();
                isItemSelected = true;
            }
            else
            {
                viewResult = new PackStationToLCViewResult();

                if (context.Items.FindByType <PackStationToLCViewParameters>().Count() > 0)
                {
                    PackStationToLCViewParameters viewParameters = context.Items.FindByType <PackStationToLCViewParameters>().Last();
                }
            }
            actionParameters = translator.Translate(viewResult);
            actionParameters.IsItemSelected          = isItemSelected;
            actionParameters.IsMultipleItemsSelected = false;

            if (context.Items.FindByType <PackStationOverviewViewParameters>().Count > 0)
            {
                PackStationOverviewViewParameters overviewParameters = context.Items.FindByType <PackStationOverviewViewParameters>().Last();
                IPackStationToLCView         view = context.SmartParts.FindByType <PackStationToLCView>().Last();
                PackStationOverviewPresenter overviewPresenter = context.Items.FindByType <PackStationOverviewPresenter>().Last();

                actionParameters.UserId = overviewParameters.UserId;
                try
                {
                    if (!view.Validate())
                    {
                        return;
                    }

                    ActionCatalog.Execute(ActionNames.RunFinishPackingWorkflow, context, caller, actionParameters);

                    // Check if view should be closed.
                    bool ignoreClosing = ((context.Items.Get("IgnoreClose") != null) &&
                                          ((bool)(context.Items.Get("IgnoreClose"))));

                    overviewPresenter.ToLoadCarrierId = string.Empty;
                    overviewPresenter.ClearAllButPackedBy();
                }
                catch (Imi.SupplyChain.UX.ValidationException ex)
                {
                    view.HandleValidationResult(ValidationHelper.ConvertToResult((Imi.SupplyChain.UX.ValidationException)ex));
                }
            }
        }