示例#1
0
        /// <summary>
        /// The various form actions for the describe merchandise form in the new pawn loan flow
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="data"></param>
        private void describeMerchFormAction(object sender, object data)
        {
            if (sender == null || data == null)
            {
                throw new ApplicationException("Describe Merchandise form navigation action handler received invalid data");
            }

            NavBox descMerchNavBox = (NavBox)sender;

            NavBox.NavAction action = descMerchNavBox.Action;
            if (action == NavBox.NavAction.BACKANDSUBMIT)
            {
                CashlinxDesktopSession.Instance.HistorySession.Back();
                action = NavBox.NavAction.SUBMIT;
            }

            switch (action)
            {
            case NavBox.NavAction.SUBMIT:
                this.nextState = GunBookEditFlowState.DescribeItem;
                break;

            case NavBox.NavAction.CANCEL:
                CashlinxDesktopSession.Instance.HistorySession.Back();
                this.nextState = GunBookEditFlowState.EditGunBookRecord;
                break;

            default:
                throw new ApplicationException("" + action.ToString() + " is not a valid state for Describe Merchandise");
            }
            this.executeNextState();
        }
示例#2
0
        /// <summary>
        /// NavBox OnAction Handler for customer replace Form
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="data"></param>
        private void customerReplaceFormNavAction(object sender, object data)
        {
            if (sender == null || data == null)
            {
                throw new ApplicationException("Customer replace form navigation action handler received invalid data");
            }

            NavBox custReplaceNavBox = (NavBox)sender;

            NavBox.NavAction lookupAction = custReplaceNavBox.Action;
            switch (lookupAction)
            {
            case NavBox.NavAction.SUBMIT:
            case NavBox.NavAction.BACKANDSUBMIT:
            case NavBox.NavAction.CANCEL:
                CashlinxDesktopSession.Instance.HistorySession.Back();
                this.nextState = GunBookEditFlowState.EditGunBookRecord;
                break;

            default:
                throw new ApplicationException("" + lookupAction.ToString() + " is not a valid state for customer replace form");
            }

            this.executeNextState();
        }
示例#3
0
        /// <summary>
        /// NavBox OnAction Handler for Police Holds List Form
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="data"></param>
        private void gunBookSearchFormNavAction(object sender, object data)
        {
            if (sender == null || data == null)
            {
                throw new ApplicationException("Gun Book Search form navigation action handler received invalid data");
            }

            NavBox gunBookSearchNavBox = (NavBox)sender;

            NavBox.NavAction lookupAction = gunBookSearchNavBox.Action;
            if (lookupAction == NavBox.NavAction.BACKANDSUBMIT)
            {
                CashlinxDesktopSession.Instance.HistorySession.Back();
                lookupAction = NavBox.NavAction.SUBMIT;
            }
            switch (lookupAction)
            {
            case NavBox.NavAction.SUBMIT:
                this.nextState = GunBookEditFlowState.EditGunBookRecord;
                break;

            case NavBox.NavAction.CANCEL:
                this.nextState = GunBookEditFlowState.Cancel;
                break;

            default:
                throw new ApplicationException("" + lookupAction.ToString() + " is not a valid state for Gun book search");
            }

            this.executeNextState();
        }
示例#4
0
 public GunBookEditFlowExecutor(Form parentForm, FxnBlock eStateNotifier)
     : base(NAME)
 {
     this.parentForm       = parentForm;
     this.endStateNotifier = eStateNotifier;
     this.nextState        = GunBookEditFlowState.GunBookSearch;
     this.setExecBlock(this.executorFxn);
     this.executeNextState();
 }
示例#5
0
        /// <summary>
        /// The various form actions for describe item form
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="data"></param>
        private void describeItemFormAction(object sender, object data)
        {
            if (sender == null || data == null)
            {
                throw new ApplicationException("Describe Item form navigation action handler received invalid data");
            }

            NavBox descItemNavBox = (NavBox)sender;

            NavBox.NavAction action = descItemNavBox.Action;
            if (action == NavBox.NavAction.BACKANDSUBMIT)
            {
                CashlinxDesktopSession.Instance.HistorySession.Back();
                action = NavBox.NavAction.SUBMIT;
            }

            switch (action)
            {
            case NavBox.NavAction.SUBMIT:
                if (descItemNavBox.CustomDetail == "DescribeMerchandise")
                {
                    this.nextState = GunBookEditFlowState.DescribeMerchandise;
                }
                else
                {
                    if (!GunBookUtilities.UpdateGunDescriptionData())
                    {
                        throw new ApplicationException("Error encountered in updating gun book description");
                    }
                    this.nextState = GunBookEditFlowState.EditGunBookRecord;
                }
                break;

            case NavBox.NavAction.CANCEL:
                CashlinxDesktopSession.Instance.HistorySession.Back();
                this.nextState = GunBookEditFlowState.EditGunBookRecord;
                break;

            case NavBox.NavAction.BACK:
                CashlinxDesktopSession.Instance.HistorySession.Back();
                this.nextState = descItemNavBox.CustomDetail == "GUNEDIT" ? GunBookEditFlowState.EditGunBookRecord : GunBookEditFlowState.DescribeMerchandise;
                break;

            default:
                throw new ApplicationException("" + action.ToString() + " is not a valid state for Describe Item");
            }
            this.executeNextState();
        }
示例#6
0
        /// <summary>
        /// NavBox OnAction Handler for Lookup Customer
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="data"></param>
        private void lookupCustFormNavAction(object sender, object data)
        {
            if (sender == null || data == null)
            {
                throw new ApplicationException("Lookup customer form navigation action handler received invalid data");
            }

            NavBox         lookupCustNavBox = (NavBox)sender;
            LookupCustomer lookupCustForm   = (LookupCustomer)data;

            NavBox.NavAction lookupAction = lookupCustNavBox.Action;
            if (lookupAction == NavBox.NavAction.BACKANDSUBMIT)
            {
                CashlinxDesktopSession.Instance.HistorySession.Back();
                lookupAction = NavBox.NavAction.SUBMIT;
            }
            switch (lookupAction)
            {
            case NavBox.NavAction.SUBMIT:
                if (lookupCustNavBox.IsCustom)
                {
                    string custDet = lookupCustNavBox.CustomDetail;
                    if (custDet.Equals("CreateCustomer", StringComparison.OrdinalIgnoreCase))
                    {
                        MessageBox.Show("Not a valid selection in this flow");
                    }
                    else
                    {
                        this.nextState = GunBookEditFlowState.LookupCustomerResults;
                    }
                }
                else
                {
                    this.nextState = GunBookEditFlowState.LookupCustomerResults;
                }
                break;

            case NavBox.NavAction.CANCEL:
                CashlinxDesktopSession.Instance.HistorySession.Back();
                this.nextState = GunBookEditFlowState.EditGunBookRecord;
                break;

            default:
                throw new ApplicationException("" + lookupAction.ToString() + " is not a valid state for LookupCustomer");
            }

            this.executeNextState();
        }
示例#7
0
        /// <summary>
        /// NavBox OnAction Handler for Edit gun book record Form
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="data"></param>
        private void gunBookEditFormNavAction(object sender, object data)
        {
            if (sender == null || data == null)
            {
                throw new ApplicationException("Gun Book Edit form navigation action handler received invalid data");
            }

            NavBox editGunBookRecordNavBox = (NavBox)sender;

            NavBox.NavAction lookupAction = editGunBookRecordNavBox.Action;
            if (lookupAction == NavBox.NavAction.BACKANDSUBMIT)
            {
                CashlinxDesktopSession.Instance.HistorySession.Back();
                lookupAction = NavBox.NavAction.SUBMIT;
            }
            switch (lookupAction)
            {
            case NavBox.NavAction.SUBMIT:
                if (editGunBookRecordNavBox.IsCustom)
                {
                    if (editGunBookRecordNavBox.CustomDetail == "DescribeMerchandise")
                    {
                        this.nextState = GunBookEditFlowState.DescribeItemEdit;
                    }
                    else if (editGunBookRecordNavBox.CustomDetail == "LookupCustomer")
                    {
                        this.nextState = GunBookEditFlowState.LookupCustomer;
                    }
                    else if (editGunBookRecordNavBox.CustomDetail == "EditCustomer")
                    {
                        this.nextState = GunBookEditFlowState.CustomerReplace;
                    }
                }
                else
                {
                    this.nextState = GunBookEditFlowState.GunBookSearch;
                }
                break;

            default:
                throw new ApplicationException("" + lookupAction.ToString() + " is not a valid state for Police Hold Info");
            }

            this.executeNextState();
        }
示例#8
0
        /// <summary>
        /// Action class for LookupCustomerResults
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="data"></param>
        private void lookupCustResultsFormNavAction(object sender, object data)
        {
            if (sender == null || data == null)
            {
                throw new ApplicationException("Lookup customer Results form navigation action handler received invalid data");
            }

            NavBox lookupCustResNavBox = (NavBox)sender;
            LookupCustomerResults lookupCustResForm = (LookupCustomerResults)data;

            NavBox.NavAction action = lookupCustResNavBox.Action;
            if (action == NavBox.NavAction.BACKANDSUBMIT)
            {
                CashlinxDesktopSession.Instance.HistorySession.Back();
                action = NavBox.NavAction.SUBMIT;
            }

            switch (action)
            {
            case NavBox.NavAction.SUBMIT:
                this.nextState = GunBookEditFlowState.CustomerReplace;
                break;

            case NavBox.NavAction.BACK:
                CashlinxDesktopSession.Instance.HistorySession.Back();
                this.nextState = GunBookEditFlowState.LookupCustomer;
                break;

            case NavBox.NavAction.CANCEL:
                CashlinxDesktopSession.Instance.HistorySession.Back();
                this.nextState = GunBookEditFlowState.EditGunBookRecord;
                break;

            default:
                throw new ApplicationException("" + action.ToString() + " is not a valid state for LookupCustomerResults");
            }
            this.executeNextState();
        }
示例#9
0
        /// <summary>
        /// Main execution function for CustomerHoldFlowExecutor
        /// </summary>
        /// <param name="inputData"></param>
        /// <returns></returns>
        private object executorFxn(object inputData)
        {
            if (inputData == null)
            {
                return(false);
            }
            GunBookEditFlowState inputState = (GunBookEditFlowState)inputData;

            switch (inputState)
            {
            case GunBookEditFlowState.LookupCustomer:
                ShowForm lookupCustBlk = CommonAppBlocks.Instance.CreateLookupCustomerShowBlock(this.parentForm, this.lookupCustFormNavAction);
                if (!lookupCustBlk.execute())
                {
                    throw new ApplicationException("Cannot execute LookupCustomer block");
                }

                break;

            case GunBookEditFlowState.LookupCustomerResults:
                ShowForm lookupCustResBlk = CommonAppBlocks.Instance.CreateLookupCustomerResultsBlock(this.parentForm, this.lookupCustResultsFormNavAction);
                if (!lookupCustResBlk.execute())
                {
                    throw new ApplicationException("Cannot execute LookupCustomerResults block");
                }
                break;

            case GunBookEditFlowState.DescribeMerchandise:

                ShowForm descMdseBlk = CommonAppBlocks.Instance.DescribeMerchandiseGunEditBlock(this.parentForm, this.describeMerchFormAction);
                if (!descMdseBlk.execute())
                {
                    throw new ApplicationException("Cannot execute Describe Merchandise block");
                }

                break;

            case GunBookEditFlowState.DescribeItem:
                ShowForm descItemBlk = CommonAppBlocks.Instance.DescribeItemBlock(this.parentForm, this.describeItemFormAction);
                if (!descItemBlk.execute())
                {
                    throw new ApplicationException("Cannot execute Describe Item block");
                }

                break;

            case GunBookEditFlowState.DescribeItemEdit:
                ShowForm describeItemEditBlk = CommonAppBlocks.Instance.DescribeItemGunEditBlock(this.parentForm, this.describeItemFormAction);
                if (!describeItemEditBlk.execute())
                {
                    throw new ApplicationException("Cannot execute Describe Item PFI Block");
                }
                break;

            case GunBookEditFlowState.GunBookSearch:
                ShowForm gunBookSearchBlk = CommonAppBlocks.Instance.GunBookSearchFormBlock(this.parentForm, this.gunBookSearchFormNavAction);
                if (!gunBookSearchBlk.execute())
                {
                    throw new ApplicationException("Cannot execute Gun Book Edit Search block");
                }
                break;

            case GunBookEditFlowState.EditGunBookRecord:
                ShowForm editGunBookrecordBlk = CommonAppBlocks.Instance.GunBookEditFormBlock(this.parentForm, this.gunBookEditFormNavAction);
                if (!editGunBookrecordBlk.execute())
                {
                    throw new ApplicationException("Cannot execute Gun Book Edit block");
                }
                break;

            case GunBookEditFlowState.CustomerReplace:
                ShowForm custReplaceBlk = CommonAppBlocks.Instance.CustomerReplaceBlock(this.parentForm, this.customerReplaceFormNavAction);
                if (!custReplaceBlk.execute())
                {
                    throw new ApplicationException("Cannot execute customer replace block");
                }
                break;


            case GunBookEditFlowState.Cancel:
                //Clear the customer from session
                CashlinxDesktopSession.Instance.ClearCustomerList();

                if (this.endStateNotifier != null)
                {
                    this.endStateNotifier.execute();
                }
                break;


            default:
                throw new ApplicationException("Invalid Gun Book Edit flow state");
            }

            return(true);
        }