update gitignore
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -392,6 +392,7 @@ FodyWeavers.xsd
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
# AI assistant files
|
# AI assistant files
|
||||||
|
qwen.md
|
||||||
.qwen.md
|
.qwen.md
|
||||||
.agent/
|
.agent/
|
||||||
.qwen/
|
.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