コード例 #1
0
        protected override Boolean handleDo(DoStatementNode doStatement, HashSet <StatementNode> visited)
        {
            if (!handleStatement(doStatement.Statement, visited) || !ReachabilityChecker.isEndPointReachable(doStatement.Statement))
            {
                return(Boolean.FALSE);
            }
            AssignmentState state = expressionChecker.handleExpression(doStatement.Condition, visited, true);

            switch (state)
            {
            case Assigned:
            case AssignedAfterFalse:
                return(Boolean.FALSE);

            case AssignedAfterTrue:
                return(Boolean.TRUE);

            default:
                var cinfo = doStatement.Condition.getUserData(typeof(ExpressionInfo));
                if (cinfo.IsConstant)
                {
                    return((Boolean)cinfo.Value);
                }
                break;
            }
            return(Boolean.TRUE);
        }
コード例 #2
0
        public async Task <bool> SetEvaluationStateAsync(int id, string owner, AssignmentState state)
        {
            using (var context = this.contextFactory.Create())
            {
                try
                {
                    var dbAssignment = await context.Assignments.FirstOrDefaultAsync(a => a.Id == id && a.Owner.Equals(owner));

                    if (dbAssignment != null)
                    {
                        dbAssignment.State = state;
                        context.Entry(dbAssignment).State = EntityState.Modified;
                        await context.SaveChangesAsync();

                        return(true);
                    }
                }
                catch (Exception ex) { }

                return(false);
            }
        }