Extensible_Portfolio_Site/EPS.SDK/Git/GitManager.cs
2022-09-06 22:29:40 -07:00

40 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
namespace ExtensiblePortfolioSite.SDK.Git
{
internal static class GitManager
{
private static readonly SortedDictionary<String, GitService> Providers = new();
public static void Register(String Service, IGitProvider Provider)
{
if (Providers.TryGetValue(Service, out GitService? GitService))
{
GitService.addProvider(Provider);
return;
}
lock (Providers)
{
if (Providers.TryGetValue(Service, out GitService))
{
GitService.addProvider(Provider);
return;
}
GitService = new GitService(Service);
GitService.addProvider(Provider);
Providers.Add(Service, GitService);
}
}
public static void Unregister(String Service, IGitProvider Provider)
{
if (Providers.TryGetValue(Service, out GitService? GitService))
GitService.removeProvider(Provider);
}
public static GitService GetService(String Website) => Providers[Website];
}
}