Add endpoint to get gpus by machine.

This commit is contained in:
2025-11-16 04:55:45 +00:00
parent 981cd3c27c
commit cc2738e45d
3 changed files with 37 additions and 16 deletions

View File

@@ -20,27 +20,27 @@ namespace Marechai.App.Gpus
{
/// <summary>Gets an item from the Marechai.App.gpus.item collection</summary>
/// <param name="position">Unique identifier of the item</param>
/// <returns>A <see cref="global::Marechai.App.Gpus.Item.GpusItemRequestBuilder"/></returns>
public global::Marechai.App.Gpus.Item.GpusItemRequestBuilder this[int position]
/// <returns>A <see cref="global::Marechai.App.Gpus.Item.GpuItemRequestBuilder"/></returns>
public global::Marechai.App.Gpus.Item.GpuItemRequestBuilder this[int position]
{
get
{
var urlTplParams = new Dictionary<string, object>(PathParameters);
urlTplParams.Add("id", position);
return new global::Marechai.App.Gpus.Item.GpusItemRequestBuilder(urlTplParams, RequestAdapter);
urlTplParams.Add("gpu%2Did", position);
return new global::Marechai.App.Gpus.Item.GpuItemRequestBuilder(urlTplParams, RequestAdapter);
}
}
/// <summary>Gets an item from the Marechai.App.gpus.item collection</summary>
/// <param name="position">Unique identifier of the item</param>
/// <returns>A <see cref="global::Marechai.App.Gpus.Item.GpusItemRequestBuilder"/></returns>
/// <returns>A <see cref="global::Marechai.App.Gpus.Item.GpuItemRequestBuilder"/></returns>
[Obsolete("This indexer is deprecated and will be removed in the next major version. Use the one with the typed parameter instead.")]
public global::Marechai.App.Gpus.Item.GpusItemRequestBuilder this[string position]
public global::Marechai.App.Gpus.Item.GpuItemRequestBuilder this[string position]
{
get
{
var urlTplParams = new Dictionary<string, object>(PathParameters);
if (!string.IsNullOrWhiteSpace(position)) urlTplParams.Add("id", position);
return new global::Marechai.App.Gpus.Item.GpusItemRequestBuilder(urlTplParams, RequestAdapter);
if (!string.IsNullOrWhiteSpace(position)) urlTplParams.Add("gpu%2Did", position);
return new global::Marechai.App.Gpus.Item.GpuItemRequestBuilder(urlTplParams, RequestAdapter);
}
}
/// <summary>

View File

@@ -17,27 +17,27 @@ namespace Marechai.App.ResolutionsByGpu.Gpus
{
/// <summary>Gets an item from the Marechai.App.resolutionsByGpu.gpus.item collection</summary>
/// <param name="position">Unique identifier of the item</param>
/// <returns>A <see cref="global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithResolutionItemRequestBuilder"/></returns>
public global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithResolutionItemRequestBuilder this[int position]
/// <returns>A <see cref="global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithGpuItemRequestBuilder"/></returns>
public global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithGpuItemRequestBuilder this[int position]
{
get
{
var urlTplParams = new Dictionary<string, object>(PathParameters);
urlTplParams.Add("resolutionId", position);
return new global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithResolutionItemRequestBuilder(urlTplParams, RequestAdapter);
urlTplParams.Add("gpuId", position);
return new global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithGpuItemRequestBuilder(urlTplParams, RequestAdapter);
}
}
/// <summary>Gets an item from the Marechai.App.resolutionsByGpu.gpus.item collection</summary>
/// <param name="position">Unique identifier of the item</param>
/// <returns>A <see cref="global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithResolutionItemRequestBuilder"/></returns>
/// <returns>A <see cref="global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithGpuItemRequestBuilder"/></returns>
[Obsolete("This indexer is deprecated and will be removed in the next major version. Use the one with the typed parameter instead.")]
public global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithResolutionItemRequestBuilder this[string position]
public global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithGpuItemRequestBuilder this[string position]
{
get
{
var urlTplParams = new Dictionary<string, object>(PathParameters);
if (!string.IsNullOrWhiteSpace(position)) urlTplParams.Add("resolutionId", position);
return new global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithResolutionItemRequestBuilder(urlTplParams, RequestAdapter);
if (!string.IsNullOrWhiteSpace(position)) urlTplParams.Add("gpuId", position);
return new global::Marechai.App.ResolutionsByGpu.Gpus.Item.WithGpuItemRequestBuilder(urlTplParams, RequestAdapter);
}
}
/// <summary>

View File

@@ -82,6 +82,27 @@ public class GpusController(MarechaiContext context) : ControllerBase
})
.ToListAsync();
[HttpGet("{gpuId:int}/machines")]
[AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public Task<List<MachineDto>> GetMachinesByGpuAsync(int gpuId) => context.GpusByMachine.Where(g => g.GpuId == gpuId)
.Select(g => g.Machine)
.OrderBy(m => m.Company.Name)
.ThenBy(m => m.Name)
.Select(m => new MachineDto
{
Id = m.Id,
Company = m.Company.Name,
CompanyId = m.Company.Id,
Name = m.Name,
Model = m.Model,
Introduced = m.Introduced,
Type = m.Type,
FamilyId = m.FamilyId
})
.ToListAsync();
[HttpGet("{id:int}")]
[AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)]