public Result <Cursor <TSchema>, TLayout> Parse(Cursor <TSchema> input) { var matches = new List <LayoutMatch <TLayout> >(_parsers.Length); var next = input; for (var i = 0; i < _parsers.Length; i++) { var result = _parsers[i].Parse(next); if (result.HasResult == false) { return(new Unmatched <Cursor <TSchema>, TLayout>(next)); } matches.Add(result.Result); next = result.Next; } var layout = _factory.Create(); for (var i = 0; i < matches.Count; i++) { matches[i].Apply(layout); } return(new Success <Cursor <TSchema>, TLayout>(layout, next)); }
public void Run() { int appendersCount = int.Parse(reader.Read()); IAppender[] appenders = new IAppender[appendersCount]; for (int i = 0; i < appendersCount; i++) { string data = this.reader.Read(); ILayout layout = layoutFactory.Create(data); IAppender appender = appenderFactory.Create(data, layout); appenders[i] = appender; } string input; Logger logger = new Logger(appenders); while ((input = this.reader.Read()) != "END") { string[] data = input.Split('|', StringSplitOptions.RemoveEmptyEntries); this.commandInterpreter.InterpretCommand(logger, data); } this.loggerReport.Report(logger); }
public IActionResult Index() { var homePage = new HomePage(); homePage.Layout = _layoutFactory.Create(); return(View("~/Views/Pages/Home.cshtml", homePage)); }
public async Task <IActionResult> Index(LocationEnum from, LocationEnum to) { var routes = _hslRouteSolver.GetRoute(from, to); var resultPage = new RouteResultPage { Layout = _layoutFactory.Create() }; resultPage.Routes = await routes; return(View("~/Views/Pages/RouteResult.cshtml", resultPage)); }