public override void PackStationSearchPanelViewSearchExecutedEventHandler(object sender, DataEventArgs <PackStationSearchPanelViewResult> eventArgs)
        {
            IPackStationOverviewView packStationOverviewView = WorkItem.SmartParts.FindByType <IPackStationOverviewView>().Last();

            if (eventArgs.Data != null)
            {
                PackStationSearchPanelViewToPackStationOverviewViewTranslator packStationSearchPanelViewToPackStationOverviewViewTranslator = null;

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


                PackStationOverviewViewParameters viewParameters = packStationSearchPanelViewToPackStationOverviewViewTranslator.TranslateFromResultToParameters(eventArgs.Data);
                packStationOverviewView.Update(viewParameters);
            }
            else
            {
                PackStationOverviewViewParameters viewParameters = new PackStationOverviewViewParameters();
                packStationOverviewView.Update(viewParameters);
            }
        }
        public override void OnViewShow()
        {
            if ((View.RefreshDataOnShow) || (forceUpdate))
            {
                View.Refresh();
            }



            IPackStationOverviewView packStationOverviewView = WorkItem.SmartParts.FindByType <IPackStationOverviewView>().LastOrDefault();

            if (packStationOverviewView != null)
            {
                if (packStationOverviewView.EANFocus)
                {
                    packStationOverviewView.SetFocus();
                }
                else
                {
                    View.SetFocus();
                }
            }
            else
            {
                View.SetFocus();
            }
        }
        public override void OnPackStationOverviewRunUndoPacking(WorkItem context, object caller, object target)
        {
            WorkItem wi = GetModuleWorkItem(context);

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

            RunUndoPackingActionParameters actionParameters = null;
            PackStationOverviewViewToRunUndoPackingActionTranslator translator = null;

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

            PackStationOverviewPresenter overviewPresenter = null;

            if (context.Items.FindByType <PackStationOverviewPresenter>().Count > 0)
            {
                overviewPresenter = context.Items.FindByType <PackStationOverviewPresenter>().Last();
            }
            if (overviewPresenter == null)
            {
                return;
            }

            actionParameters = translator.Translate(overviewPresenter.ToLoadCarrierId);
            actionParameters.IsItemSelected          = true;
            actionParameters.IsMultipleItemsSelected = false;

            IPackStationOverviewView view = context.SmartParts.FindByType <PackStationOverviewView>().Last();

            try
            {
                ActionCatalog.Execute(ActionNames.RunUndoPacking, 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));
            }
        }
        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 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 OnPackStationToLCRunUnPackAllRowsForPackStation(WorkItem context, object caller, object target)
        {
            WorkItem wi = GetModuleWorkItem(context);

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

            PackStationToLCViewResult viewResult = null;
            RunUnPackAllRowsForPackStationActionParameters actionParameters = null;
            PackStationToLCViewToRunUnPackAllRowsForPackStationActionTranslator translator = null;
            bool isItemSelected = false;

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

            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;

            IPackStationToLCView     view = context.SmartParts.FindByType <PackStationToLCView>().Last();
            IPackStationOverviewView packStationOverviewView = context.SmartParts.FindByType <IPackStationOverviewView>().LastOrDefault();

            try
            {
                if (!view.Validate())
                {
                    return;
                }

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

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

                packStationOverviewView.Refresh();
            }
            catch (Imi.SupplyChain.UX.ValidationException ex)
            {
                view.HandleValidationResult(ValidationHelper.ConvertToResult((Imi.SupplyChain.UX.ValidationException)ex));
            }
        }