public Task <RepositoryName> GetRepositoryNameFromLocalDirectoryPath(LocalRepositoryDirectoryPath localRepositoryDirectoryPath) { // Example: C:\Code\DEV\Git\GitHub\SafetyCone\R5T.Aalborg\ var directoryPath = localRepositoryDirectoryPath.Value; var repositoryDirectoryName = this.StringlyTypedPathOperator.GetDirectoryNameForDirectoryPath(directoryPath); var organizationDirectoryPath = this.StringlyTypedPathOperator.GetParentDirectoryPathForDirectoryPath(directoryPath); var organizationDirectoryName = this.StringlyTypedPathOperator.GetDirectoryNameForDirectoryPath(organizationDirectoryPath); var remoteRepositoryProviderDirectoryPath = this.StringlyTypedPathOperator.GetParentDirectoryPathForDirectoryPath(organizationDirectoryPath); var remoteRepositoryProviderDirectoryName = this.StringlyTypedPathOperator.GetDirectoryNameForDirectoryPath(remoteRepositoryProviderDirectoryPath); // Convention is to directly use the directory names. var remoteRepositoryProviderNameToken = remoteRepositoryProviderDirectoryName; var organizationNameToken = organizationDirectoryName; var repositoryNameToken = repositoryDirectoryName; var repositoryNameValue = $"{remoteRepositoryProviderNameToken}/{organizationNameToken}/{repositoryNameToken}"; var repositoryName = RepositoryName.From(repositoryNameValue); return(Task.FromResult(repositoryName)); }
public static async Task <RepositoryNameAndLocalDirectoryPathMapping> GetRepositoryNameAndLocalDirectoryPathMapping( this IRepositoryNameFromLocalDirectoryPathConvention repositoryNameFromLocalDirectoryPathConvention, LocalRepositoryDirectoryPath localRepositoryDirectoryPath) { var repositoryName = await repositoryNameFromLocalDirectoryPathConvention.GetRepositoryNameFromLocalDirectoryPath(localRepositoryDirectoryPath); var mapping = new RepositoryNameAndLocalDirectoryPathMapping(repositoryName, localRepositoryDirectoryPath); return(mapping); }
protected override Task <RepositoryNameAndLocalDirectoryPathMapping> DeserializeTokens(string[] tokens) { var repositoryNameToken = tokens[0]; var localRepositoryDirectoryPathToken = tokens[1]; var repositoryName = RepositoryName.From(repositoryNameToken); var localRepositoryDirectoryPath = LocalRepositoryDirectoryPath.From(localRepositoryDirectoryPathToken); var mapping = new RepositoryNameAndLocalDirectoryPathMapping(repositoryName, localRepositoryDirectoryPath); return(Task.FromResult(mapping)); }