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;
        }
Esempio n. 2
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);
 }
Esempio n. 4
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;
        }
Esempio n. 5
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);
        }
Esempio n. 6
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);
        }
Esempio n. 7
0
        private static void Main(string[] args)
        {
            XmlConfigurator.Configure();

            var items = new ShopBuilder(null).AddItem(new Item("coffee", new Amount("g", 125))).Build();
            var variables = new ApplicationStateVariables(
                new KeyValuePair<IKey, object>(new StringKey("home-page-uri"), new Uri("http://localhost:8080/restbucks/shop")),
                new KeyValuePair<IKey, object>(new EntityBodyKey("request-for-quote", new MediaTypeHeaderValue(RestbucksMediaType.Value), new Uri("http://schemas.restbucks.com/shop")), items));

            var state = new Uninitialized(variables);
            Console.WriteLine(state.GetType().Name);
            var nextState = state.NextState(ClientCapabilities.Instance);
            Console.WriteLine(nextState.GetType().Name);

            while (!nextState.IsTerminalState)
            {
                nextState = nextState.NextState(ClientCapabilities.Instance);
                Console.WriteLine(nextState.GetType().Name);
            }

            Console.WriteLine("Finished");
            Console.ReadLine();
        }
 public Result Evaluate(HttpResponseMessage newResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     return condition.IsApplicable(newResponse, stateVariables)
         ? new Result(true, createNextState.Execute(newResponse, stateVariables, clientCapabilities))
         : Result.Unsuccessful;
 }
Esempio n. 9
0
 public bool IsApplicable(HttpResponseMessage response, ApplicationStateVariables stateVariables)
 {
     return responseConditionDelegate(response);
 }
Esempio n. 10
0
 public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     var generateNextRequest = createRequestActionDelegate(new Actions(clientCapabilities));
     return generateNextRequest.Execute(previousResponse, stateVariables, clientCapabilities);
 }
Esempio n. 11
0
 public IState Execute(HttpResponseMessage currentResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     return createNextStateDelegate(currentResponse, stateVariables);
 }
Esempio n. 12
0
 public Started(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables)
 {
     this.previousResponse = previousResponse;
     this.stateVariables = stateVariables;
 }
Esempio n. 13
0
 public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     return generateNextRequestDelegate(previousResponse, stateVariables, clientCapabilities);
 }
Esempio n. 14
0
 public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities)
 {
     return clientCapabilities.GetHttpClient().Get(stateVariables.Get<Uri>(new StringKey("home-page-uri")));
 }
Esempio n. 15
0
 public Uninitialized(ApplicationStateVariables stateVariables)
 {
     this.stateVariables = stateVariables;
 }
Esempio n. 16
0
 public bool IsApplicable(HttpResponseMessage response, ApplicationStateVariables stateVariables)
 {
     return condition(response, stateVariables);
 }