Files
hermes/WebApp/Endpoints/OrganizationsEndpoints.cs

43 lines
1.4 KiB
C#

using Microsoft.EntityFrameworkCore;
using WebApp.Data;
using WebApp.Entities;
using WebApp.Mapping;
namespace WebApp.Endpoints;
public static class OrganizationsEndpoints
{
const string GetOrganizationEndpointName = "GetOrganization";
public static RouteGroupBuilder MapOrganizationsEndpoints(this WebApplication app)
{
var group = app.MapGroup("api/organizations")
.WithParameterValidation();
// GET /organizations
group.MapGet("/",
async (ApplicationDbContext dbContext, HttpContext httpContext) =>
await dbContext.Organisations
//.Include(Eve => Eve.Organisation)
.OrderByDescending(Org => Org.OrganisationId)
.Select(Org => Org.ToOrgSummaryDto()) //OrgSummaryDto
.AsNoTracking()
.ToListAsync());
// GET /organizations/1
group.MapGet("/{id}",
async (int id, ApplicationDbContext dbContext, HttpContext httpContext, GeneralUseHelpers guhf) =>
{
Organisation? Org = await dbContext.Organisations.FindAsync(id);
if (Org is null) return Results.NotFound();
return Results.Ok(Org.ToOrgSummaryDto()); //OrgSummaryDto
})
.WithName(GetOrganizationEndpointName);
return group;
}
}