KamiSama.Modules.Locations.Abstractions
10.0.14
dotnet add package KamiSama.Modules.Locations.Abstractions --version 10.0.14
NuGet\Install-Package KamiSama.Modules.Locations.Abstractions -Version 10.0.14
<PackageReference Include="KamiSama.Modules.Locations.Abstractions" Version="10.0.14" />
<PackageVersion Include="KamiSama.Modules.Locations.Abstractions" Version="10.0.14" />
<PackageReference Include="KamiSama.Modules.Locations.Abstractions" />
paket add KamiSama.Modules.Locations.Abstractions --version 10.0.14
#r "nuget: KamiSama.Modules.Locations.Abstractions, 10.0.14"
#:package KamiSama.Modules.Locations.Abstractions@10.0.14
#addin nuget:?package=KamiSama.Modules.Locations.Abstractions&version=10.0.14
#tool nuget:?package=KamiSama.Modules.Locations.Abstractions&version=10.0.14
KamiSama.Modules.Locations.Abstractions
Version: 10.0.0
Description
Provider-neutral province and city feature contracts, requests, DTOs, and paging search models. Reference this package from callers or alternative implementations that should not depend on EF Core, ASP.NET Core module setup, or a database provider.
How to use
dotnet add package KamiSama.Modules.Locations.Abstractions --version 10.0.0
Publication mismatch: 10.0.0 in the required install command is the current workspace/root documentation version. NuGet exposed 10.0.11 as the latest package when this surface was reviewed; 10.0.0 itself was not available.
Inject the feature contracts into application services or controllers after a concrete implementation, normally Locations Core, has registered them:
using KamiSama.Extensions.Paging;
using KamiSama.Modules.Locations.Features;
public sealed class LocationsController(IListCities cities, IAddProvince addProvince)
{
public Task<PagedResult<CityDto>> ListCitiesAsync(Guid provinceId, CancellationToken token)
=> cities.ListAsync(new CitySearchModel(1, 20, provinceId, null, null, "province"), token);
public Task<ProvinceDto> AddProvinceAsync(string name, CancellationToken token)
=> addProvince.AddAsync(new AddProvinceRequest(name), token);
}
This package contains contracts and data shapes only: it registers no services, controllers, endpoints, persistence, validation pipeline, authentication, or authorization. Core's city queries can filter by city-name substring, exact province id, or province-name substring; OrderBy = "province" sorts by province then city, while every other value sorts by city. Province queries always sort by name regardless of OrderBy. The contracts do not promise those implementation details for alternative providers.
Namespaces
- KamiSama.Modules.Locations.Features (19 types)
Types
- KamiSama.Modules.Locations.Features.AddCityRequest - Carries an existing parent-province identifier and city name for creation. Core throws
NotFoundException<Province>when the parent does not exist. - KamiSama.Modules.Locations.Features.AddProvinceRequest - Carries the name for a new province. The name has a 100-character data-annotation limit, while uniqueness is not enforced by the Core add feature.
- KamiSama.Modules.Locations.Features.CityDto - Returns a city together with the identifier and name of its parent province. Parent values are copied from the loaded province navigation when Core creates the DTO.
- KamiSama.Modules.Locations.Features.CitySearchModel - Carries city paging, city and parent-province filters, and ordering. Core supports exact province-id filtering, lowercased city/province-name substrings, and the exact
provinceordering token. - KamiSama.Modules.Locations.Features.IAddCity - Defines city creation beneath an existing province. Core loads the parent, saves the new city immediately, and does not check duplicate names.
- KamiSama.Modules.Locations.Features.IAddProvince - Defines province creation from
AddProvinceRequest. Core saves immediately and performs no duplicate-name check. - KamiSama.Modules.Locations.Features.IDeleteCity - Defines city deletion by
Guid. Core loads the row and saves its deletion immediately. - KamiSama.Modules.Locations.Features.IDeleteProvince - Defines province deletion by
Guid. Core saves immediately; the restricted relationship can make deletion fail while cities reference the province. - KamiSama.Modules.Locations.Features.IFindCityById - Defines city lookup by
Guidand returns parent province data in the DTO. Core throws the generic city not-found HTTP exception when absent. - KamiSama.Modules.Locations.Features.IFindProvinceById - Defines province lookup by
Guid. Core throws the generic province not-found HTTP exception when no row matches. - KamiSama.Modules.Locations.Features.IListCities - Defines paged city listing through
CitySearchModel. Core can shape the query by city name, parent id, parent name, and theprovinceorder token. - KamiSama.Modules.Locations.Features.IListCitiesByProvinceName - Defines city listing by a parent-province name substring. Core starts from
CitySearchModel.All, so the result is page-shaped but contains all matches rather than a finite page. - KamiSama.Modules.Locations.Features.IListProvinces - Defines paged province listing through
ProvinceSearchModel. Core filters by a case-normalized name substring and always orders by name. - KamiSama.Modules.Locations.Features.IUpdateCity - Defines updating a city's name and parent province. Core requires the new parent to exist and saves the tracked entity immediately.
- KamiSama.Modules.Locations.Features.IUpdateProvince - Defines province update by
Guid. Core replaces the name, saves immediately, and performs no duplicate-name check. - KamiSama.Modules.Locations.Features.ProvinceDto - Returns a province identifier and name across the provider-neutral feature boundary. It contains no child-city collection.
- KamiSama.Modules.Locations.Features.ProvinceSearchModel - Carries province paging, optional name filtering, and an ordering token. Core performs a lowercased name substring filter and always orders by province name, ignoring the ordering token.
- KamiSama.Modules.Locations.Features.UpdateCityRequest - Carries the parent-province identifier and replacement city name. Core loads the requested parent before assigning both values and throws when that province does not exist.
- KamiSama.Modules.Locations.Features.UpdateProvinceRequest - Carries the replacement name for an existing province. The name has a 100-character data-annotation limit, while uniqueness is not enforced by the Core update feature.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- KamiSama.Chassis.Commons.Abstractions (>= 10.0.14)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on KamiSama.Modules.Locations.Abstractions:
| Package | Downloads |
|---|---|
|
KamiSama.Modules.Locations.Core
ASP.NET Core Locations implementation with EF Core province and city persistence, scoped feature services, modular registration, and startup database initialization. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.14 | 47 | 11/8/2026 |
| 10.0.13.1 | 118 | 10/22/2026 |
| 10.0.13 | 121 | 10/22/2026 |
| 10.0.11.9 | 173 | 8/24/2026 |
| 10.0.11.8 | 159 | 8/22/2026 |
| 10.0.11.7 | 154 | 8/21/2026 |
| 10.0.11.6 | 166 | 8/19/2026 |
| 10.0.11.5 | 155 | 8/18/2026 |
| 10.0.11.4 | 154 | 8/18/2026 |
| 10.0.11.3 | 148 | 8/18/2026 |
| 10.0.11.2 | 163 | 8/18/2026 |
| 10.0.11.1 | 158 | 8/15/2026 |
| 10.0.11 | 158 | 8/11/2026 |
| 10.0.10.2 | 164 | 8/4/2026 |