Axolotl.Http 9.0.0

dotnet add package Axolotl.Http --version 9.0.0                
NuGet\Install-Package Axolotl.Http -Version 9.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Axolotl.Http" Version="9.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Axolotl.Http --version 9.0.0                
#r "nuget: Axolotl.Http, 9.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Axolotl.Http as a Cake Addin
#addin nuget:?package=Axolotl.Http&version=9.0.0

// Install Axolotl.Http as a Cake Tool
#tool nuget:?package=Axolotl.Http&version=9.0.0                

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 or razor there are implementation-specific packages available to assist.

To install the minimum requirements:

Install-Package Axolotl

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!;
}

Create your DB 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 your DB context & Unit of work

builder.Services.AddDbContext<ServiceContext>(options => options.UseSqlite());
builder.Services.RegisterUnitOfWork<ServiceContext>(pooled: false);

Register generic repository & service

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 Compatible and additional computed target framework versions.
.NET 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.  net9.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
9.0.0 90 12/11/2024
8.0.5 155 1/22/2024
8.0.2 111 1/22/2024
8.0.1 139 1/13/2024
8.0.0 229 11/22/2023
8.0.0-rc.1 81 11/16/2023
8.0.0-preview.20 78 10/3/2023
8.0.0-preview.19 133 7/6/2023
8.0.0-preview.18 115 6/6/2023
8.0.0-preview.17 91 6/6/2023
8.0.0-preview.16 94 6/6/2023
8.0.0-preview.14 96 6/6/2023
8.0.0-preview.13 91 6/6/2023
8.0.0-preview.12 89 6/6/2023
8.0.0-preview.11 88 6/5/2023