Axolotl.Http
8.0.5
dotnet add package Axolotl.Http --version 8.0.5
NuGet\Install-Package Axolotl.Http -Version 8.0.5
<PackageReference Include="Axolotl.Http" Version="8.0.5" />
paket add Axolotl.Http --version 8.0.5
#r "nuget: Axolotl.Http, 8.0.5"
// Install Axolotl.Http as a Cake Addin #addin nuget:?package=Axolotl.Http&version=8.0.5 // Install Axolotl.Http as a Cake Tool #tool nuget:?package=Axolotl.Http&version=8.0.5
Axolotl
A personal shared library for various types of dotnet project types
NOTE: Issues can be created to improve documentation and fix errors
Sub-packages
Axolotl:
Axolotl.Http:
Axolotl.EFCore:
Axolotl.Razor:
Install
The framework is provided as a set of NuGet packages. In many cases you'll only need the base package, but if you need efcore, razor or Maui there are implementation-specific packages available to assist.
To install the minimum requirements:
Install-Package Axolotl
To install support for serialization, AutoFixture, EF Core, Model Binding, or Dapper select the lines that apply:
Install-Package Axolotl
Install-Package Axolotl.Http
Install-Package Axolotl.EFCore
Install-Package Axolotl.AspNet
Install-Package Axolotl.Razor
Asp.Net Core Samples
Added required packages
Install-Package Axolotl
Install-Package Axolotl.EFCore
Install-Package Axolotl.AspNet
Add sample entity
public sealed class Post : AuditableEntity<Guid> {
public string Title { get; set; } = null!;
public Category Category { get; set; } = null!;
public ICollection<Tag> Tags { get; set; } = null!;
}
Add to context
public class ServiceContext : DbContext {
public ServiceContext(DbContextOptions<ServiceContext> options) : base(options) { }
protected override void OnModelCreating(ModelBuilder modelBuilder) { }
public virtual DbSet<Post> Posts { get; set; } = null!;
}
Create your generic repository and apply DbContext
public class GenericRepository<TEntity, TKey> : GenericBaseRepository<TEntity, ServiceContext, TKey>
where TEntity : class, IAggregateRoot, IHasKey<TKey>
where TKey : notnull {
public GenericRepository(ServiceContext context) : base(context) { }
}
Register generic repository
builder.Services.RegisterGenericRepositories(typeof(GenericRepository<,>));
builder.Services.RegisterGenericServices();
Create optional filter specification
public sealed class CategorySpec : Specification<Post, Guid> {
public CategorySpec(IPageFilter filter) {
var search = filter.Search ?? string.Empty;
var text = search.ToLower().Split(" ").ToList().Select(x => x);
Query.Where(x => x.Title != String.Empty && x.Title.Length > 3 && text.Any(p => EF.Functions.Like(x.Title.ToLower(), $"%" + p + "%")))
.AsNoTracking()
.OrderBy(b => b.Title);
}
}
Create feature/endpoint
public class CategoryFeature : GenericFeature<CategoryFeature, Guid> {
public override IEndpointRouteBuilder MapEndpoints(IEndpointRouteBuilder endpoints) {
var state = new FeatureState(new List<RouteState> {
new (RouteType.GetAll, typeof(CategorySpec)),
new (RouteType.GetById),
new (RouteType.Create)
});
return SetupGroup<CategoryFeature, Category, Guid>(endpoints, state);
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
8.0.5 | 150 | 1/22/2024 |
8.0.2 | 106 | 1/22/2024 |
8.0.1 | 132 | 1/13/2024 |
8.0.0 | 224 | 11/22/2023 |
8.0.0-rc.1 | 78 | 11/16/2023 |
8.0.0-preview.20 | 75 | 10/3/2023 |
8.0.0-preview.19 | 130 | 7/6/2023 |
8.0.0-preview.18 | 112 | 6/6/2023 |
8.0.0-preview.17 | 88 | 6/6/2023 |
8.0.0-preview.16 | 91 | 6/6/2023 |
8.0.0-preview.14 | 93 | 6/6/2023 |
8.0.0-preview.13 | 88 | 6/6/2023 |
8.0.0-preview.12 | 86 | 6/6/2023 |
8.0.0-preview.11 | 85 | 6/5/2023 |