1.8 KiB
1.8 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
Svrnty.GeoManagement is a .NET 8 library providing abstractions for geocoding and address management services. The solution follows a provider pattern to allow different geocoding service implementations.
Solution Structure
The solution contains two projects:
- Svrnty.GeoManagement.Abstractions: Core abstractions and models for geocoding operations
- Svrnty.GeoManagement.Tests: xUnit test project
Key Architecture Patterns
Provider Pattern
The library uses the IGeoManagementProvider
interface to abstract geocoding services. Implementations should provide:
- Forward geocoding (address to coordinates)
- Reverse geocoding (coordinates to address)
- Address normalization
Address Model
The Address
record in Svrnty.GeoManagement.Abstractions/Models/Address.cs
is the central data structure. It:
- Implements
IAddress
interface - Includes optional
GeoPoint
location data - Provides formatted address output via
GetFormattedAddress()
method with three format types (Full, Compact, MultiLine) - Has an
IsNormalized
flag to track address validation status
Common Commands
Build
dotnet build
Run Tests
dotnet test
Run Specific Test
dotnet test --filter "FullyQualifiedName~TestNamespace.TestClass.TestMethod"
Restore Dependencies
dotnet restore
Development Notes
- Target framework: .NET 8
- Nullable reference types are enabled
- The Abstractions project is designed to be provider-agnostic - don't add provider-specific dependencies
- When implementing
IGeoManagementProvider
, all methods supportCancellationToken
for async operations