public Task <IViewFactory> GetView(NoomRequest request) { NoomParameters parameters = path.GetParameters(request); NoomRequest parametrized = new NoomRequest(request, parameters); return(handler.Invoke(parametrized)); }
public async void NavigateTo(string path, object payload) { NoomRequest request = new NoomRequest(path, payload); NoomRouterEntry entry = router.Match(request); ISegment[] segments = GetSegments(request); IViewFactory factory = await entry.GetView(request); IView view = factory.Create(tools); await destination.Render(view, request); destination.Render(segments); }
private ISegment[] GetSegments(NoomRequest request) { List <ISegment> segments = new List <ISegment>(); for (int i = 0; i < request.Path.Length; i++) { segments.Add(new NoomSegment(this, request, i)); } if (request.Path[0] != "/") { segments.Insert(0, new NoomSegment(this, request, -1)); } return(segments.ToArray()); }
public NoomRequest(NoomRequest request, NoomParameters parameters) { this.parameters = parameters; this.parts = request.parts; this.payload = request.payload; }