예제 #1
0
        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));
        }
예제 #2
0
        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);
        }
예제 #3
0
        public IActionResult Index()
        {
            var homePage = new HomePage();

            homePage.Layout = _layoutFactory.Create();

            return(View("~/Views/Pages/Home.cshtml", homePage));
        }
예제 #4
0
        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));
        }