Exemplo n.º 1
0
        /// <summary>
        /// 事务操作
        /// </summary>
        public void TranstionDemo()
        {
            MultiAction actions = new MultiAction();

            for (int i = 0; i < 10; i++)
            {
                if (i % 4 == 0)
                {
                    DeleteAction delete = new DeleteAction(Entity);
                    delete.Cast <cms_user>().Where(u => u.username == "wangjun");
                    actions.AddAction(delete);
                }
                if (i % 4 == 1)
                {
                    UpdateAction update = new UpdateAction(Entity);
                    update.Cast <cms_user>()
                    .Where(u => u.username == "wangjun")
                    .UnCast()
                    .SqlKeyValue(cms_user.Columns.password, "1234567");
                    actions.AddAction(update);
                }
            }
            try
            {
                actions.Commit();
            }
            catch (Exception)
            {
                actions.Rollback();
            }
        }
Exemplo n.º 2
0
        private void PerformMoves()
        {
            MultiAction ma = new MultiAction();

            foreach (PlayerDeclareMoveAttackEvent evt in this.moveAttackDeclaration.Values)
            {
                MovePathAction mpa = evt.MoveAction;
                ma.AddAction(mpa);
            }
            ma.Resolved += (sender, maEvt) => SkipToPhase(Phases.React, this.playersTurn);
            this.ActionManager.Queue(ma);
        }
Exemplo n.º 3
0
        private void PerformAttacks()
        {
            MultiAction ma = new MultiAction();

            foreach (PlayerDeclareMoveAttackEvent evt in this.moveAttackDeclaration.Values)
            {
                AttackUnitAction aua = evt.AttackAction;
                if (evt.AttackUnit != null)
                {
                    ma.AddAction(evt.Entity, aua);
                }
            }
            ma.Resolved += (sender, maEvt) => SkipToPhase(Phases.EndCombat, this.playersTurn);
            this.ActionManager.Queue(ma);
        }