update gitignore
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -392,6 +392,7 @@ FodyWeavers.xsd
|
||||
.DS_Store
|
||||
|
||||
# AI assistant files
|
||||
qwen.md
|
||||
.qwen.md
|
||||
.agent/
|
||||
.qwen/
|
||||
|
||||
103
QWEN.md
103
QWEN.md
@@ -1,103 +0,0 @@
|
||||
# Excel Pajak Application
|
||||
|
||||
## Project Overview
|
||||
|
||||
Excel Pajak is a .NET 10.0 console application that connects to a PostgreSQL database to handle tax-related data processing. The application is designed to execute database queries and process employee information, with a focus on connecting to specific database schemas containing employee data.
|
||||
|
||||
### Architecture
|
||||
- **Main Application**: Console application in the `excel_pajak` directory
|
||||
- **Test Project**: Unit and integration tests in the `excel_pajak_test` directory
|
||||
- **Technology Stack**:
|
||||
- .NET 10.0
|
||||
- PostgreSQL database connectivity via Npgsql
|
||||
- Microsoft.Extensions.Configuration for configuration management
|
||||
- MSTest for unit testing
|
||||
- Moq for mocking dependencies
|
||||
- Shouldly for assertions
|
||||
|
||||
### Key Components
|
||||
|
||||
1. **DatabaseService** (`Services/DatabaseService.cs`): Handles PostgreSQL connections and executes scalar queries
|
||||
2. **EmployeeInfo Model** (`Models/EmployeeInfo.cs`): Represents employee data structure with employee number and schema
|
||||
3. **Configuration**: Managed through `appsettings.json` with connection strings and application settings
|
||||
4. **Examples**: Demonstrates JSON deserialization of employee data
|
||||
|
||||
## Building and Running
|
||||
|
||||
### Prerequisites
|
||||
- .NET 10.0 SDK
|
||||
- PostgreSQL database server (version compatible with Npgsql 10.0.1)
|
||||
- Access to the configured database (default connection points to localhost:55432)
|
||||
|
||||
### Build Commands
|
||||
```bash
|
||||
# Restore dependencies
|
||||
dotnet restore
|
||||
|
||||
# Build the application
|
||||
dotnet build
|
||||
|
||||
# Run the application
|
||||
dotnet run --project excel_pajak/excel_pajak.csproj
|
||||
|
||||
# Run tests
|
||||
dotnet test
|
||||
```
|
||||
|
||||
### Configuration
|
||||
The application uses `appsettings.json` for configuration:
|
||||
- Connection string for PostgreSQL database
|
||||
- Schema list (currently contains "_onx4pzkwkeortehfjthgyfkb7c")
|
||||
- Year setting (currently "2025")
|
||||
|
||||
## Development Conventions
|
||||
|
||||
### Coding Standards
|
||||
- Uses nullable reference types (`#nullable enable`)
|
||||
- Follows .NET naming conventions
|
||||
- Implements asynchronous programming patterns where appropriate
|
||||
- Includes proper error handling with specific exception types
|
||||
|
||||
### Testing Approach
|
||||
- Unit tests for business logic with mocked dependencies
|
||||
- Integration tests that connect to actual PostgreSQL database
|
||||
- Tests cover both positive and negative scenarios
|
||||
- Uses Shouldly for readable assertions
|
||||
|
||||
### Error Handling
|
||||
- Validates input parameters and throws appropriate exceptions
|
||||
- Handles database connection errors gracefully
|
||||
- Provides detailed error messages for debugging
|
||||
|
||||
## Project Structure
|
||||
```
|
||||
excel_pajak/
|
||||
├── excel_pajak/ # Main application
|
||||
│ ├── Models/ # Data models
|
||||
│ │ └── EmployeeInfo.cs # Employee data structure
|
||||
│ ├── Services/ # Business logic services
|
||||
│ │ └── DatabaseService.cs # PostgreSQL database operations
|
||||
│ ├── Examples/ # Usage examples
|
||||
│ │ └── EmployeeJsonExample.cs # JSON processing example
|
||||
│ ├── Program.cs # Application entry point
|
||||
│ ├── appsettings.json # Configuration file
|
||||
│ └── excel_pajak.csproj # Project file
|
||||
├── excel_pajak_test/ # Test project
|
||||
│ ├── DatabaseServiceTests.cs # Unit tests
|
||||
│ ├── DatabaseServiceIntegrationTests.cs # Integration tests
|
||||
│ └── excel_pajak_test.csproj # Test project file
|
||||
└── openspec/ # OpenAPI specification directory
|
||||
```
|
||||
|
||||
## Database Connection
|
||||
The application connects to PostgreSQL using Npgsql with the connection string defined in `appsettings.json`. The default configuration connects to:
|
||||
- Server: localhost
|
||||
- Port: 55432
|
||||
- Database: andal_kharisma
|
||||
- User: postgres
|
||||
- Password: Release@2024
|
||||
|
||||
## Testing
|
||||
The project includes both unit tests (with mocked dependencies) and integration tests (requiring a live database connection). Unit tests validate the logic without external dependencies, while integration tests verify actual database connectivity and query execution.
|
||||
|
||||
To run integration tests, ensure that a PostgreSQL database is accessible with the configured connection string.
|
||||
Reference in New Issue
Block a user