Beispiel #1
0
        private bool TryMerge(PushOperation op1, PushOperation op2, out PushOperation res)
        {
            if (op1 is ActivityPushOperation <TViewModel> startActivityPushOperation)
            {
                if (op2 is FragmentPushOperation <TViewModel> showFragmentPushOperation)
                {
                    if (startActivityPushOperation.ActivityStack == showFragmentPushOperation.HostStack)
                    {
                        //merge show fragment in start activity
                        startActivityPushOperation.FragmentStacksToPush.AddRange(showFragmentPushOperation.FragmentStacksToPush);
                        res = startActivityPushOperation;
                        return(true);
                    }
                }
            }
            else if (op1 is FragmentPushOperation <TViewModel> showFragmentPushOperation1 && op2 is FragmentPushOperation <TViewModel> showFragmentPushOperation2)
            {
                if (showFragmentPushOperation1.HostStack == showFragmentPushOperation2.HostStack)
                {
                    showFragmentPushOperation1.FragmentStacksToPush.AddRange(showFragmentPushOperation2.FragmentStacksToPush);
                    res = showFragmentPushOperation1;
                    return(true);
                }
            }

            res = null;
            return(false);
        }
Beispiel #2
0
        public void PushMoney(Account accnt, decimal deltaMoney)
        {
            CheckAccess(OperationsTypes.PushMoney);
            var pushOp = new PushOperation(accnt, CurrentEmployee, deltaMoney);

            pushOp.Apply();
            OperationsHistory.Add(pushOp);
        }
        private bool TryMerge(PopOperation popOp, PushOperation pushOp, out MergedPopPushOperation res)
        {
            if (popOp is NavigationControllerPopOperation navigationControllerPopOperation &&
                pushOp is NavigationControllerPushOperation navigationControllerPushOperation)
            {
                if (navigationControllerPopOperation.HostStack == navigationControllerPushOperation.HostStack)
                {
                    res = new MergedPopPushNavigationControllerOperation(navigationControllerPopOperation, navigationControllerPushOperation);
                    return(true);
                }
            }

            res = null;
            return(false);
        }
        private bool TryMerge(PushOperation op1, PushOperation op2, out PushOperation res)
        {
            if (op1 is NavigationControllerPushOperation nav1 && op2 is NavigationControllerPushOperation nav2)
            {
                if (nav1.HostStack == nav2.HostStack)
                {
                    NavigationControllerPushOperation result = new NavigationControllerPushOperation(nav1.HostStack);
                    result.Controllers.AddRange(nav1.Controllers);
                    result.Controllers.AddRange(nav2.Controllers);
                    res = result;
                    return(true);
                }
            }

            res = null;
            return(false);
        }
Beispiel #5
0
        private bool TryMerge(PopOperation popOp, PushOperation pushOp, out MergedPopPushOperation res)
        {
            if (popOp is FragmentPopOperation <TViewModel> fragmentPopOperation && pushOp is FragmentPushOperation <TViewModel> fragmentPushOperation)
            {
                if (fragmentPopOperation.HostStack == fragmentPushOperation.HostStack)
                {
                    res = new MergedFragmentPopPushOperation <TViewModel>(fragmentPopOperation.HostStack, fragmentPopOperation.FragmentStacksToPop, fragmentPushOperation.FragmentStacksToPush);
                    return(true);
                }
            }

            if (popOp is ActivityPopOperation <TViewModel> activityPopOperation && pushOp is ActivityPushOperation <TViewModel> activityPushOperation)
            {
                res = new MergedActivityPopPushOperation <TViewModel>(activityPopOperation, activityPushOperation);
                return(true);
            }

            res = null;
            return(false);
        }