예제 #1
0
        static AssetStatus CalculateStatus(
            string fullPath,
            string wkPath,
            IgnoredFilesFilter ignoredFilter)
        {
            if (!IsOnWorkspace(fullPath, wkPath))
            {
                return(AssetStatus.None);
            }

            WorkspaceTreeNode treeNode = Plastic.API.GetWorkspaceTreeNode(fullPath);

            if (CheckWorkspaceTreeNodeStatus.IsPrivate(treeNode))
            {
                return(ignoredFilter.IsIgnored(fullPath) ?
                       AssetStatus.Ignored : AssetStatus.Private);
            }

            if (CheckWorkspaceTreeNodeStatus.IsAdded(treeNode))
            {
                return(AssetStatus.Added);
            }

            AssetStatus result = AssetStatus.Controlled;

            if (CheckWorkspaceTreeNodeStatus.IsCheckedOut(treeNode) &&
                !CheckWorkspaceTreeNodeStatus.IsDirectory(treeNode))
            {
                result |= AssetStatus.Checkout;
            }

            return(result);
        }
        static void AddIfNotControlled(
            string[] paths,
            IPlasticAPI api)
        {
            List <string> fullPaths = new List <string>();

            IgnoredFilesFilter ignoredFilter = new IgnoredFilesFilter(
                GlobalConfig.Instance);

            foreach (string path in paths)
            {
                string fullPath     = Path.GetFullPath(path);
                string fullPathMeta = MetaPath.GetMetaPath(fullPath);

                if (api.GetWorkspaceFromPath(fullPath) == null)
                {
                    return;
                }

                if (api.GetWorkspaceTreeNode(fullPath) == null &&
                    !ignoredFilter.IsIgnored(fullPath))
                {
                    fullPaths.Add(fullPath);
                }

                if (File.Exists(fullPathMeta) &&
                    api.GetWorkspaceTreeNode(fullPathMeta) == null &&
                    !ignoredFilter.IsIgnored(fullPath))
                {
                    fullPaths.Add(fullPathMeta);
                }
            }

            if (fullPaths.Count == 0)
            {
                return;
            }

            IList checkouts;

            api.Add(
                fullPaths.ToArray(),
                GetDefaultAddOptions(),
                out checkouts);
        }