public static void Run() { IExecutive exec = ExecFactory.Instance.CreateExecutive(); #region Set up a metronome to fire once a second in sim time. DateTime startAt = DateTime.Parse("Fri, 15 Jul 2016 00:00:00"); DateTime finishAfter = DateTime.Parse("Fri, 15 Jul 2016 00:09:59"); TimeSpan period = TimeSpan.FromSeconds(.005); Metronome_Simple metronome = Metronome_Simple.CreateMetronome(exec, startAt, finishAfter, period); metronome.TickEvent += UpdateState; #endregion // Attach an ExecController so that it runs at 100 x of user time, // and issues 10 render events every second. double scale = 2.0; // 10^2, or 100 x real-time. int frameRate = 10; // 10 render events per second. ExecController execController = new ExecController(exec, scale, frameRate, exec); execController.Render += Render; exec.Start(); Console.WriteLine("{0} simulation events fired.", exec.EventCount); }
public async Task <ApiResponse> Exec(string endpoint, string schema, string routine, Dictionary <string, string> parameters, int n, string appTitle, string appVersion) { ExecController.ExecType type = (ExecController.ExecType)n; var endpointElems = endpoint.Split('/'); // TODO: error handling if (type != ExecController.ExecType.ServerMethod) { var execOptions = new ExecController.ExecOptions() { project = endpointElems[0], application = endpointElems[1], endpoint = endpointElems[2], schema = schema, routine = routine, type = type, inputParameters = parameters }; // (var result, var routineExecutionMetric, var mayAccess) //out var responseHeaders var result = await ExecController.ExecuteRoutineAsync(execOptions, null /*requestHeaders*/, "$WEB SOCKETS$", null /*remoteIPAddress*/, appTitle, appVersion); if (!(result?.MayAccess?.IsSuccess ?? false)) { throw new Exception("Unauthorised access"); } return((ApiResponse)result.ApiResponse); } else { var execOptions = new ExecController.ExecOptions() { project = endpointElems[0], application = endpointElems[1], endpoint = endpointElems[2], schema = schema, routine = routine, type = type }; //ServerMethodsController.ExecuteGeneric() // TODO: return type is a problem so create a new method perhaps? // TODO: Figure out to exec ServerMethod from here return(null); } }
public void Setup() { _requestExecMock = new Mock <IRequestExec <Exec> >(); _controller = new ExecController(_requestExecMock.Object); }