public ActionResult FixValueProviderPost() { //Value provider csak az URL paraméterrel dolgozik var querystringValues = new QueryStringValueProvider(this.ControllerContext); var routeValues = new RouteDataValueProvider(this.ControllerContext); ValueProviderResult action = querystringValues.GetValue("action"); //action=null ValueProviderResult controller = querystringValues.GetValue("controller"); //controller=null ValueProviderResult idResult = querystringValues.GetValue("Id"); //idResult=null int id = (int)routeValues.GetValue("Id").ConvertTo(typeof(int)); //idResult=99999 string EzNemValid = querystringValues.GetValue(key: "WillNeverValid").AttemptedValue; var model = CategoryModel.GetCategory(1); //A model.WillNeverValid értéke "Hát ez honnan jött?" lesz: this.TryUpdateModel <CategoryModel>(model, string.Empty, querystringValues); //Input mezők var formValues = new FormValueProvider(this.ControllerContext); bool szerepel = formValues.ContainsPrefix("prefix.WillNeverValid"); this.TryUpdateModel <CategoryModel>(model, "prefix", formValues); return(RedirectToAction("FixValueProvider")); }
private HiveEntityUri ExecuteBinding(IValueProvider form, RouteData routeData, out ModelBindingContext bindingContext, out ControllerContext controllerContext) { var modelBinder = new HiveEntityUriModelBinder(); var httpContextFactory = new FakeHttpContextFactory("~/Umbraco/Editors/ContentEditor/Edit/1", routeData); var fakeFrameworkContext = new FakeFrameworkContext(); var hive = FakeHiveCmsManager.New(fakeFrameworkContext); var resolverContext = new MockedMapResolverContext(hive, new MockedPropertyEditorFactory(), new MockedParameterEditorFactory()); var webmModelMapper = new CmsModelMapper(resolverContext); var cmsPersistenceModelMapper = new CmsPersistenceModelMapper(resolverContext); var cmsModelMapper = new CmsDomainMapper(resolverContext); fakeFrameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractTypeMapper[] { webmModelMapper, cmsModelMapper, cmsPersistenceModelMapper })); var umbracoApplicationContext = new FakeUmbracoApplicationContext(hive); controllerContext = new ControllerContext( httpContextFactory.RequestContext, new ContentEditorController(new FakeBackOfficeRequestContext(umbracoApplicationContext))); //put both the form and route values in the value provider var routeDataValueProvider = new RouteDataValueProvider(controllerContext); var values = new ValueProviderCollection(new List <IValueProvider>() { form, routeDataValueProvider }); bindingContext = GetBindingContext(new HiveEntityUri(1), values); //do the binding! var model = modelBinder.BindModel(controllerContext, bindingContext); //assert! Assert.IsInstanceOfType(model, typeof(HiveEntityUri), "Model isn't a HiveEntityUri"); var boundModel = (HiveEntityUri)model; return(boundModel); }
private HiveId ExecuteBinding(IValueProvider form, RouteData routeData, out ModelBindingContext bindingContext, out ControllerContext controllerContext) { var modelBinder = new HiveIdModelBinder(); var httpContextFactory = new FakeHttpContextFactory("~/Rebel/Editors/ContentEditor/Edit/1", routeData); var fakeFrameworkContext = new FakeFrameworkContext(); var hive = FakeHiveCmsManager.New(fakeFrameworkContext); var appContext = new FakeRebelApplicationContext(hive); var resolverContext = new MockedMapResolverContext(fakeFrameworkContext, hive, new MockedPropertyEditorFactory(appContext), new MockedParameterEditorFactory()); var webmModelMapper = new CmsModelMapper(resolverContext); fakeFrameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { webmModelMapper, new FrameworkModelMapper(fakeFrameworkContext) })); var rebelApplicationContext = new FakeRebelApplicationContext(hive); controllerContext = new ControllerContext( httpContextFactory.RequestContext, new ContentEditorController(new FakeBackOfficeRequestContext(rebelApplicationContext))); //put both the form and route values in the value provider var routeDataValueProvider = new RouteDataValueProvider(controllerContext); var values = new ValueProviderCollection(new List <IValueProvider>() { form, routeDataValueProvider }); bindingContext = GetBindingContext(new HiveId(1), values); //do the binding! var model = modelBinder.BindModel(controllerContext, bindingContext); //assert! Assert.That(model, Is.InstanceOf <HiveId>(), "Model isn't a HiveId"); var boundModel = (HiveId)model; return(boundModel); }
private static IDictionary <string, object> ToDictionaryOut(this System.Net.Http.HttpRequestMessage message) { Dictionary <string, object> d = new Dictionary <string, object>(); foreach (var item in message.Properties) { if (routeData.Contains(item.Key.ToLower())) { RouteDataValueProvider provider = item.Value as RouteDataValueProvider; if (provider != null) { foreach (var kvp in provider.GetKeysFromPrefix("")) { string key = kvp.Key; ValueProviderResult vpr = (ValueProviderResult)provider.GetValue(key); object o = vpr.RawValue; if (key.Equals("controller", StringComparison.OrdinalIgnoreCase)) { d.Add("xf-request.route-data.controller", String.Format("{0}.Controller", o.ToString())); } else { if (o.GetType().IsClass) { d.Add(String.Format("xf-request.route-data.{0}", key), vpr.AttemptedValue); } else { d.Add(String.Format("xf-request.route-data.{0}", key), o); } } } } } else if (item.Key.Equals("MS_HttpActionDescriptor")) { ReflectedHttpActionDescriptor descriptor = item.Value as ReflectedHttpActionDescriptor; if (descriptor != null && descriptor.ReturnType != null && !String.IsNullOrWhiteSpace(descriptor.ActionName)) { d.Add("xf-request.controller-method.name", descriptor.ActionName); d.Add("xf-request.controller-method.return-type", descriptor.ReturnType.Name); } } } if (actions.Contains(message.Method.ToString().ToLower())) { var ctx = message.Properties["MS_HttpContext"] as HttpContextWrapper; if (ctx != null && ctx.Request.ContentLength > 0) { using (var stream = new System.IO.MemoryStream()) { ctx.Request.InputStream.Seek(0, System.IO.SeekOrigin.Begin); ctx.Request.InputStream.CopyTo(stream); string body = Encoding.UTF8.GetString(stream.ToArray()); d.Add("xf-request.message.body", body); } } } var responseCtx = message.Properties["MS_HttpContext"] as HttpContextWrapper; int status = responseCtx.Response.StatusCode; string statusDescription = responseCtx.Response.StatusDescription; d.Add("xf-request.response.status-code", responseCtx.Response.StatusCode.ToString()); d.Add("xf-request.response.status-description", responseCtx.Response.StatusDescription); return(d); }
private HiveId ExecuteBinding(IValueProvider form, RouteData routeData, out ModelBindingContext bindingContext, out ControllerContext controllerContext) { var modelBinder = new HiveIdModelBinder(); var httpContextFactory = new FakeHttpContextFactory("~/Rebel/Editors/ContentEditor/Edit/1", routeData); var fakeFrameworkContext = new FakeFrameworkContext(); var hive = FakeHiveCmsManager.New(fakeFrameworkContext); var appContext = new FakeRebelApplicationContext(hive); var resolverContext = new MockedMapResolverContext(fakeFrameworkContext, hive, new MockedPropertyEditorFactory(appContext), new MockedParameterEditorFactory()); var webmModelMapper = new CmsModelMapper(resolverContext); fakeFrameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { webmModelMapper, new FrameworkModelMapper(fakeFrameworkContext) })); var rebelApplicationContext = new FakeRebelApplicationContext(hive); controllerContext = new ControllerContext( httpContextFactory.RequestContext, new ContentEditorController(new FakeBackOfficeRequestContext(rebelApplicationContext))); //put both the form and route values in the value provider var routeDataValueProvider = new RouteDataValueProvider(controllerContext); var values = new ValueProviderCollection(new List<IValueProvider>() { form, routeDataValueProvider }); bindingContext = GetBindingContext(new HiveId(1), values); //do the binding! var model = modelBinder.BindModel(controllerContext, bindingContext); //assert! Assert.That(model, Is.InstanceOf<HiveId>(), "Model isn't a HiveId"); var boundModel = (HiveId)model; return boundModel; }