Exemple #1
0
        public async void Navigate(HttpRequestMessage request)
        {
            var response = await this.SendAsync(request);

            var sc         = response.StatusCode;
            var redirected = sc == HttpStatusCode.TemporaryRedirect ||
                             sc == HttpStatusCode.Moved || sc == HttpStatusCode.MovedPermanently ||
                             sc == HttpStatusCode.Found;

            if (redirected)
            {
                var req = new HttpRequestMessage(HttpMethod.Get,
                                                 new Uri(response.RequestMessage.RequestUri,
                                                         response.Headers.Location));
                Navigate(req);
                return;
            }

            var content = await response.Content.ReadAsStringAsync();

            var jq = new Jq((JsonObject)JsonReader <JsonObject> .Parse(content), Navigate);

            if (jq.GetText("title") == "Home")
            {
                TForm form = jq.GetForm("airchiePosi");
                form["posisNomeri"] = ConfigurationManager.AppSettings["pos"];
                form.Execute(null);
                return;
            }

            var url = request.Method != HttpMethod.Get ? response.Headers.Location : request.RequestUri;

            if (_lastUri != null && (_stack.Count == 0 || _stack.Peek() != request.RequestUri))
            {
                _stack.Push(_lastUri);
            }
            _lastUri = _lastUri == url ? null : url;
            _shell.Show(new ScreenActivationContext(jq, Navigate));
        }
Exemple #2
0
 public ScreenActivationContext(Jq jq, Action <HttpRequestMessage> action)
 {
     Jq = jq;
 }