using Microsoft.AspNetCore.Mvc; List companies = new() { new CompanyDal() { CompanyId = Guid.NewGuid(), Name = "Microsoft", FieldOfActivity = "Информационные технологии", Location = "США"}, new CompanyDal() { CompanyId = Guid.NewGuid(), Name = "Додо пицца", FieldOfActivity = "Питание", Location = "Россия"}, new CompanyDal() { CompanyId = Guid.NewGuid(), Name = "Renault", FieldOfActivity = "Автомобилестроение", Location = "Франция"}, }; 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("/Companies/", () => { var result = companies.Select(r => new worker_1.Models.Company.GetList.CompanyResult() { CompanyId = r.CompanyId, Name = r.Name, FieldOfActivity = r.FieldOfActivity, Location = r.Location, }).ToArray(); return Results.Ok(result); }) .WithName("List") .WithOpenApi(); app.MapGet("/Companies/{companyId}", (Guid companyId) => { var company = companies.FirstOrDefault(r => r.CompanyId == companyId); if (company is null) { return Results.NotFound($"Не найдена компания {companyId}"); } return Results.Json(new worker_1.Models.Company.Get.CompanyResult() { CompanyId = company.CompanyId, Name = company.Name, FieldOfActivity = company.FieldOfActivity, Location = company.Location, }); }) .WithName("Get") .WithOpenApi(); app.MapPost("/Companies/", ([FromBody] worker_1.Models.Company.Create.CompanyForm request) => { Guid companyId = Guid.NewGuid(); companies.Add(new CompanyDal() { CompanyId = companyId, FieldOfActivity = request.FieldOfActivity, Location = request.Location, Name = request.Name, }); return Results.Ok(companyId); }) .WithName("Create") .WithOpenApi(); app.MapPatch("/Companies/{companyId}", (Guid companyId, [FromBody] worker_1.Models.Company.Create.CompanyForm request) => { var company = companies.FirstOrDefault(r => r.CompanyId == companyId); if (company is null) { return Results.NotFound($"Не найдена компания {companyId}"); } if (!string.IsNullOrEmpty(request.Name)) { company.Name = request.Name; } if (!string.IsNullOrEmpty(request.Location)) { company.Location = request.Location; } if (!string.IsNullOrEmpty(request.FieldOfActivity)) { company.FieldOfActivity = request.FieldOfActivity; } return Results.Ok(company); }) .WithName("Update") .WithOpenApi(); app.MapDelete("/Companies/{companyId}", (Guid companyId) => { var company = companies.FirstOrDefault(r => r.CompanyId == companyId); if (company is null) { return Results.NotFound($"Не найдена компания {companyId}"); } companies.Remove(company); return Results.Ok(companyId); }) .WithName("Delete") .WithOpenApi(); app.Run(); public class CompanyDal { public Guid CompanyId { get; set; } public string Name { get; set; } public string FieldOfActivity { get; set; } public string Location { get; set; } }