Program.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using Products.API.Middlewares;
  2. using Scalar.AspNetCore;
  3. using Products.Business.Persistence;
  4. using Products.Business.Repository;
  5. using Products.Business.Service;
  6. namespace Products.API;
  7. internal class Program
  8. {
  9. public static void Main(string[] args)
  10. {
  11. var builder = WebApplication.CreateBuilder(args);
  12. var corsPolicyName = "MyAllowSpecificOrigins";
  13. // Add services to the container.
  14. builder.Services.AddControllers().AddNewtonsoftJson();
  15. builder.Services.AddOpenApi();
  16. builder.Services.AddScoped<IProductService, ProductService>();
  17. builder.Services.AddScoped<IProductRepository, ProductRepository>();
  18. builder.Services.AddDbContext<DataContext>();
  19. builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
  20. builder.Services.Configure<RouteOptions>(options => options.LowercaseUrls = true);
  21. builder.Services.AddCors(
  22. options =>
  23. {
  24. options.AddPolicy(
  25. corsPolicyName,
  26. corsPolicyBuilder => corsPolicyBuilder
  27. .AllowAnyOrigin()
  28. .AllowAnyMethod()
  29. .AllowAnyHeader());
  30. });
  31. var app = builder.Build();
  32. // Configure the HTTP request pipeline.
  33. if (app.Environment.IsDevelopment())
  34. {
  35. app.MapOpenApi();
  36. app.MapScalarApiReference();
  37. }
  38. app.UseHttpsRedirection();
  39. app.UseAuthorization();
  40. app.ConfigureExceptionHandler();
  41. app.UseCors(corsPolicyName);
  42. app.MapControllers();
  43. app.Run();
  44. }
  45. }