https://github.com/mustaddon/entitydynamicattributes
Entity Dynamic Attributes
https://github.com/mustaddon/entitydynamicattributes
Last synced: 4 months ago
JSON representation
Entity Dynamic Attributes
- Host: GitHub
- URL: https://github.com/mustaddon/entitydynamicattributes
- Owner: mustaddon
- License: mit
- Created: 2023-08-09T05:52:49.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-02-10T21:21:33.000Z (over 2 years ago)
- Last Synced: 2024-12-31T09:47:26.133Z (over 1 year ago)
- Language: C#
- Size: 24.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EntityDynamicAttributes [](http://badge.fury.io/nu/EntityDynamicAttributes)
## Features
* Lambda expressions
* Property dependencies autodetection
* Sub-object property configurations
* Async attribute values support
* WebApi endpoint ready
## Create configuration
```C#
public class MyClassConfig : TypeConfig
{
public MyClassConfig()
{
Property(x => x.SomeProp1)
.Attribute("static_attr")
.Attribute("expression_attr", x => x.Entity.SomeProp2 > 0)
.Attribute("value_attr", x => 100 * x.Entity.SomeProp3)
.Attribute("task_value_attr", x => x.ServiceProvider.GetRequiredService().AsyncMethod(x.CancellationToken));
Property(x => x.ComplexProp.SubProp1)
.Required(x => x.Entity.SomeProp2 > 0)
.Hidden(x => !x.Entity.SomeProp3);
}
}
```
## Add EDA services to your ServiceCollection
```C#
using EntityDynamicAttributes;
builder.Services.AddEntityDynamicAttributes(typeof(MyClassConfig).Assembly);
```
## Build schema with ISchemaBuilder
```C#
var schema = await services.GetRequiredService>()
.Build(new MyClass());
```
## Example projects
* [ConsoleApp](https://github.com/mustaddon/EntityDynamicAttributes/tree/main/Examples/Example.ConsoleApp)
* [WebApi](https://github.com/mustaddon/EntityDynamicAttributes/tree/main/Examples/Example.WebApi)