Skip to content

BlueSharkPartners/Prisma

Repository files navigation

Prisma

Aplicación desktop WPF para validar pedidos recibidos por correo electrónico.

Ejecutar con mocks

cd src/Prisma.App
dotnet run

La aplicación arranca con 30 correos simulados, pedidos extraídos y datos de ejemplo. No requiere conexión a Outlook, Gemini ni SQL Server.

Estructura de la solución

Prisma.sln
├── Prisma.Core           → Modelos, enums, interfaces, configuración
├── Prisma.Infrastructure → Mocks, settings, placeholders para servicios reales
└── Prisma.App            → WPF UI, MainWindow, MainWindowState

Configuración

Archivo: %LocalAppData%\Prisma\settings.json

Se crea automáticamente. Persiste:

  • Tema (System/Light/Dark)
  • Posición y tamaño de ventana
  • Anchos de paneles
  • Filtros y búsqueda
  • Columnas del DataGrid

Cambiar de mocks a servicios reales

En src/Prisma.App/App.xaml.cs, sustituir los registros de DI:

Outlook 365 (Microsoft Graph)

// Antes:
services.AddSingleton<IOutlookMailService, MockOutlookMailService>();
// Después:
services.AddSingleton<IOutlookMailService, GraphOutlookMailService>();

Configuración necesaria en settings.json:

{
  "outlook": {
    "tenantId": "tu-tenant-id",
    "clientId": "tu-client-id",
    "mailbox": "[email protected]"
  }
}

Variables de entorno:

  • PRISMA_OUTLOOK_SECRET → Client secret de Azure AD

Dependencias NuGet a añadir:

  • Microsoft.Graph
  • Azure.Identity

Gemini (extracción IA)

// Antes:
services.AddSingleton<IGeminiExtractionService, MockGeminiExtractionService>();
// Después:
services.AddSingleton<IGeminiExtractionService, GeminiExtractionService>();

Configuración necesaria en settings.json:

{
  "gemini": {
    "apiKey": "",
    "modelName": "gemini-2.0-flash"
  }
}

Variables de entorno:

  • PRISMA_GEMINI_KEY → API key de Google AI Studio

SQL Server (Dapper)

// Antes:
services.AddSingleton<IEmailRepository, MockEmailRepository>();
services.AddSingleton<IOrderRepository, MockOrderRepository>();
// Después:
services.AddSingleton<IEmailRepository, DapperEmailRepository>();
services.AddSingleton<IOrderRepository, DapperOrderRepository>();

Configuración necesaria en settings.json:

{
  "sql": {
    "connectionString": "Server=localhost;Database=Prisma;Trusted_Connection=True;TrustServerCertificate=True;"
  }
}

Esquema SQL: src/Prisma.Infrastructure/SqlServer/schema.sql

Dependencias NuGet a añadir:

  • Dapper
  • Microsoft.Data.SqlClient

Estado actual

Servicio Estado
Outlook 365 Mock (placeholder listo)
Gemini Mock (placeholder listo)
SQL Server Mock (schema.sql listo)
Persistencia UI Funcional (JsonSettingsService)
Theming Funcional (System/Light/Dark)

Los servicios reales NO están activos. Los placeholders contienen la estructura, comentarios y TODOs necesarios para implementar la integración real.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors