NetworkManager Design Documentation
Architecture Overview
NetworkManager is designed as a .NET executable library that interfaces between the database and EPANET water distribution network models. Its primary functionality is to import the contents of water distribution networks from INP files into the database. It provides a robust interface for water distribution network model management, data persistence, and configuration handling.
Technical Specifications
- Target Framework: .NET 8.0
- Platform: x64
- Architecture: Executable Library
Component Architecture
Core Components
Water Distribution Network Model Management
- EPANET INP file import/export
- Water distribution network topology handling
- Element property management
- Validation rules
Data Access
- Entity Framework Core integration
- PostgreSQL database connectivity
- Data persistence
- Query optimization
Configuration
- Settings management
- Environment configuration
- Validation rules
- Dynamic updates
Dependencies
NuGet Packages
- Microsoft.EntityFrameworkCore (v8.0.7)
- Microsoft.EntityFrameworkCore.Relational (v8.0.7)
- Microsoft.Extensions.Configuration (v8.0.0)
- Microsoft.Extensions.Configuration.Json (v8.0.0)
Internal Project References
- EpanetWrapper
- EN2PostgresContext
- HTModels
Data Flow Architecture
Water Distribution Network Model Management Flow
Data Access Flow
Database Schema
- Entity Framework Core with PostgreSQL
- Water distribution network model persistence
- Data validation
- Query optimization
Configuration Management
- JSON-based settings
- Environment-specific config
- Dynamic updates
- Validation rules
Error Handling
- Exception management
- Data validation
- Error logging
- Recovery procedures
Performance Considerations
- Query optimization
- Memory management
- Resource cleanup
- Connection pooling
Integration Architecture
- Clean interface design
- Data access patterns
- Configuration management
- Error propagation
Future Architecture Considerations
- Additional water distribution network model features
- Performance optimizations
- Data management improvements
- Configuration enhancements