public HttpContent CreateFormData(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
        {
            var content = new ObjectContent(typeof(object), stateVariables.Get<object>(key), new[] { clientCapabilities.GetMediaTypeFormatter(contentType) });
            content.Headers.ContentType = contentType;

            return content;
        }
Пример #2
0
        public IState NextState(IClientCapabilities clientCapabilities)
        {
            var rules = new Rules(
                When
                    .IsTrue(response => response.ContainsForm(Forms.RequestForQuote))
                    .Execute(actions => actions.SubmitForm(Forms.RequestForQuote))
                    .Return(
                        new[]
                            {
                                On.Status(HttpStatusCode.Created)
                                    .Do((response, vars)
                                        => new QuoteRequested(response, vars))
                            }
                    ),
                When
                    .IsTrue(response => response.ContainsLink(Links.Rfq))
                    .Execute(actions => actions.ClickLink(Links.Rfq))
                    .Return(
                        new[]
                            {
                                On.Status(HttpStatusCode.OK)
                                    .Do((response, vars)
                                        => new Started(response, vars))
                            })
                );

            return rules.Evaluate(previousResponse, stateVariables, clientCapabilities);
        }
Пример #3
0
 public IState Evaluate(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     return (from rule in rules
             select rule.Evaluate(previousResponse, stateVariables, clientCapabilities)
             into result
             where result.IsSuccessful
             select result.State).FirstOrDefault();
 }
 public IState Execute(HttpResponseMessage response, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     foreach (var result in rules.Select(rule => rule.Evaluate(response, stateVariables, clientCapabilities)).Where(result => result.IsSuccessful))
     {
         return result.State;
     }
     return createDefaultState(response, stateVariables, clientCapabilities);
 }
Пример #5
0
        public IState NextState(IClientCapabilities clientCapabilities)
        {
            var rules = new Rules(
                When.IsTrue(response => true)
                    .Execute(actions => actions.Do(GetHomePage.Instance))
                    .ReturnState((response, vars) => new Started(response, vars)));

            return rules.Evaluate(null, stateVariables, clientCapabilities);
        }
Пример #6
0
        public Result Evaluate(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
        {
            if (condition.IsApplicable(previousResponse, stateVariables))
            {
                var newResponse = requestAction.Execute(previousResponse, stateVariables, clientCapabilities);
                return new Result(true, createNextState.Execute(newResponse, stateVariables, clientCapabilities));
            }

            return Result.Unsuccessful;
        }
Пример #7
0
        public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
        {
            var linkInfo = link.GetLinkInfo(previousResponse);

            var request = new HttpRequestMessage
                              {
                                  RequestUri = linkInfo.ResourceUri,
                                  Method = HttpMethod.Get
                              };

            return clientCapabilities.GetHttpClient().Send(request);
        }
Пример #8
0
        public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
        {
            var formInfo = form.GetFormInfo(previousResponse);
            var formDataStrategy = form.GetFormDataStrategy(previousResponse);

            var request = new HttpRequestMessage
                              {
                                  RequestUri = formInfo.ResourceUri,
                                  Method = formInfo.Method,
                                  Content = formDataStrategy.CreateFormData(previousResponse, stateVariables, clientCapabilities)
                              };

            return clientCapabilities.GetHttpClient().Send(request);
        }
Пример #9
0
 public Result Evaluate(HttpResponseMessage newResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     return condition.IsApplicable(newResponse, stateVariables)
         ? new Result(true, createNextState.Execute(newResponse, stateVariables, clientCapabilities))
         : Result.Unsuccessful;
 }
Пример #10
0
 public IState NextState(IClientCapabilities clientCapabilities)
 {
     throw new NotImplementedException();
 }
Пример #11
0
 public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     var generateNextRequest = createRequestActionDelegate(new Actions(clientCapabilities));
     return generateNextRequest.Execute(previousResponse, stateVariables, clientCapabilities);
 }
Пример #12
0
 public IState Execute(HttpResponseMessage currentResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     return createNextStateDelegate(currentResponse, stateVariables);
 }
Пример #13
0
 public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     return generateNextRequestDelegate(previousResponse, stateVariables, clientCapabilities);
 }
Пример #14
0
 public Actions(IClientCapabilities clientCapabilities)
 {
     Check.IsNotNull(clientCapabilities, "clientCapabilities");
     this.clientCapabilities = clientCapabilities;
 }
Пример #15
0
 public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     return clientCapabilities.GetHttpClient().Get(stateVariables.Get<Uri>(new StringKey("home-page-uri")));
 }