![]() |
VOOZH | about |
dotnet add package DragonFly.Permissions.Core --version 0.9.13
NuGet\Install-Package DragonFly.Permissions.Core -Version 0.9.13
<PackageReference Include="DragonFly.Permissions.Core" Version="0.9.13" />
<PackageVersion Include="DragonFly.Permissions.Core" Version="0.9.13" />Directory.Packages.props
<PackageReference Include="DragonFly.Permissions.Core" />Project file
paket add DragonFly.Permissions.Core --version 0.9.13
#r "nuget: DragonFly.Permissions.Core, 0.9.13"
#:package DragonFly.Permissions.Core@0.9.13
#addin nuget:?package=DragonFly.Permissions.Core&version=0.9.13Install as a Cake Addin
#tool nuget:?package=DragonFly.Permissions.Core&version=0.9.13Install as a Cake Tool
| Package | Release |
|---|---|
| DragonFly.Core | 👁 NuGet |
| DragonFly.AspNetCore | 👁 NuGet |
| DragonFly.API | 👁 NuGet |
| DragonFly.Client | 👁 NuGet |
| DragonFly.BlockField | 👁 NuGet |
| DragonFly.Proxy | 👁 NuGet |
| DragonFly.ImageWizard | 👁 NuGet |
| DragonFly.MongoDB | 👁 NuGet |
| DragonFly.Identity | 👁 NuGet |
| DragonFly.ApiKeys | 👁 NuGet |
| DragonFly.Permissions | 👁 NuGet |
To use the project template you need first to download and install it from NuGet.
dotnet new install DragonFly.Templates
After this you can create the project with:
dotnet new DragonFly
If you have a remote MongoDB instance, you need to add some appsettings:
"MongoDB": {
"Hostname": "localhost",
"Database": "DragonFly_App",
"Port": 27017,
"Username": "",
"Password": ""
},
How to create new content schema and content item
IContentStorage contentStorage = ...;//use MongoStorage or ClientContentService (http client)
//create brand schema
ContentSchema schemaBrand = new ContentSchema("Brand")
.AddString("Name")
.AddSlug("Slug")
.AddTextArea("Description");
//Define schema for product
ContentSchema schemaProduct = new ContentSchema("Product")
.AddReference("Brand")
.AddString("Name", options => options.IsRequired = true)
.AddSlug("Slug")
.AddBool("IsAvailable", options => options.DefaultValue = true)
.AddFloat("Price")
.AddTextArea("Description", options => options.MaxLength = 255)
.AddArray("Attributes", options => options
.AddString("Name")
.AddString("Value"));
await contentStorage.CreateAsync(schemaProduct);
//create product by schema
ContentItem contentProduct = schemaProduct
.CreateContent()
.SetReference("Brand", new ContentItem(Guid.Parse(""), schemaBrand))
.SetString("Name", "ProductA")
.SetBool("IsAvailable", true)
.SetFloat("Price", 9.99)
.SetTextArea("Description", "...")
.AddArrayItem("Attributes", schemaProduct, item => item
.SetString("Name", "Size")
.SetString("Value", "M"));
await contentStorage.CreateAsync(contentProduct);
[ContentItem("BlogPost")]
public class BlogPostModel : EntityPageModel
{
[DateField(Required = true)]
public virtual DateTime? Date { get; set; }
[StringField(Required = true, Searchable = true, ListField = true, MinLength = 8, MaxLength = 512)]
public virtual string Title { get; set; }
[TextField]
public virtual string Description { get; set; }
[SlugField(Required = true, Index = true)]
public virtual string Slug { get; set; }
[AssetField(ListField = true, ShowPreview = true)]
public virtual AssetField Image { get; set; }
[BlockField]
public virtual BlockField MainContent { get; set; }
}
builder.Services.AddDragonFly()
.AddProxy(x => x.AddType<BlogPostModel>());
//get first item
var first = await ContentStorage.FirstOrDefaultAsync<BlogPostModel>(x => x
.SlugQuery(x => x.Slug, slug));
//get all items
var result = await ContentStorage.QueryAsync<BlogPostModel>(x => x
.Published(true)
.Top(10)
.SlugQuery(x => x.Slug, slug));
For long running jobs you can use the BackgroundTaskManager.
IBackgroundTaskManager taskManager = app.Services.GetRequiredService<IBackgroundTaskManager>();
taskManager.Start("Test", async ctx => await Task.Delay(TimeSpan.FromSeconds(60), ctx.CancellationToken));
builder.Services.Configure<DragonFlyOptions>(Configuration.GetSection("General"));
builder.Services.Configure<MongoDbOptions>(Configuration.GetSection("MongoDB"));
//add DragonFly services
builder.Services.AddDragonFly()
.AddImageWizard()
.AddRestApi()
.AddMongoDbStorage()
.AddMongoDbIdentity()
.AddBlockField()
.AddApiKeys()
.AddPermissions();
var app = builder.Build();
//init DragonFly
await app.InitDragonFly();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebAssemblyDebugging();
}
app.UseDragonFly(x => x
.MapImageWizard()
.MapApiKey()
.MapIdentity()
.MapRestApi()
.MapPermission());
app.UseDragonFlyManager();
app.UseRouting();
app.Run();
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<DragonFly.App.Client.App>("app");
//Register DragonFly components
builder.AddDragonFly()
.AddRestApi()
.AddBlockField()
.AddIdentity()
.AddApiKeys();
WebAssemblyHost host = builder.Build();
await host.InitDragonFly();
await host.RunAsync();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 net7.0 is compatible. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 2 NuGet packages that depend on DragonFly.Permissions.Core:
| Package | Downloads |
|---|---|
|
DragonFly.Permissions
Headless CMS based on ASP.NET Core and Blazor |
|
|
DragonFly.Permissions.Client
Headless CMS based on ASP.NET Core and Blazor |
This package is not used by any popular GitHub repositories.