Files
ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/Services/InstanceLocator.cs
T
Joseph Doherty 7b0b9c7365 refactor: rename ScadaLink → ZB.MOM.WW.ScadaBridge (code + projects + namespaces)
Solution + 23 src projects + 26 test projects renamed; folders, csproj,
namespaces, and ScadaLinkDbContext/ScadaBridgeDbContext class updated.
ActorSystem "scadalink" → "scadabridge", Akka seed-node URLs migrated.
SQL roles/logins, LDAP domains, CLI command name, and CLI config dir
(~/.scadalink → ~/.scadabridge) also renamed.

Build green; 5 Host.Tests fail awaiting SQL login rename in next commit.
Pre-existing StaleTagMonitor timing flakes unchanged.

Rename script committed at tools/rename-to-scadabridge.sh.
2026-05-28 09:37:45 -04:00

37 lines
1.3 KiB
C#

using Microsoft.EntityFrameworkCore;
using ZB.MOM.WW.ScadaBridge.Commons.Interfaces.Services;
namespace ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Services;
/// <summary>
/// Resolves instance unique names to site identifiers using the configuration database.
/// </summary>
public class InstanceLocator : IInstanceLocator
{
private readonly ScadaBridgeDbContext _context;
/// <summary>Initializes the locator with the EF Core database context.</summary>
/// <param name="context">The database context used to look up instances and sites.</param>
public InstanceLocator(ScadaBridgeDbContext context)
{
_context = context ?? throw new ArgumentNullException(nameof(context));
}
/// <inheritdoc />
public async Task<string?> GetSiteIdForInstanceAsync(
string instanceUniqueName,
CancellationToken cancellationToken = default)
{
var instance = await _context.Set<Commons.Entities.Instances.Instance>()
.FirstOrDefaultAsync(i => i.UniqueName == instanceUniqueName, cancellationToken);
if (instance == null)
return null;
var site = await _context.Set<Commons.Entities.Sites.Site>()
.FindAsync(new object[] { instance.SiteId }, cancellationToken);
return site?.SiteIdentifier;
}
}