131 lines
3.4 KiB
C#
131 lines
3.4 KiB
C#
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
|
|||
|
List<AeroplaneDal> aeroplanes = new()
|
|||
|
{
|
|||
|
new AeroplaneDal() { AeroplaneId = Guid.NewGuid(), Name = "Boeing 747", Weght = 41140, Lenght = 40, ProductionDate = new DateTime(2010, 4, 15)},
|
|||
|
new AeroplaneDal() { AeroplaneId = Guid.NewGuid(), Name = "Ту-154", Weght = 55300, Lenght = 48, ProductionDate = new DateTime(2005, 3, 20)},
|
|||
|
new AeroplaneDal() { AeroplaneId = Guid.NewGuid(), Name = "Ил-86", Weght = 117500, Lenght = 60, ProductionDate = new DateTime(2005, 9, 7)},
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
|
|||
|
var builder = WebApplication.CreateBuilder(args);
|
|||
|
|
|||
|
builder.Services.AddEndpointsApiExplorer();
|
|||
|
builder.Services.AddSwaggerGen();
|
|||
|
|
|||
|
var app = builder.Build();
|
|||
|
|
|||
|
if (app.Environment.IsDevelopment())
|
|||
|
{
|
|||
|
app.UseSwagger();
|
|||
|
app.UseSwaggerUI();
|
|||
|
}
|
|||
|
|
|||
|
app.UseHttpsRedirection();
|
|||
|
|
|||
|
app.MapGet("/Aeroplanes/", () =>
|
|||
|
{
|
|||
|
var result = aeroplanes.Select(r => new worker_1.Models.Aeroplane.GetList.AeroplaneResult()
|
|||
|
{
|
|||
|
AeroplaneId = r.AeroplaneId,
|
|||
|
Name = r.Name,
|
|||
|
Lenght = r.Lenght,
|
|||
|
ProductionDate = r.ProductionDate,
|
|||
|
Weght = r.Weght,
|
|||
|
}).ToArray();
|
|||
|
|
|||
|
return Results.Ok(result);
|
|||
|
})
|
|||
|
.WithName("List")
|
|||
|
.WithOpenApi();
|
|||
|
|
|||
|
app.MapGet("/Aeroplanes/{aeroplaneId}", (Guid aeroplaneId) =>
|
|||
|
{
|
|||
|
var aeroplane = aeroplanes.FirstOrDefault(r => r.AeroplaneId == aeroplaneId);
|
|||
|
if (aeroplane is null)
|
|||
|
{
|
|||
|
return Results.NotFound($"Не найдена самолет {aeroplaneId}");
|
|||
|
}
|
|||
|
|
|||
|
return Results.Json(new worker_1.Models.Aeroplane.Get.AeroplaneResult()
|
|||
|
{
|
|||
|
AeroplaneId = aeroplane.AeroplaneId,
|
|||
|
Name = aeroplane.Name,
|
|||
|
Lenght = aeroplane.Lenght,
|
|||
|
ProductionDate = aeroplane.ProductionDate,
|
|||
|
Weght = aeroplane.Weght,
|
|||
|
});
|
|||
|
})
|
|||
|
.WithName("Get")
|
|||
|
.WithOpenApi();
|
|||
|
|
|||
|
app.MapPost("/Aeroplanes/", ([FromBody] worker_1.Models.Aeroplane.Create.AeroplaneForm request) =>
|
|||
|
{
|
|||
|
Guid aeroplaneId = Guid.NewGuid();
|
|||
|
aeroplanes.Add(new AeroplaneDal()
|
|||
|
{
|
|||
|
AeroplaneId = aeroplaneId,
|
|||
|
Lenght = request.Lenght,
|
|||
|
ProductionDate = request.ProductionDate,
|
|||
|
Weght = request.Weght,
|
|||
|
Name = request.Name,
|
|||
|
});
|
|||
|
|
|||
|
return Results.Ok(aeroplaneId);
|
|||
|
})
|
|||
|
.WithName("Create")
|
|||
|
.WithOpenApi();
|
|||
|
|
|||
|
app.MapPatch("/Aeroplanes/{aeroplaneId}", (Guid aeroplaneId, [FromBody] worker_1.Models.Aeroplane.Create.AeroplaneForm request) =>
|
|||
|
{
|
|||
|
var aeroplane = aeroplanes.FirstOrDefault(r => r.AeroplaneId == aeroplaneId);
|
|||
|
if (aeroplane is null)
|
|||
|
{
|
|||
|
return Results.NotFound($"Не найден самолет {aeroplaneId}");
|
|||
|
}
|
|||
|
|
|||
|
if (!string.IsNullOrEmpty(request.Name))
|
|||
|
{
|
|||
|
aeroplane.Name = request.Name;
|
|||
|
}
|
|||
|
|
|||
|
aeroplane.ProductionDate = request.ProductionDate;
|
|||
|
aeroplane.Lenght = request.Lenght;
|
|||
|
aeroplane.Weght = request.Weght;
|
|||
|
|
|||
|
return Results.Ok(aeroplane);
|
|||
|
})
|
|||
|
.WithName("Update")
|
|||
|
.WithOpenApi();
|
|||
|
|
|||
|
app.MapDelete("/Aeroplanes/{aeroplaneId}", (Guid aeroplaneId) =>
|
|||
|
{
|
|||
|
var aeroplane = aeroplanes.FirstOrDefault(r => r.AeroplaneId == aeroplaneId);
|
|||
|
if (aeroplane is null)
|
|||
|
{
|
|||
|
return Results.NotFound($"Не найден самолет {aeroplaneId}");
|
|||
|
}
|
|||
|
|
|||
|
aeroplanes.Remove(aeroplane);
|
|||
|
return Results.Ok(aeroplaneId);
|
|||
|
})
|
|||
|
.WithName("Delete")
|
|||
|
.WithOpenApi();
|
|||
|
|
|||
|
app.Run();
|
|||
|
|
|||
|
|
|||
|
|
|||
|
public class AeroplaneDal
|
|||
|
{
|
|||
|
public Guid AeroplaneId { get; set; }
|
|||
|
|
|||
|
public string Name { get; set; }
|
|||
|
|
|||
|
public DateTime ProductionDate { get; set; }
|
|||
|
|
|||
|
public int Weght { get; set; }
|
|||
|
|
|||
|
public int Lenght { get; set; }
|
|||
|
}
|