51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using ZB.MOM.WW.OtOpcUa.Configuration;
|
|
using ZB.MOM.WW.OtOpcUa.Configuration.Entities;
|
|
|
|
namespace ZB.MOM.WW.OtOpcUa.Admin.Services;
|
|
|
|
public sealed class UnsService(OtOpcUaConfigDbContext db)
|
|
{
|
|
public Task<List<UnsArea>> ListAreasAsync(long generationId, CancellationToken ct) =>
|
|
db.UnsAreas.AsNoTracking()
|
|
.Where(a => a.GenerationId == generationId)
|
|
.OrderBy(a => a.Name)
|
|
.ToListAsync(ct);
|
|
|
|
public Task<List<UnsLine>> ListLinesAsync(long generationId, CancellationToken ct) =>
|
|
db.UnsLines.AsNoTracking()
|
|
.Where(l => l.GenerationId == generationId)
|
|
.OrderBy(l => l.Name)
|
|
.ToListAsync(ct);
|
|
|
|
public async Task<UnsArea> AddAreaAsync(long draftId, string clusterId, string name, string? notes, CancellationToken ct)
|
|
{
|
|
var area = new UnsArea
|
|
{
|
|
GenerationId = draftId,
|
|
UnsAreaId = $"area-{Guid.NewGuid():N}"[..20],
|
|
ClusterId = clusterId,
|
|
Name = name,
|
|
Notes = notes,
|
|
};
|
|
db.UnsAreas.Add(area);
|
|
await db.SaveChangesAsync(ct);
|
|
return area;
|
|
}
|
|
|
|
public async Task<UnsLine> AddLineAsync(long draftId, string unsAreaId, string name, string? notes, CancellationToken ct)
|
|
{
|
|
var line = new UnsLine
|
|
{
|
|
GenerationId = draftId,
|
|
UnsLineId = $"line-{Guid.NewGuid():N}"[..20],
|
|
UnsAreaId = unsAreaId,
|
|
Name = name,
|
|
Notes = notes,
|
|
};
|
|
db.UnsLines.Add(line);
|
|
await db.SaveChangesAsync(ct);
|
|
return line;
|
|
}
|
|
}
|