public Response SubmitNameValue(string name, string value, ISimulatedHttpClient client, Action <Request> modifier = null)
        {
            var submits = _submitValues.Where(sv => sv.Name == name && sv.Value == value).ToList();
            var submit  = SingleSubmit("Could not find submit with name " + name + " and value " + value, submits);

            return(Submit(submit, client, modifier));
        }
        public Response Submit(SubmitValue submit, ISimulatedHttpClient client, Action <Request> modifier = null)
        {
            var request = new Request(Action, Method);

            AddFormValues(request);

            if (submit != null)
            {
                submit.SetFormValue(request);
            }

            return(client.Process(request, modifier));
        }
        public Response Submit(ISimulatedHttpClient client, Action <Request> modifier = null)
        {
            var submit = SingleSubmit("Could not find single submit", _submitValues);

            return(Submit(submit, client, modifier));
        }
        public static AjaxAction[] OnChange <T>(this TypedForm <T> form, Expression <Func <T, object> > property, ISimulatedHttpClient client)
        {
            var formGroupSelector = "#" + FormName(property) + "_FormGroup";
            var formGroup         = form.Element.Find(formGroupSelector);
            var changeUrl         = formGroup.Attribute("data-ajax-change");

            form.SetAction(changeUrl);
            var ajaxResponse = form.Submit(client, r => r.SetExpectedResponse(HttpStatusCode.OK));
            var json         = ajaxResponse.Text;
            var settings     = new JsonSerializerSettings {
                ContractResolver = new Repository.RepositoryContractResolver()
            };
            var ajaxActions = JsonConvert.DeserializeObject <AjaxAction[]>(json, settings);

            return(ajaxActions);
        }