34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
namespace Flawless.Server.Utility;
|
|
|
|
public class PathTransformer(IConfiguration config)
|
|
{
|
|
|
|
private readonly string _rootPath = config.GetValue<string>("LocalStoragePath") ?? "./Storage";
|
|
|
|
public string GetLocalStoragePath()
|
|
{
|
|
return _rootPath;
|
|
}
|
|
|
|
public string GetRepositoryRootPath(Guid repositoryId)
|
|
{
|
|
if (repositoryId == Guid.Empty) throw new ArgumentException(nameof(repositoryId));
|
|
return Path.Combine(_rootPath, repositoryId.ToString());
|
|
}
|
|
|
|
public string GetCommitManifestPath(Guid repositoryId, Guid commitId)
|
|
{
|
|
if (repositoryId == Guid.Empty) throw new ArgumentException(nameof(repositoryId));
|
|
if (commitId == Guid.Empty) throw new ArgumentException(nameof(commitId));
|
|
|
|
return Path.Combine(_rootPath, repositoryId.ToString(), "Manifests", commitId.ToString());
|
|
}
|
|
|
|
public string GetDepotPath(Guid repositoryId, Guid depotId)
|
|
{
|
|
if (repositoryId == Guid.Empty) throw new ArgumentException(nameof(repositoryId));
|
|
if (depotId == Guid.Empty) throw new ArgumentException(nameof(depotId));
|
|
|
|
return Path.Combine(_rootPath, repositoryId.ToString(), "Depots", depotId.ToString());
|
|
}
|
|
} |