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; }
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); }
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; }
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); }
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); }
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; }
public bool IsApplicable(HttpResponseMessage response, ApplicationStateVariables stateVariables) { return responseConditionDelegate(response); }
public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities) { var generateNextRequest = createRequestActionDelegate(new Actions(clientCapabilities)); return generateNextRequest.Execute(previousResponse, stateVariables, clientCapabilities); }
public IState Execute(HttpResponseMessage currentResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities) { return createNextStateDelegate(currentResponse, stateVariables); }
public Started(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables) { this.previousResponse = previousResponse; this.stateVariables = stateVariables; }
public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities) { return generateNextRequestDelegate(previousResponse, stateVariables, clientCapabilities); }
public HttpResponseMessage Execute(HttpResponseMessage previousResponse, ApplicationStateVariables stateVariables, IClientCapabilities clientCapabilities) { return clientCapabilities.GetHttpClient().Get(stateVariables.Get<Uri>(new StringKey("home-page-uri"))); }
public Uninitialized(ApplicationStateVariables stateVariables) { this.stateVariables = stateVariables; }
public bool IsApplicable(HttpResponseMessage response, ApplicationStateVariables stateVariables) { return condition(response, stateVariables); }