131 lines
3.3 KiB
C#
131 lines
3.3 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
||
|
||
List<CompanyDal> 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; }
|
||
} |