-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
72 lines (57 loc) · 1.98 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using MongoDB.Driver;
using VendingMachine_Logic;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
var appconfig = builder.Configuration.GetSection("VendingMachineDatabase");
Console.Out.WriteLine("using mongo connection string " + appconfig.GetValue<string>("ConnectionString"));
builder.Services.Configure<VendingMachineDatabaseSettings>(appconfig);
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
// MongoDB services
builder.Services.AddSingleton<BankService>();
builder.Services.AddSingleton<VendingMachine>();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
var captureMock = Environment.GetEnvironmentVariable("CAPTUREMOCK_SERVER");
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint($"/swagger/v1/swagger.json", "v1");
if (!string.IsNullOrEmpty(captureMock))
{
Console.Out.WriteLine("Setting up interceptor for CaptureMock");
options.UseRequestInterceptor("(req) => { req.url = req.url.replace(/http:..(127.0.0.1|localhost):[0-9]+/, '" +
captureMock + "'); return req; }");
}
});
app.UseDeveloperExceptionPage();
app.UseStaticFiles();
}
app.MapGet("/coins", (VendingMachine machine) =>
{
return machine.GetCoins();
})
.WithName("GetInsertedCoins")
.WithOpenApi();
app.MapPut("/coins", (VendingMachine machine, int coin) =>
{
machine.InsertCoin(coin);
})
.WithName("InsertCoin")
.WithOpenApi();
app.MapGet("/display", (VendingMachine machine) =>
{
return machine.Display();
})
.WithName("GetDisplay")
.WithOpenApi();
app.MapPost("/empty_machine", (VendingMachine machine) =>
{
machine.Empty();
})
.WithName("EmptyMachine")
.WithOpenApi();
app.Run();