diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..3729ff0
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,25 @@
+**/.classpath
+**/.dockerignore
+**/.env
+**/.git
+**/.gitignore
+**/.project
+**/.settings
+**/.toolstarget
+**/.vs
+**/.vscode
+**/*.*proj.user
+**/*.dbmdl
+**/*.jfm
+**/azds.yaml
+**/bin
+**/charts
+**/docker-compose*
+**/Dockerfile*
+**/node_modules
+**/npm-debug.log
+**/obj
+**/secrets.dev.yaml
+**/values.dev.yaml
+LICENSE
+README.md
\ No newline at end of file
diff --git a/Berizco.Api/Berizco.Api.csproj b/Berizco.Api/Berizco.Api.csproj
new file mode 100644
index 0000000..c6c5641
--- /dev/null
+++ b/Berizco.Api/Berizco.Api.csproj
@@ -0,0 +1,17 @@
+
+
+
+ net7.0
+ enable
+ enable
+ Linux
+ ..\docker-compose.dcproj
+
+
+
+
+
+
+
+
+
diff --git a/Berizco.Api/Controllers/WeatherForecastController.cs b/Berizco.Api/Controllers/WeatherForecastController.cs
new file mode 100644
index 0000000..efce28f
--- /dev/null
+++ b/Berizco.Api/Controllers/WeatherForecastController.cs
@@ -0,0 +1,18 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace Berizco.Api.Controllers
+{
+ [ApiController]
+ [Route("[controller]")]
+ public class WeatherForecastController : ControllerBase
+ {
+ public WeatherForecastController()
+ {
+ }
+
+ public IEnumerable Get()
+ {
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/Berizco.Api/Dockerfile b/Berizco.Api/Dockerfile
new file mode 100644
index 0000000..bc68f77
--- /dev/null
+++ b/Berizco.Api/Dockerfile
@@ -0,0 +1,21 @@
+#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
+
+FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
+WORKDIR /app
+EXPOSE 80
+
+FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
+WORKDIR /src
+COPY ["Berizco.Api/Berizco.Api.csproj", "Berizco.Api/"]
+RUN dotnet restore "Berizco.Api/Berizco.Api.csproj"
+COPY . .
+WORKDIR "/src/Berizco.Api"
+RUN dotnet build "Berizco.Api.csproj" -c Release -o /app/build
+
+FROM build AS publish
+RUN dotnet publish "Berizco.Api.csproj" -c Release -o /app/publish /p:UseAppHost=false
+
+FROM base AS final
+WORKDIR /app
+COPY --from=publish /app/publish .
+ENTRYPOINT ["dotnet", "Berizco.Api.dll"]
\ No newline at end of file
diff --git a/Berizco.Api/Program.cs b/Berizco.Api/Program.cs
new file mode 100644
index 0000000..df2434c
--- /dev/null
+++ b/Berizco.Api/Program.cs
@@ -0,0 +1,23 @@
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+
+builder.Services.AddControllers();
+// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
+builder.Services.AddEndpointsApiExplorer();
+builder.Services.AddSwaggerGen();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment())
+{
+ app.UseSwagger();
+ app.UseSwaggerUI();
+}
+
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.Run();
diff --git a/Berizco.Api/Properties/launchSettings.json b/Berizco.Api/Properties/launchSettings.json
new file mode 100644
index 0000000..f702a33
--- /dev/null
+++ b/Berizco.Api/Properties/launchSettings.json
@@ -0,0 +1,40 @@
+{
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ },
+ "dotnetRunMessages": true,
+ "applicationUrl": "http://localhost:5062"
+ },
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "Docker": {
+ "commandName": "Docker",
+ "launchBrowser": true,
+ "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger",
+ "environmentVariables": {
+ "ASPNETCORE_URLS": "http://+:80"
+ },
+ "publishAllPorts": true
+ }
+ },
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:28470",
+ "sslPort": 0
+ }
+ }
+}
\ No newline at end of file
diff --git a/Berizco.Api/WeatherForecast.cs b/Berizco.Api/WeatherForecast.cs
new file mode 100644
index 0000000..a55992d
--- /dev/null
+++ b/Berizco.Api/WeatherForecast.cs
@@ -0,0 +1,13 @@
+namespace Berizco.Api
+{
+ public class WeatherForecast
+ {
+ public DateOnly Date { get; set; }
+
+ public int TemperatureC { get; set; }
+
+ public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
+
+ public string? Summary { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Berizco.Api/appsettings.Development.json b/Berizco.Api/appsettings.Development.json
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ b/Berizco.Api/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/Berizco.Api/appsettings.json b/Berizco.Api/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/Berizco.Api/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/Berizco.Infrastructure/Brizco.Infrastructure.csproj b/Berizco.Infrastructure/Brizco.Infrastructure.csproj
new file mode 100644
index 0000000..cfadb03
--- /dev/null
+++ b/Berizco.Infrastructure/Brizco.Infrastructure.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
diff --git a/Berizco.Infrastructure/InfrastructureConfig.cs b/Berizco.Infrastructure/InfrastructureConfig.cs
new file mode 100644
index 0000000..33d8838
--- /dev/null
+++ b/Berizco.Infrastructure/InfrastructureConfig.cs
@@ -0,0 +1,7 @@
+namespace Brizco.Infrastructure
+{
+ public class InfrastructureConfig
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Berizco.Repository/Brizco.Repository.csproj b/Berizco.Repository/Brizco.Repository.csproj
new file mode 100644
index 0000000..fc5b947
--- /dev/null
+++ b/Berizco.Repository/Brizco.Repository.csproj
@@ -0,0 +1,25 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
diff --git a/Berizco.Repository/RepositoryConfig.cs b/Berizco.Repository/RepositoryConfig.cs
new file mode 100644
index 0000000..7e4c7c6
--- /dev/null
+++ b/Berizco.Repository/RepositoryConfig.cs
@@ -0,0 +1,7 @@
+namespace Brizco.Repository
+{
+ public class RepositoryConfig
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Berizco.sln b/Berizco.sln
new file mode 100644
index 0000000..1dfeb8e
--- /dev/null
+++ b/Berizco.sln
@@ -0,0 +1,72 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.7.34018.315
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Berizco.Api", "Berizco.Api\Berizco.Api.csproj", "{9D6CE82C-1BB9-42E7-96B5-6D43AFCF8365}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Brizco.Common", "Brizco.Common\Brizco.Common.csproj", "{351E45E6-873B-40F5-97A2-CC02FB168A3D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Brizco.Domain", "Brizco.Domain\Brizco.Domain.csproj", "{D76A820B-FD40-46AA-93BF-D640F69C4C7E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Brizco.Core", "Brizco.Core\Brizco.Core.csproj", "{305576D6-7440-4153-B6CA-3D65169E4438}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Brizco.Infrastructure", "Berizco.Infrastructure\Brizco.Infrastructure.csproj", "{DE7B8F3D-392B-4C0D-8B70-40CA1F4BB15A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Brizco.Repository", "Berizco.Repository\Brizco.Repository.csproj", "{E170997A-90FF-4179-991F-B5C36746C969}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Brizco.Identity", "Brizco.Identity", "{5B01AC0C-8DFA-400C-8137-984F67227682}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Brizco.Identity.Api", "Brizco.Identity.Api\Brizco.Identity.Api.csproj", "{6E54FD68-0FC8-4252-8F4B-714823C58FAB}"
+EndProject
+Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{9FEFFA46-5403-42CD-87A4-9B2AC30BD7B6}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9D6CE82C-1BB9-42E7-96B5-6D43AFCF8365}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9D6CE82C-1BB9-42E7-96B5-6D43AFCF8365}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9D6CE82C-1BB9-42E7-96B5-6D43AFCF8365}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9D6CE82C-1BB9-42E7-96B5-6D43AFCF8365}.Release|Any CPU.Build.0 = Release|Any CPU
+ {351E45E6-873B-40F5-97A2-CC02FB168A3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {351E45E6-873B-40F5-97A2-CC02FB168A3D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {351E45E6-873B-40F5-97A2-CC02FB168A3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {351E45E6-873B-40F5-97A2-CC02FB168A3D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D76A820B-FD40-46AA-93BF-D640F69C4C7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D76A820B-FD40-46AA-93BF-D640F69C4C7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D76A820B-FD40-46AA-93BF-D640F69C4C7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D76A820B-FD40-46AA-93BF-D640F69C4C7E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {305576D6-7440-4153-B6CA-3D65169E4438}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {305576D6-7440-4153-B6CA-3D65169E4438}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {305576D6-7440-4153-B6CA-3D65169E4438}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {305576D6-7440-4153-B6CA-3D65169E4438}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DE7B8F3D-392B-4C0D-8B70-40CA1F4BB15A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE7B8F3D-392B-4C0D-8B70-40CA1F4BB15A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DE7B8F3D-392B-4C0D-8B70-40CA1F4BB15A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DE7B8F3D-392B-4C0D-8B70-40CA1F4BB15A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E170997A-90FF-4179-991F-B5C36746C969}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E170997A-90FF-4179-991F-B5C36746C969}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E170997A-90FF-4179-991F-B5C36746C969}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E170997A-90FF-4179-991F-B5C36746C969}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6E54FD68-0FC8-4252-8F4B-714823C58FAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6E54FD68-0FC8-4252-8F4B-714823C58FAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6E54FD68-0FC8-4252-8F4B-714823C58FAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6E54FD68-0FC8-4252-8F4B-714823C58FAB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9FEFFA46-5403-42CD-87A4-9B2AC30BD7B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9FEFFA46-5403-42CD-87A4-9B2AC30BD7B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9FEFFA46-5403-42CD-87A4-9B2AC30BD7B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9FEFFA46-5403-42CD-87A4-9B2AC30BD7B6}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {6E54FD68-0FC8-4252-8F4B-714823C58FAB} = {5B01AC0C-8DFA-400C-8137-984F67227682}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E17C1DB7-407D-4734-9AE4-541062EAF3FA}
+ EndGlobalSection
+EndGlobal
diff --git a/Brizco.Common/Brizco.Common.csproj b/Brizco.Common/Brizco.Common.csproj
new file mode 100644
index 0000000..88b9ccf
--- /dev/null
+++ b/Brizco.Common/Brizco.Common.csproj
@@ -0,0 +1,21 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Brizco.Common/CommonConfig.cs b/Brizco.Common/CommonConfig.cs
new file mode 100644
index 0000000..8f82c91
--- /dev/null
+++ b/Brizco.Common/CommonConfig.cs
@@ -0,0 +1,7 @@
+namespace Brizco.Common
+{
+ public class CommonConfig
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Brizco.Common/Extensions/AssertExtensions.cs b/Brizco.Common/Extensions/AssertExtensions.cs
new file mode 100644
index 0000000..1da2851
--- /dev/null
+++ b/Brizco.Common/Extensions/AssertExtensions.cs
@@ -0,0 +1,30 @@
+using System.Collections;
+
+namespace Brizco.Common.Extensions
+{
+ public static class AssertExtensions
+ {
+ public static void NotNull(T obj, string name, string message = null)
+ where T : class
+ {
+ if (obj is null)
+ throw new ArgumentNullException($"{name} : {typeof(T)}", message);
+ }
+
+ public static void NotNull(T? obj, string name, string message = null)
+ where T : struct
+ {
+ if (!obj.HasValue)
+ throw new ArgumentNullException($"{name} : {typeof(T)}", message);
+ }
+
+ public static void NotEmpty(T obj, string name, string message = null, T defaultValue = null)
+ where T : class
+ {
+ if (obj == defaultValue
+ || obj is string str && string.IsNullOrWhiteSpace(str)
+ || obj is IEnumerable list && !list.Cast