# matias-ruiz-decourt/entradasmvc architecture

> Architecture diagram of the GitHub repository matias-ruiz-decourt/entradasmvc, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/matias-ruiz-decourt/entradasmvc
- Repository: https://github.com/matias-ruiz-decourt/entradasmvc

## Overview

EntradasMvc is a small ASP.NET Core MVC app for quoting ticket purchases. The default route opens the entry form; submitting it validates customer and quantity fields, then shows either validation errors or a quote with subtotal, discount, and total. A separate exception path serves an error page with a request ID. The excerpts establish controller, model, and routing behavior; view templates are present in the tree but were not sampled, so their rendering details are not inferred.

Main entry points: [`Controllers/EntradasController.cs`](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Controllers/EntradasController.cs) (Entradas controller), [`Controllers/HomeController.cs`](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Controllers/HomeController.cs) (Home controller), [`Program.cs`](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Program.cs) (Web application), [`Models/Cotizacion.cs`](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Models/Cotizacion.cs) (Quote model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["Web routing"]
  node_web_app["Web application<br/>[Program.cs]"]
end

subgraph group_quotes["Quote workflow"]
  node_entradas_controller["Entradas controller"]
  node_cotizacion["Quote model<br/>[Cotizacion.cs]"]
  node_quote_form["Quote form<br/>[Index.cshtml]"]
  node_quote_result["Quote result<br/>[Resultado.cshtml]"]
end

subgraph group_errors["Error handling"]
  node_home_controller["Home controller<br/>[HomeController.cs]"]
  node_error_model["Error model<br/>[ErrorViewModel.cs]"]
  node_error_view["Error page<br/>[Error.cshtml]"]
end

node_web_app -->|"routes by default"| node_entradas_controller
node_web_app -->|"handles exceptions"| node_home_controller
node_entradas_controller -->|"creates and validates"| node_cotizacion
node_entradas_controller -->|"returns form"| node_quote_form
node_entradas_controller -->|"returns result"| node_quote_result
node_home_controller -->|"creates model"| node_error_model
node_home_controller -->|"returns view"| node_error_view

click node_web_app "https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Program.cs"
click node_entradas_controller "https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Controllers/EntradasController.cs"
click node_cotizacion "https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Models/Cotizacion.cs"
click node_quote_form "https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Views/Entradas/Index.cshtml"
click node_quote_result "https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Views/Entradas/Resultado.cshtml"
click node_home_controller "https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Controllers/HomeController.cs"
click node_error_model "https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Models/ErrorViewModel.cs"
click node_error_view "https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Views/Shared/Error.cshtml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web_app toneBlue
class node_entradas_controller,node_cotizacion,node_quote_form,node_quote_result toneAmber
class node_home_controller,node_error_model,node_error_view toneMint
```

## Components

### Web routing

- [Web application](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Program.cs): `Program.cs`

### Quote workflow

- [Entradas controller](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Controllers/EntradasController.cs): `Controllers/EntradasController.cs`
- [Quote model](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Models/Cotizacion.cs): `Models/Cotizacion.cs`
- [Quote form](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Views/Entradas/Index.cshtml): `Views/Entradas/Index.cshtml`
- [Quote result](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Views/Entradas/Resultado.cshtml): `Views/Entradas/Resultado.cshtml`

### Error handling

- [Home controller](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Controllers/HomeController.cs): `Controllers/HomeController.cs`
- [Error model](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Models/ErrorViewModel.cs): `Models/ErrorViewModel.cs`
- [Error page](https://github.com/matias-ruiz-decourt/entradasmvc/blob/main/Views/Shared/Error.cshtml): `Views/Shared/Error.cshtml`

## Connections

- Web application → Entradas controller: routes by default (evidence: `Program.cs`)
- Web application → Home controller: handles exceptions (evidence: `Program.cs`)
- Entradas controller → Quote model: creates and validates (evidence: `Controllers/EntradasController.cs`)
- Entradas controller → Quote form: returns form (evidence: `Controllers/EntradasController.cs`)
- Entradas controller → Quote result: returns result (evidence: `Controllers/EntradasController.cs`)
- Home controller → Error model: creates model (evidence: `Controllers/HomeController.cs`)
- Home controller → Error page: returns view (evidence: `Controllers/HomeController.cs`)
