/// <summary> /// Instantiate the factory and return a populated resource object /// </summary> public Resource Instantiate(IResourceTypeController typeController, IResourceGraph graph) { // This looks a little nasty, but it is the best way to prevent castle from // interfering with the resource relations Instance = typeController.Create(Type); // Resources need access to the creator Instance.Graph = graph; // Copy default properties Instance.Id = Id; Instance.Name = Name; Instance.Description = Description; // Copy extended data from json if (ExtensionData != null) { JsonConvert.PopulateObject(ExtensionData, Instance, JsonSettings.Minimal); } // Read everything else from defaults ValueProviderExecutor.Execute(Instance, new ValueProviderExecutorSettings() .AddFilter(new DataMemberAttributeValueProviderFilter(false)) .AddDefaultValueProvider()); return(Instance); }
public void Setup() { var typeControllerMock = new Mock <IResourceTypeController>(); typeControllerMock.Setup(tc => tc.Create(It.IsAny <string>())).Returns(new TestResource()); _typeControllerMock = typeControllerMock.Object; var resourceCreator = new Mock <IResourceGraph>(); _resourceGraph = resourceCreator.Object; }
public void Setup() { // Mock of the container var containerMock = new Mock <IContainer>(); containerMock.Setup(c => c.GetRegisteredImplementations(It.IsAny <Type>())) .Returns(() => new[] { typeof(SimpleResource), typeof(DerivedResource), typeof(ReferenceResource), typeof(NonPublicResource), typeof(ResourceWithImplicitApi) }); _typeController = new ResourceTypeController { Container = containerMock.Object, ProxyBuilder = new ResourceProxyBuilder() }; _typeController.Start(); }
public static TResource Proxify <TResource>(this TResource source, IResourceTypeController typeController) where TResource : class, IPublicResource { return((TResource)typeController.GetProxy(source as Resource)); }
public static IEnumerable <TResource> Proxify <TResource>(this IEnumerable <TResource> source, IResourceTypeController typeController) where TResource : class, IPublicResource { return(source.Select(r => r.Proxify(typeController))); }
public virtual void Detach() { _typeController = null; Target = null; }
/// <summary> /// Create proxy for a given target /// </summary> protected ResourceProxy(TTarget target, IResourceTypeController typeController) { Target = target; _typeController = typeController; }