public VersionedAsset ToVersionedAsset(ExtendedItem eachItem) { VersionedAsset asset = new VersionedAsset(GetAssetPath(eachItem, Workspace)); asset.SetChangeListID(eachItem.VersionLocal.ToString()); asset.SetRevision(eachItem.VersionLocal.ToString()); if (asset.ExistsOnDisk) { asset.AddState(State.kLocal); } else { asset.AddState(State.kMissing); } if (eachItem.IsInWorkspace) { if (eachItem.IsLatest) { asset.AddState(State.kSynced); } else { asset.AddState(State.kOutOfSync); } } if (Workspace.Location == Microsoft.TeamFoundation.VersionControl.Common.WorkspaceLocation.Local) { ApplyStatusFromExtendedItem(asset, eachItem); } return(asset); }
void ApplyStatusFromExtendedItem(VersionedAsset asset, ExtendedItem eachItem) { if (asset == null) { return; } var isLocal = true; if (eachItem.ChangeType.HasFlag(ChangeType.Lock)) { asset.AddState(isLocal ? State.kLockedLocal : State.kLockedRemote); } if (eachItem.ChangeType.HasFlag(ChangeType.Add)) { asset.AddState(isLocal ? State.kAddedLocal : State.kAddedRemote); } else if (eachItem.ChangeType.HasFlag(ChangeType.Delete)) { asset.AddState(isLocal ? State.kDeletedLocal : State.kDeletedRemote); if (isLocal) { asset.RemoveState(State.kMissing); asset.AddState(State.kSynced); } } else if (eachItem.ChangeType.HasFlag(ChangeType.Edit) || eachItem.ChangeType.HasFlag(ChangeType.Rename) || eachItem.ChangeType.HasFlag(ChangeType.Branch) || eachItem.ChangeType.HasFlag(ChangeType.Merge) || eachItem.ChangeType.HasFlag(ChangeType.Rollback) || eachItem.ChangeType.HasFlag(ChangeType.Undelete) || eachItem.ChangeType.HasFlag(ChangeType.Encoding)) { asset.AddState(isLocal ? State.kCheckedOutLocal : State.kCheckedOutRemote); } }