public long Create(Type resourceType, Action <Resource> initializer) { ValidateHealthState(); var resource = TypeController.Create(resourceType.ResourceType()); initializer(resource); ResourceGraph.Save(resource); return(resource.Id); }
public bool Delete(long id) { ValidateHealthState(); var resource = ResourceGraph.Get(id); if (resource == null) { return(false); } return(ResourceGraph.Destroy(resource)); }
public TResult Read <TResult>(long id, Func <Resource, TResult> accessor) { ValidateHealthState(); var resource = ResourceGraph.Get(id); if (resource == null) { throw new KeyNotFoundException($"No resource with Id {id} found!"); } var result = accessor(resource); return(result); }
public void Modify(long id, Func <Resource, bool> modifier) { ValidateHealthState(); var resource = ResourceGraph.Get(id); if (resource == null) { throw new KeyNotFoundException($"No resource with Id {id} found!"); } var result = modifier(resource); if (result) { ResourceGraph.Save(resource); } }
public IEnumerable <TResource> GetResources <TResource>() where TResource : class, IPublicResource { ValidateHealthState(); return(ResourceGraph.GetResources <TResource>().Proxify(TypeController)); }
public TResource GetResource <TResource>(Func <TResource, bool> predicate) where TResource : class, IPublicResource { ValidateHealthState(); return(ResourceGraph.GetResource(predicate).Proxify(TypeController)); }
public TResource GetResource <TResource>(ICapabilities requiredCapabilities) where TResource : class, IPublicResource { ValidateHealthState(); return(ResourceGraph.GetResource <TResource>(r => requiredCapabilities.ProvidedBy(r.Capabilities)).Proxify(TypeController)); }
public TResource GetResource <TResource>(string name) where TResource : class, IPublicResource { ValidateHealthState(); return(ResourceGraph.GetResource <TResource>(name).Proxify(TypeController)); }
public IEnumerable <TResource> GetAllResources <TResource>(Func <TResource, bool> predicate) where TResource : class, IResource { ValidateHealthState(); return(ResourceGraph.GetResources(predicate)); }