private static IsWorkspaceApiNameInSourceControl GetIsWorkspaceApiNameInSourceControl()

in tools/code/publisher/WorkspaceApi.cs [99:127]


    private static IsWorkspaceApiNameInSourceControl GetIsWorkspaceApiNameInSourceControl(IServiceProvider provider)
    {
        var getArtifactFiles = provider.GetRequiredService<GetArtifactFiles>();
        var serviceDirectory = provider.GetRequiredService<ManagementServiceDirectory>();

        return (name, workspaceName) =>
            doesInformationFileExist(name, workspaceName)
            || doesSpecificationFileExist(name, workspaceName);

        bool doesInformationFileExist(ApiName name, WorkspaceName workspaceName)
        {
            var artifactFiles = getArtifactFiles();
            var informationFile = WorkspaceApiInformationFile.From(name, workspaceName, serviceDirectory);

            return artifactFiles.Contains(informationFile.ToFileInfo());
        }

        bool doesSpecificationFileExist(ApiName name, WorkspaceName workspaceName)
        {
            var artifactFiles = getArtifactFiles();
            var getFileInApiDirectory = WorkspaceApiDirectory.From(name, workspaceName, serviceDirectory)
                                                             .ToDirectoryInfo()
                                                             .GetChildFile;

            return Common.SpecificationFileNames
                         .Select(getFileInApiDirectory)
                         .Any(artifactFiles.Contains);
        }
    }