dotnet-geo-management/CLAUDE.md

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 support CancellationToken for async operations