Beispiel #1
0
 public void Reset()
 {
     try
     {
         if (ResetMethod != null)
         {
             ResetMethod.Invoke(ObjectReference, null);
         }
     }
     catch (Exception ex)
     {
         throw new FunctionException($"The ResetMethod on the function {FunctionName} failed.  " + ex.Message, ex);
     }
 }
Beispiel #2
0
        private static Results Execute(BaseChallenge challenge, ChallengePart part, bool fullStackTrace = true)
        {
            Results data = new Results();

            try
            {
                Stopwatch.Restart();
                ResetMethod.Invoke(challenge, null);
                object output = SolvePartMethods[part].Invoke(challenge, null);
                Stopwatch.Stop();

                (string message, object answer) = ((string, object)?)output ?? (null, null);

                data.message     = message;
                data.givenAnswer = answer?.ToString();

                string expected = ExpectedAnswerProps[part].GetValue(challenge)?.ToString();
                if (!string.IsNullOrEmpty(expected))
                {
                    data.status = (data.givenAnswer == $"{expected}" ? ResultStatus.Success : ResultStatus.WrongAnswer);
                }
                else if (!string.IsNullOrEmpty(data.givenAnswer))
                {
                    data.status = ResultStatus.Candidate;
                }
                else
                {
                    data.status = ResultStatus.Development;
                    Stopwatch.Reset();
                }
            } catch (Exception ex)
            {
                data.status = ResultStatus.Exception;
                Stopwatch.Reset();

                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;                               // Skip Invoke() and nested exceptions
                }
                data.message = ex.Message;
                if (fullStackTrace)
                {
                    data.message += "\n" + FormatStackTrace(ex.StackTrace);
                }
            }

            return(data);
        }
Beispiel #3
0
 public IOde23tVariableSolverType WithReset(ResetMethod method)
 {
     model.Array.ConfigSet.Solver.AdditionalSolverOptions.SolverResetMethod = method;
     return(this);
 }