![]() |
VOOZH | about |
dotnet add package DragonFly.Permissions --version 0.9.13
NuGet\Install-Package DragonFly.Permissions -Version 0.9.13
<PackageReference Include="DragonFly.Permissions" Version="0.9.13" />
<PackageVersion Include="DragonFly.Permissions" Version="0.9.13" />Directory.Packages.props
<PackageReference Include="DragonFly.Permissions" />Project file
paket add DragonFly.Permissions --version 0.9.13
#r "nuget: DragonFly.Permissions, 0.9.13"
#:package DragonFly.Permissions@0.9.13
#addin nuget:?package=DragonFly.Permissions&version=0.9.13Install as a Cake Addin
#tool nuget:?package=DragonFly.Permissions&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. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.9.13 | 1,426 | 4/15/2023 |
| 0.9.12 | 1,305 | 3/19/2023 |
| 0.9.11 | 1,324 | 3/15/2023 |
| 0.9.10 | 1,344 | 3/5/2023 |
| 0.9.9 | 1,281 | 3/3/2023 |
| 0.9.8 | 1,343 | 3/2/2023 |
| 0.9.7 | 1,391 | 1/29/2023 |
| 0.9.6 | 1,443 | 1/27/2023 |
| 0.9.5 | 1,343 | 1/25/2023 |
| 0.9.3 | 1,448 | 1/2/2023 |
| 0.9.2 | 1,403 | 1/2/2023 |
| 0.9.0 | 1,334 | 12/28/2022 |
| 0.8.3 | 1,053 | 12/19/2022 |
| 0.8.2 | 1,025 | 12/18/2022 |
| 0.4.5-alpha | 878 | 10/1/2022 |
| 0.4.4-alpha | 879 | 9/22/2022 |
| 0.4.3-alpha | 891 | 9/22/2022 |
| 0.4.2-alpha | 866 | 9/21/2022 |
| 0.3.2 | 1,455 | 8/14/2022 |
| 0.3.0 | 1,554 | 3/20/2022 |