Fase 1: Setup ASP.NET Core API project, configure DB connection, install Dapper
This commit is contained in:
		
							
								
								
									
										26
									
								
								Backend/GestionIntegral.Api/Data/DbConnectionFactory.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								Backend/GestionIntegral.Api/Data/DbConnectionFactory.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | using Microsoft.Data.SqlClient; | ||||||
|  | using System.Data; | ||||||
|  |  | ||||||
|  | namespace GestionIntegral.Api.Data | ||||||
|  | { | ||||||
|  |     public class DbConnectionFactory | ||||||
|  |     { | ||||||
|  |         private readonly string _connectionString; | ||||||
|  |  | ||||||
|  |         // El constructor recibe IConfiguration para leer el appsettings.json | ||||||
|  |         public DbConnectionFactory(IConfiguration configuration) | ||||||
|  |         { | ||||||
|  |             _connectionString = configuration.GetConnectionString("DefaultConnection") | ||||||
|  |                                 ?? throw new ArgumentNullException(nameof(configuration), "Connection string 'DefaultConnection' not found."); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         // Método para crear y abrir una nueva conexión | ||||||
|  |         public IDbConnection CreateConnection() | ||||||
|  |         { | ||||||
|  |             // Usamos SqlConnection del paquete Microsoft.Data.SqlClient | ||||||
|  |             var connection = new SqlConnection(_connectionString); | ||||||
|  |             // Nota: No abrimos la conexión aquí. Dapper la abre y cierra automáticamente. | ||||||
|  |             return connection; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										15
									
								
								Backend/GestionIntegral.Api/GestionIntegral.Api.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								Backend/GestionIntegral.Api/GestionIntegral.Api.csproj
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | <Project Sdk="Microsoft.NET.Sdk.Web"> | ||||||
|  |  | ||||||
|  |   <PropertyGroup> | ||||||
|  |     <TargetFramework>net9.0</TargetFramework> | ||||||
|  |     <Nullable>enable</Nullable> | ||||||
|  |     <ImplicitUsings>enable</ImplicitUsings> | ||||||
|  |   </PropertyGroup> | ||||||
|  |  | ||||||
|  |   <ItemGroup> | ||||||
|  |     <PackageReference Include="Dapper" Version="2.1.66" /> | ||||||
|  |     <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.3" /> | ||||||
|  |     <PackageReference Include="Microsoft.Data.SqlClient" Version="6.0.2" /> | ||||||
|  |   </ItemGroup> | ||||||
|  |  | ||||||
|  | </Project> | ||||||
							
								
								
									
										6
									
								
								Backend/GestionIntegral.Api/GestionIntegral.Api.http
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								Backend/GestionIntegral.Api/GestionIntegral.Api.http
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | @GestionIntegral.Api_HostAddress = http://localhost:5183 | ||||||
|  |  | ||||||
|  | GET {{GestionIntegral.Api_HostAddress}}/weatherforecast/ | ||||||
|  | Accept: application/json | ||||||
|  |  | ||||||
|  | ### | ||||||
							
								
								
									
										26
									
								
								Backend/GestionIntegral.Api/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								Backend/GestionIntegral.Api/Program.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | var builder = WebApplication.CreateBuilder(args); | ||||||
|  |  | ||||||
|  | // Add services to the container. | ||||||
|  |  | ||||||
|  | builder.Services.AddControllers(); | ||||||
|  | // Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi | ||||||
|  | builder.Services.AddOpenApi(); | ||||||
|  |  | ||||||
|  | // Registra la fábrica de conexiones como Singleton (una instancia para toda la app) | ||||||
|  | builder.Services.AddSingleton<GestionIntegral.Api.Data.DbConnectionFactory>(); | ||||||
|  |  | ||||||
|  | var app = builder.Build(); | ||||||
|  |  | ||||||
|  | // Configure the HTTP request pipeline. | ||||||
|  | if (app.Environment.IsDevelopment()) | ||||||
|  | { | ||||||
|  |     app.MapOpenApi(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | app.UseHttpsRedirection(); | ||||||
|  |  | ||||||
|  | app.UseAuthorization(); | ||||||
|  |  | ||||||
|  | app.MapControllers(); | ||||||
|  |  | ||||||
|  | app.Run(); | ||||||
							
								
								
									
										23
									
								
								Backend/GestionIntegral.Api/Properties/launchSettings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								Backend/GestionIntegral.Api/Properties/launchSettings.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | { | ||||||
|  |   "$schema": "https://json.schemastore.org/launchsettings.json", | ||||||
|  |   "profiles": { | ||||||
|  |     "http": { | ||||||
|  |       "commandName": "Project", | ||||||
|  |       "dotnetRunMessages": true, | ||||||
|  |       "launchBrowser": false, | ||||||
|  |       "applicationUrl": "http://localhost:5183", | ||||||
|  |       "environmentVariables": { | ||||||
|  |         "ASPNETCORE_ENVIRONMENT": "Development" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "https": { | ||||||
|  |       "commandName": "Project", | ||||||
|  |       "dotnetRunMessages": true, | ||||||
|  |       "launchBrowser": false, | ||||||
|  |       "applicationUrl": "https://localhost:7270;http://localhost:5183", | ||||||
|  |       "environmentVariables": { | ||||||
|  |         "ASPNETCORE_ENVIRONMENT": "Development" | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										11
									
								
								Backend/GestionIntegral.Api/appsettings.Development.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Backend/GestionIntegral.Api/appsettings.Development.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | { | ||||||
|  |   "Logging": { | ||||||
|  |     "LogLevel": { | ||||||
|  |       "Default": "Information", | ||||||
|  |       "Microsoft.AspNetCore": "Warning" | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   "ConnectionStrings": { | ||||||
|  |     "DefaultConnection": "Server=TECNICA3;Database=gestionvbnet;User ID=gestionapi;Password=1351;Encrypt=False;TrustServerCertificate=True;" | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										9
									
								
								Backend/GestionIntegral.Api/appsettings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								Backend/GestionIntegral.Api/appsettings.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | { | ||||||
|  |   "Logging": { | ||||||
|  |     "LogLevel": { | ||||||
|  |       "Default": "Information", | ||||||
|  |       "Microsoft.AspNetCore": "Warning" | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   "AllowedHosts": "*" | ||||||
|  | } | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | // <autogenerated /> | ||||||
|  | using System; | ||||||
|  | using System.Reflection; | ||||||
|  | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] | ||||||
| @@ -0,0 +1,22 @@ | |||||||
|  | //------------------------------------------------------------------------------ | ||||||
|  | // <auto-generated> | ||||||
|  | //     This code was generated by a tool. | ||||||
|  | // | ||||||
|  | //     Changes to this file may cause incorrect behavior and will be lost if | ||||||
|  | //     the code is regenerated. | ||||||
|  | // </auto-generated> | ||||||
|  | //------------------------------------------------------------------------------ | ||||||
|  |  | ||||||
|  | using System; | ||||||
|  | using System.Reflection; | ||||||
|  |  | ||||||
|  | [assembly: System.Reflection.AssemblyCompanyAttribute("GestionIntegral.Api")] | ||||||
|  | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | ||||||
|  | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] | ||||||
|  | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] | ||||||
|  | [assembly: System.Reflection.AssemblyProductAttribute("GestionIntegral.Api")] | ||||||
|  | [assembly: System.Reflection.AssemblyTitleAttribute("GestionIntegral.Api")] | ||||||
|  | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] | ||||||
|  |  | ||||||
|  | // Generado por la clase WriteCodeFragment de MSBuild. | ||||||
|  |  | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | is_global = true | ||||||
|  | build_property.TargetFramework = net9.0 | ||||||
|  | build_property.TargetPlatformMinVersion =  | ||||||
|  | build_property.UsingMicrosoftNETSdkWeb = true | ||||||
|  | build_property.ProjectTypeGuids =  | ||||||
|  | build_property.InvariantGlobalization =  | ||||||
|  | build_property.PlatformNeutralAssembly =  | ||||||
|  | build_property.EnforceExtendedAnalyzerRules =  | ||||||
|  | build_property._SupportedPlatformList = Linux,macOS,Windows | ||||||
|  | build_property.RootNamespace = GestionIntegral.Api | ||||||
|  | build_property.RootNamespace = GestionIntegral.Api | ||||||
|  | build_property.ProjectDir = E:\GestionIntegralWeb\Backend\GestionIntegral.Api\ | ||||||
|  | build_property.EnableComHosting =  | ||||||
|  | build_property.EnableGeneratedComInterfaceComImportInterop =  | ||||||
|  | build_property.RazorLangVersion = 9.0 | ||||||
|  | build_property.SupportLocalizedComponentNames =  | ||||||
|  | build_property.GenerateRazorMetadataSourceChecksumAttributes =  | ||||||
|  | build_property.MSBuildProjectDirectory = E:\GestionIntegralWeb\Backend\GestionIntegral.Api | ||||||
|  | build_property._RazorSourceGeneratorDebug =  | ||||||
|  | build_property.EffectiveAnalysisLevelStyle = 9.0 | ||||||
|  | build_property.EnableCodeStyleSeverity =  | ||||||
| @@ -0,0 +1,17 @@ | |||||||
|  | // <auto-generated/> | ||||||
|  | global using global::Microsoft.AspNetCore.Builder; | ||||||
|  | global using global::Microsoft.AspNetCore.Hosting; | ||||||
|  | global using global::Microsoft.AspNetCore.Http; | ||||||
|  | global using global::Microsoft.AspNetCore.Routing; | ||||||
|  | global using global::Microsoft.Extensions.Configuration; | ||||||
|  | global using global::Microsoft.Extensions.DependencyInjection; | ||||||
|  | global using global::Microsoft.Extensions.Hosting; | ||||||
|  | global using global::Microsoft.Extensions.Logging; | ||||||
|  | global using global::System; | ||||||
|  | global using global::System.Collections.Generic; | ||||||
|  | global using global::System.IO; | ||||||
|  | global using global::System.Linq; | ||||||
|  | global using global::System.Net.Http; | ||||||
|  | global using global::System.Net.Http.Json; | ||||||
|  | global using global::System.Threading; | ||||||
|  | global using global::System.Threading.Tasks; | ||||||
| @@ -0,0 +1,91 @@ | |||||||
|  | { | ||||||
|  |   "format": 1, | ||||||
|  |   "restore": { | ||||||
|  |     "E:\\GestionIntegralWeb\\Backend\\GestionIntegral.Api\\GestionIntegral.Api.csproj": {} | ||||||
|  |   }, | ||||||
|  |   "projects": { | ||||||
|  |     "E:\\GestionIntegralWeb\\Backend\\GestionIntegral.Api\\GestionIntegral.Api.csproj": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "restore": { | ||||||
|  |         "projectUniqueName": "E:\\GestionIntegralWeb\\Backend\\GestionIntegral.Api\\GestionIntegral.Api.csproj", | ||||||
|  |         "projectName": "GestionIntegral.Api", | ||||||
|  |         "projectPath": "E:\\GestionIntegralWeb\\Backend\\GestionIntegral.Api\\GestionIntegral.Api.csproj", | ||||||
|  |         "packagesPath": "C:\\Users\\dmolinari\\.nuget\\packages\\", | ||||||
|  |         "outputPath": "E:\\GestionIntegralWeb\\Backend\\GestionIntegral.Api\\obj\\", | ||||||
|  |         "projectStyle": "PackageReference", | ||||||
|  |         "fallbackFolders": [ | ||||||
|  |           "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" | ||||||
|  |         ], | ||||||
|  |         "configFilePaths": [ | ||||||
|  |           "C:\\Users\\dmolinari\\AppData\\Roaming\\NuGet\\NuGet.Config", | ||||||
|  |           "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", | ||||||
|  |           "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" | ||||||
|  |         ], | ||||||
|  |         "originalTargetFrameworks": [ | ||||||
|  |           "net9.0" | ||||||
|  |         ], | ||||||
|  |         "sources": { | ||||||
|  |           "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, | ||||||
|  |           "C:\\Program Files\\dotnet\\library-packs": {}, | ||||||
|  |           "https://api.nuget.org/v3/index.json": {} | ||||||
|  |         }, | ||||||
|  |         "frameworks": { | ||||||
|  |           "net9.0": { | ||||||
|  |             "targetAlias": "net9.0", | ||||||
|  |             "projectReferences": {} | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "warningProperties": { | ||||||
|  |           "warnAsError": [ | ||||||
|  |             "NU1605" | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         "restoreAuditProperties": { | ||||||
|  |           "enableAudit": "true", | ||||||
|  |           "auditLevel": "low", | ||||||
|  |           "auditMode": "direct" | ||||||
|  |         }, | ||||||
|  |         "SdkAnalysisLevel": "9.0.200" | ||||||
|  |       }, | ||||||
|  |       "frameworks": { | ||||||
|  |         "net9.0": { | ||||||
|  |           "targetAlias": "net9.0", | ||||||
|  |           "dependencies": { | ||||||
|  |             "Dapper": { | ||||||
|  |               "target": "Package", | ||||||
|  |               "version": "[2.1.66, )" | ||||||
|  |             }, | ||||||
|  |             "Microsoft.AspNetCore.OpenApi": { | ||||||
|  |               "target": "Package", | ||||||
|  |               "version": "[9.0.3, )" | ||||||
|  |             }, | ||||||
|  |             "Microsoft.Data.SqlClient": { | ||||||
|  |               "target": "Package", | ||||||
|  |               "version": "[6.0.2, )" | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "imports": [ | ||||||
|  |             "net461", | ||||||
|  |             "net462", | ||||||
|  |             "net47", | ||||||
|  |             "net471", | ||||||
|  |             "net472", | ||||||
|  |             "net48", | ||||||
|  |             "net481" | ||||||
|  |           ], | ||||||
|  |           "assetTargetFallback": true, | ||||||
|  |           "warn": true, | ||||||
|  |           "frameworkReferences": { | ||||||
|  |             "Microsoft.AspNetCore.App": { | ||||||
|  |               "privateAssets": "none" | ||||||
|  |             }, | ||||||
|  |             "Microsoft.NETCore.App": { | ||||||
|  |               "privateAssets": "all" | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.201/PortableRuntimeIdentifierGraph.json" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -0,0 +1,16 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8" standalone="no"?> | ||||||
|  | <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||||
|  |   <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> | ||||||
|  |     <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess> | ||||||
|  |     <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> | ||||||
|  |     <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> | ||||||
|  |     <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> | ||||||
|  |     <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\dmolinari\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders> | ||||||
|  |     <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> | ||||||
|  |     <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.13.1</NuGetToolVersion> | ||||||
|  |   </PropertyGroup> | ||||||
|  |   <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> | ||||||
|  |     <SourceRoot Include="C:\Users\dmolinari\.nuget\packages\" /> | ||||||
|  |     <SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" /> | ||||||
|  |   </ItemGroup> | ||||||
|  | </Project> | ||||||
| @@ -0,0 +1,7 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8" standalone="no"?> | ||||||
|  | <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||||
|  |   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> | ||||||
|  |     <Import Project="$(NuGetPackageRoot)microsoft.extensions.options\9.0.4\buildTransitive\net8.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\9.0.4\buildTransitive\net8.0\Microsoft.Extensions.Options.targets')" /> | ||||||
|  |     <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\9.0.4\buildTransitive\net8.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\9.0.4\buildTransitive\net8.0\Microsoft.Extensions.Logging.Abstractions.targets')" /> | ||||||
|  |   </ImportGroup> | ||||||
|  | </Project> | ||||||
							
								
								
									
										1829
									
								
								Backend/GestionIntegral.Api/obj/project.assets.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1829
									
								
								Backend/GestionIntegral.Api/obj/project.assets.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										29
									
								
								GestionIntegralWeb.sln
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								GestionIntegralWeb.sln
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | Microsoft Visual Studio Solution File, Format Version 12.00 | ||||||
|  | # Visual Studio Version 17 | ||||||
|  | VisualStudioVersion = 17.5.2.0 | ||||||
|  | MinimumVisualStudioVersion = 10.0.40219.1 | ||||||
|  | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Backend", "Backend", "{1AE8ACA6-933B-BF2A-3671-3E2EAC007D16}" | ||||||
|  | EndProject | ||||||
|  | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GestionIntegral.Api", "Backend\GestionIntegral.Api\GestionIntegral.Api.csproj", "{0BDDD7BB-D884-750B-88D0-768E979C8F89}" | ||||||
|  | EndProject | ||||||
|  | Global | ||||||
|  | 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||||
|  | 		Debug|Any CPU = Debug|Any CPU | ||||||
|  | 		Release|Any CPU = Release|Any CPU | ||||||
|  | 	EndGlobalSection | ||||||
|  | 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||||
|  | 		{0BDDD7BB-D884-750B-88D0-768E979C8F89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{0BDDD7BB-D884-750B-88D0-768E979C8F89}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||||
|  | 		{0BDDD7BB-D884-750B-88D0-768E979C8F89}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||||
|  | 		{0BDDD7BB-D884-750B-88D0-768E979C8F89}.Release|Any CPU.Build.0 = Release|Any CPU | ||||||
|  | 	EndGlobalSection | ||||||
|  | 	GlobalSection(SolutionProperties) = preSolution | ||||||
|  | 		HideSolutionNode = FALSE | ||||||
|  | 	EndGlobalSection | ||||||
|  | 	GlobalSection(NestedProjects) = preSolution | ||||||
|  | 		{0BDDD7BB-D884-750B-88D0-768E979C8F89} = {1AE8ACA6-933B-BF2A-3671-3E2EAC007D16} | ||||||
|  | 	EndGlobalSection | ||||||
|  | 	GlobalSection(ExtensibilityGlobals) = postSolution | ||||||
|  | 		SolutionGuid = {0A847EB9-3705-4088-827B-248420065D5F} | ||||||
|  | 	EndGlobalSection | ||||||
|  | EndGlobal | ||||||
		Reference in New Issue
	
	Block a user