Add Startup.cs file

This commit is contained in:
lumijiez
2025-05-04 23:49:31 +03:00
parent b466a39e89
commit d9332cef96
3 changed files with 58 additions and 29 deletions

View File

@@ -7,7 +7,8 @@
</PropertyGroup>
<ItemGroup>
<Folder Include="Abstractions\" />
<Folder Include="Products\Commands\" />
<Folder Include="Products\Queries\" />
</ItemGroup>
<ItemGroup>

View File

@@ -1,36 +1,11 @@
using System.Reflection;
using MediatR;
using Microsoft.EntityFrameworkCore;
using Printbase.Domain.Repositories;
using Printbase.Infrastructure.Database;
using Printbase.Infrastructure.Repositories;
using Printbase.WebApi;
var builder = WebApplication.CreateBuilder(args);
var services = builder.Services;
var configuration = builder.Configuration;
services.AddOpenApi();
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
configuration.GetConnectionString("DefaultConnection"),
b => b.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName)));
services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(Assembly.GetExecutingAssembly()));
services.AddScoped<IProductRepository, ProductRepository>();
services.AddScoped<IProductVariantRepository, ProductVariantRepository>();
services.AddScoped<IProductTypeRepository, ProductTypeRepository>();
services.AddScoped<IProductGroupRepository, ProductGroupRepository>();
Startup.ConfigureServices(builder);
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
}
else
{
app.UseHttpsRedirection();
}
Startup.Configure(app, app.Environment);
app.Run();

View File

@@ -0,0 +1,53 @@
using System.Reflection;
using Microsoft.EntityFrameworkCore;
using Printbase.Domain.Repositories;
using Printbase.Infrastructure.Database;
using Printbase.Infrastructure.Mapping;
using Printbase.Infrastructure.Repositories;
namespace Printbase.WebApi;
public class Startup
{
public static void ConfigureServices(WebApplicationBuilder builder)
{
var services = builder.Services;
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
builder.Configuration.GetConnectionString("DefaultConnection"),
b => b.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName)));
services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(Assembly.GetExecutingAssembly()));
services.AddScoped<IProductRepository, ProductRepository>();
services.AddScoped<IProductVariantRepository, ProductVariantRepository>();
services.AddScoped<IProductTypeRepository, ProductTypeRepository>();
services.AddScoped<IProductGroupRepository, ProductGroupRepository>();
services.AddAutoMapper(typeof(ProductMappingProfile).Assembly);
services.AddOpenApi();
}
public static void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
app.UseHttpsRedirection();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}