refactor: Update controllers for new Material model
MaterialsController: - Update to use MaterialShape enum - Add Type and Grade to imports - Fix display name formatting SeedController: - Update seed data to use MaterialShape enum - Add MaterialType assignments CuttingTool: - Add Notes property Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -26,7 +26,7 @@ public class MaterialsController : ControllerBase
|
|||||||
.Select(m => new MaterialDto
|
.Select(m => new MaterialDto
|
||||||
{
|
{
|
||||||
Id = m.Id,
|
Id = m.Id,
|
||||||
Shape = m.Shape,
|
Shape = m.Shape.GetDisplayName(),
|
||||||
Size = m.Size,
|
Size = m.Size,
|
||||||
Description = m.Description
|
Description = m.Description
|
||||||
})
|
})
|
||||||
@@ -46,7 +46,7 @@ public class MaterialsController : ControllerBase
|
|||||||
return Ok(new MaterialDto
|
return Ok(new MaterialDto
|
||||||
{
|
{
|
||||||
Id = material.Id,
|
Id = material.Id,
|
||||||
Shape = material.Shape,
|
Shape = material.Shape.GetDisplayName(),
|
||||||
Size = material.Size,
|
Size = material.Size,
|
||||||
Description = material.Description
|
Description = material.Description
|
||||||
});
|
});
|
||||||
@@ -61,16 +61,20 @@ public class MaterialsController : ControllerBase
|
|||||||
if (string.IsNullOrWhiteSpace(dto.Size))
|
if (string.IsNullOrWhiteSpace(dto.Size))
|
||||||
return BadRequest("Size is required");
|
return BadRequest("Size is required");
|
||||||
|
|
||||||
|
var parsedShape = MaterialShapeExtensions.ParseShape(dto.Shape);
|
||||||
|
if (!parsedShape.HasValue)
|
||||||
|
return BadRequest($"Unknown shape: {dto.Shape}");
|
||||||
|
|
||||||
// Check for duplicates
|
// Check for duplicates
|
||||||
var exists = await _context.Materials
|
var exists = await _context.Materials
|
||||||
.AnyAsync(m => m.Shape == dto.Shape && m.Size == dto.Size && m.IsActive);
|
.AnyAsync(m => m.Shape == parsedShape.Value && m.Size == dto.Size && m.IsActive);
|
||||||
|
|
||||||
if (exists)
|
if (exists)
|
||||||
return Conflict($"Material '{dto.Shape} - {dto.Size}' already exists");
|
return Conflict($"Material '{dto.Shape} - {dto.Size}' already exists");
|
||||||
|
|
||||||
var material = new Material
|
var material = new Material
|
||||||
{
|
{
|
||||||
Shape = dto.Shape,
|
Shape = parsedShape.Value,
|
||||||
Size = dto.Size,
|
Size = dto.Size,
|
||||||
Description = dto.Description,
|
Description = dto.Description,
|
||||||
CreatedAt = DateTime.UtcNow
|
CreatedAt = DateTime.UtcNow
|
||||||
@@ -82,7 +86,7 @@ public class MaterialsController : ControllerBase
|
|||||||
return CreatedAtAction(nameof(GetMaterial), new { id = material.Id }, new MaterialDto
|
return CreatedAtAction(nameof(GetMaterial), new { id = material.Id }, new MaterialDto
|
||||||
{
|
{
|
||||||
Id = material.Id,
|
Id = material.Id,
|
||||||
Shape = material.Shape,
|
Shape = material.Shape.GetDisplayName(),
|
||||||
Size = material.Size,
|
Size = material.Size,
|
||||||
Description = material.Description
|
Description = material.Description
|
||||||
});
|
});
|
||||||
@@ -103,8 +107,15 @@ public class MaterialsController : ControllerBase
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var parsedShape = MaterialShapeExtensions.ParseShape(dto.Shape);
|
||||||
|
if (!parsedShape.HasValue)
|
||||||
|
{
|
||||||
|
errors.Add($"Unknown shape: {dto.Shape}");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
var exists = await _context.Materials
|
var exists = await _context.Materials
|
||||||
.AnyAsync(m => m.Shape == dto.Shape && m.Size == dto.Size && m.IsActive);
|
.AnyAsync(m => m.Shape == parsedShape.Value && m.Size == dto.Size && m.IsActive);
|
||||||
|
|
||||||
if (exists)
|
if (exists)
|
||||||
{
|
{
|
||||||
@@ -114,7 +125,7 @@ public class MaterialsController : ControllerBase
|
|||||||
|
|
||||||
_context.Materials.Add(new Material
|
_context.Materials.Add(new Material
|
||||||
{
|
{
|
||||||
Shape = dto.Shape,
|
Shape = parsedShape.Value,
|
||||||
Size = dto.Size,
|
Size = dto.Size,
|
||||||
Description = dto.Description,
|
Description = dto.Description,
|
||||||
CreatedAt = DateTime.UtcNow
|
CreatedAt = DateTime.UtcNow
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class SeedController : ControllerBase
|
|||||||
foreach (var size in sizes)
|
foreach (var size in sizes)
|
||||||
{
|
{
|
||||||
var exists = await _context.Materials
|
var exists = await _context.Materials
|
||||||
.AnyAsync(m => m.Shape == "Round Bar" && m.Size == size && m.IsActive);
|
.AnyAsync(m => m.Shape == MaterialShape.RoundBar && m.Size == size && m.IsActive);
|
||||||
|
|
||||||
if (exists)
|
if (exists)
|
||||||
{
|
{
|
||||||
@@ -73,7 +73,7 @@ public class SeedController : ControllerBase
|
|||||||
|
|
||||||
_context.Materials.Add(new Material
|
_context.Materials.Add(new Material
|
||||||
{
|
{
|
||||||
Shape = "Round Bar",
|
Shape = MaterialShape.RoundBar,
|
||||||
Size = size,
|
Size = size,
|
||||||
Description = "1018 Cold Finished",
|
Description = "1018 Cold Finished",
|
||||||
CreatedAt = DateTime.UtcNow
|
CreatedAt = DateTime.UtcNow
|
||||||
|
|||||||
@@ -8,5 +8,5 @@ public class CuttingTool
|
|||||||
public bool IsDefault { get; set; }
|
public bool IsDefault { get; set; }
|
||||||
public bool IsActive { get; set; } = true;
|
public bool IsActive { get; set; } = true;
|
||||||
|
|
||||||
public ICollection<Project> Projects { get; set; } = new List<Project>();
|
public ICollection<Job> Jobs { get; set; } = new List<Job>();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user