public void write_initial_model() { // You need to compile everything before trying to use this var input = new ProjectInput { Path = AppDomain.CurrentDomain.BaseDirectory.ParentDirectory() .ParentDirectory() .ParentDirectory() .AppendPath("Storyteller.Samples"), ProfileFlag = "Safari" }; using (var controller = input.BuildRemoteController()) { controller.Start(EngineMode.Batch).Wait(30.Seconds()); var hierarchy = HierarchyLoader.ReadHierarchy(input.Path.AppendPath("Specs")); var request = new BatchRunRequest(); var response = controller.Send(request).AndWaitFor<BatchRunResponse>(); var cache = new ResultsCache(); response.Result.records.Each( x => { var completed = new SpecExecutionCompleted(x.specification.id, x.results, x.specification); cache.Store(completed); }); response.Result.fixtures = controller.LatestSystemRecycled.fixtures; var hierarchyLoaded = new HierarchyLoaded(hierarchy, cache); var initialization = new InitialModel(controller.LatestSystemRecycled, hierarchyLoaded) { wsAddress = "ws://localhost:" + 8200 }; writeResponse(response.Result); //writeInitialization(initialization); } }
private void writeInitialDataIntoPage(HtmlDocument document) { var cleanJson = JsonSerialization.ToCleanJson(_persistence.Hierarchy.Top); document.Body.Add("div").Hide().Id("hierarchy-data").Text(cleanJson); var resultJson = JsonSerialization.ToCleanJson(_persistence.AllCachedResults()); document.Body.Add("div").Hide().Id("result-data").Text(resultJson); var model = new InitialModel(_context.LatestSystemRecycled, new HierarchyLoaded(_persistence.Hierarchy.Top, _persistence.Results)); model.wsAddress = _connector.WebSocketsAddress; // TODO -- put the queue state on here too!!!!! var script = new StringWriter(); script.WriteLine(); script.WriteLine("var Storyteller = {};"); script.WriteLine(); script.WriteLine("Storyteller.initialization = {0};", JsonSerialization.ToCleanJson(model)); script.WriteLine(); document.Head.Add("script").Encoded(false).Text(script.ToString()).Attr("type", "text/javascript"); }
private static void writeInitialization(InitialModel initialization) { var json = JsonSerialization.ToIndentedJson(initialization); var path = AppDomain.CurrentDomain.BaseDirectory .ParentDirectory().ParentDirectory() // project dir .ParentDirectory().ParentDirectory() // root .AppendPath("client", "initialization.js"); new FileSystem().WriteStringToFile(path, "module.exports = " + json); }