private LockLevel InitializeLockLevel() { LockLevel result = LockLevel.CheckOut; try { var settingValue = FindBestMatchForProjectSetting(TfsSettings.Default.LockLevels); LockLevel parsedLevel; if (settingValue != null && Enum.TryParse <LockLevel>(settingValue, true, out parsedLevel)) { result = parsedLevel; } } catch { } if (Workspace.Location == Microsoft.TeamFoundation.VersionControl.Common.WorkspaceLocation.Local && result == LockLevel.CheckOut) { result = LockLevel.Checkin; } return(result); }
/// <summary> /// /// </summary> /// <returns></returns> public override bool Save(XmlWriter writer) { if (writer == null) { return(false); } writer.WriteStartElement(Tag); writer.WriteAttributeString("side", Side.ToString()); writer.WriteAttributeString("reusable", Reusable.ToString()); writer.WriteAttributeString("activateitem", NeededItem); writer.WriteAttributeString("consumeitem", ConsumeItem.ToString()); writer.WriteAttributeString("picklock", LockLevel.ToString()); writer.WriteAttributeString("activated", ActivatedDecoration.ToString()); writer.WriteAttributeString("deactivated", DeactivatedDecoration.ToString()); if (Scripts.Count > 0) { writer.WriteStartElement("scripts"); foreach (WallSwitchScript script in Scripts) { script.Save(writer); } writer.WriteEndElement(); } base.Save(writer); writer.WriteEndElement(); return(true); }
public LockComponent(LockType type, LockLevel level, string dbname) : this() { this.Type = type; this.Level = level; this.Dbname = dbname; }
/// <summary> /// Locks this item. /// </summary> /// <param name="level">Whether lock is share or exclusive.</param> /// <param name="isDeep">Whether lock is deep.</param> /// <param name="requestedTimeOut">Lock timeout which was requested by client. /// Server may ignore this parameter and set any timeout.</param> /// <param name="owner">Owner of the lock as specified by client.</param> /// <returns> /// Instance of <see cref="LockResult"/> with information about the lock. /// </returns> public async Task <LockResult> LockAsync(LockLevel level, bool isDeep, TimeSpan?requestedTimeOut, string owner) { await RequireUnlockedAsync(level == LockLevel.Shared); string token = Guid.NewGuid().ToString(); // If timeout is absent or infinit timeout requested, // grant 5 minute lock. TimeSpan timeOut = TimeSpan.FromMinutes(5); if (requestedTimeOut.HasValue && requestedTimeOut < TimeSpan.MaxValue) { timeOut = requestedTimeOut.Value; } DateLockInfo lockInfo = new DateLockInfo { Expiration = DateTime.UtcNow + timeOut, IsDeep = false, Level = level, LockRoot = Path, LockToken = token, ClientOwner = owner, TimeOut = timeOut }; await SaveLockAsync(lockInfo); await context.socketService.NotifyRefreshAsync(GetParentPath(Path)); return(new LockResult(lockInfo.LockToken, lockInfo.TimeOut)); }
public ChangeRequest(string path, RequestType requestType, ItemType itemType, RecursionType recursion, LockLevel lockLevel) { this.item = new ItemSpec(path, recursion); this.requestType = requestType; this.itemType = itemType; this.lockLevel = lockLevel; }
/// <summary> /// Lock configuration for VisualObject. /// </summary> /// <param name="level">Whether to lock this object for touching or the whole user interface tree.</param> /// <param name="personal">If false then lock is common for all players so that player2 won't /// be able to touch the object for some time after player1 touched it.</param> /// <param name="delay">Lock delay in milliseconds.</param> /// <param name="allowThisTouchSession">If not then first touch would lock the object so every next touch during touch session won't pass.</param> /// <param name="duringTouchSession">Whether lock has to be active for the whole touch session or not.</param> public Lock(LockLevel level = LockLevel.Self, bool personal = true, int delay = -1, bool allowThisTouchSession = true, bool duringTouchSession = false) { Level = level; Personal = personal; Delay = delay < 0 ? UIDefault.LockDelay : delay; AllowThisTouchSession = allowThisTouchSession; DuringTouchSession = duringTouchSession; }
public ChangeRequest(string path, RequestType requestType, ItemType itemType, RecursionType recursion, LockLevel lockLevel, VersionSpec version) { this.Item = new ItemSpec(path, recursion); this.RequestType = requestType; this.ItemType = itemType; this.LockLevel = lockLevel; this.VersionSpec = version; }
public LockedWay(LockLevel lockLevel, Func <MapLocation, MapLocation?> getNext, Func <Trigger, bool> hasProperFormattedPassage, Func <MapLocation, bool> moveBackCheck, MapLocation fromLocation, IRoom fromRoom) { LockLevel = lockLevel; GetNext = getNext; HasProperFormattedPassage = hasProperFormattedPassage; MoveBackCheck = moveBackCheck; FromLocation = fromLocation; FromRoom = fromRoom; }
private void AddDoor(int x, int y, bool isEastWest, LockLevel lockLevel = LockLevel.None) { throw new NotImplementedException("What was going on in these tests?"); //var location = new MapLocation(_data, x, y); //location.Tile = _tileAllWalls; //var doorTrigger = location.AddTrigger("Door_Open"); //doorTrigger.Arg3 = (int)lockLevel; //if (!isEastWest) // doorTrigger.Arg4 = 1; }
public LockEntry(LockEntry cc) { OT = cc.OT; OK = cc.OK; NrComposite = cc.NrComposite; crea_when = cc.crea_when; LastPinged = cc.LastPinged; Owner = cc.Owner; Level = cc.Level; IsSubsidiaryOf = cc.IsSubsidiaryOf; HasSubsidiaries = cc.HasSubsidiaries; }
private void SetLock(List <string> paths, ItemType itemType, LockLevel lockLevel, RecursionType recursion) { if (paths.Count == 0) { return; } var changes = paths.Select(p => new ChangeRequest(p, RequestType.Lock, itemType, recursion, lockLevel, VersionSpec.Latest)).ToList(); List <Failure> failures; var getOperations = this.VersionControlService.PendChanges(this, changes, out failures); ProcessGetOperations(getOperations, ProcessType.Get); this.RefreshPendingChanges(); }
/// <summary> /// Performs a check-out of the specified item. /// </summary> /// <param name="item">The path to the file to check out.</param> /// <param name="lockLevel">The lock level to apply to each file checked out.</param> /// <param name="recursive">Recurse to the last child.</param> /// <returns><c>false</c> if file was already checked out.</returns> public static bool CheckOut(string item, LockLevel lockLevel = LockLevel.Unchanged, bool recursive = false) { var checkinChanges = Workspace.GetPendingChangesEnumerable(item, recursive ? RecursionType.Full : RecursionType.None); if (!PendingChange.IsIEnumerableEmpty(checkinChanges)) { //File is already checked out. return(false); } Workspace.PendEdit(new string[] { item }, recursive ? RecursionType.Full : RecursionType.None, null, lockLevel, true, Microsoft.TeamFoundation.VersionControl.Common.PendChangesOptions.GetLatestOnCheckout); return(true); }
public async Task <LockResult> LockAsync(LockLevel level, bool isDeep, TimeSpan?timeout, string owner) { if (await ItemHasLockAsync(level == LockLevel.Shared)) { throw new LockedException(); } if (isDeep) { // check if no items are locked in this subtree await FindLocksDownAsync(this, level == LockLevel.Shared); } if (!timeout.HasValue || timeout == TimeSpan.MaxValue) { // If timeout is absent or infinity timeout requested, // grant 5 minute lock. timeout = TimeSpan.FromMinutes(5); } // We store expiration time in UTC. If server/database is moved // to other time zone the locks expiration time is always correct. DateTime expires = DateTime.UtcNow + timeout.Value; string token = Guid.NewGuid().ToString(); string insertLockCommand = @"INSERT INTO Lock (ItemID,Token,Shared,Deep,Expires,Owner) VALUES(@ItemID, @Token, @Shared, @Deep, @Expires, @Owner)"; await Context.ExecuteNonQueryAsync( insertLockCommand, "@ItemID", ItemId, "@Token", token, "@Shared", level == LockLevel.Shared, "@Deep", isDeep, "@Expires", expires, "@Owner", owner); await Context.socketService.NotifyLockedAsync(Path); return(new LockResult(token, timeout.Value)); }
public override void Run() { Workspace workspace = GetWorkspaceFromCache(); List <string> paths; ConfirmFilesSpecified(); paths = VerifiedFullPaths(Arguments); LockLevel lockLevel = LockLevelFromString(OptionLock); int rc = workspace.SetLock(paths.ToArray(), lockLevel, OptionRecursive ? RecursionType.Full : RecursionType.None); if (LockLevel.None == lockLevel) { Console.WriteLine("{0} file(s) unlocked.", rc); } else { Console.WriteLine("{0} file(s) locked for {1}.", rc, lockLevel.ToString().ToLower()); } }
internal void ToXml(XmlWriter writer, string element) { writer.WriteStartElement("ChangeRequest"); writer.WriteAttributeString("req", RequestType.ToString()); if (RequestType == RequestType.Lock || LockLevel != LockLevel.None) { writer.WriteAttributeString("lock", LockLevel.ToString()); } if (RequestType == RequestType.Add) { writer.WriteAttributeString("enc", Encoding.ToString()); } writer.WriteAttributeString("type", ItemType.ToString()); //writer.WriteAttributeString("did", DeletionId.ToString()); //writer.WriteAttributeString("targettype", TargetType.ToString()); if (!String.IsNullOrEmpty(Target)) { // convert local path specs from platform paths to tfs paths as needed string fxdTarget; if (VersionControlPath.IsServerItem(Target)) { fxdTarget = Target; } else { fxdTarget = TfsPath.FromPlatformPath(Target); } writer.WriteAttributeString("target", fxdTarget); } this.Item.ToXml(writer, "item"); //this.VersionSpec.ToXml(writer, "vspec"); writer.WriteEndElement(); }
public int SetLock(string[] paths, LockLevel lockLevel, RecursionType recursion) { List <ChangeRequest> changes = new List <ChangeRequest>(); foreach (string path in paths) { ItemType itemType = ItemType.File; if (Directory.Exists(path)) { itemType = ItemType.Folder; } changes.Add(new ChangeRequest(path, RequestType.Lock, itemType, recursion, lockLevel)); } if (changes.Count == 0) { return(0); } GetOperation[] operations = Repository.PendChanges(this, changes.ToArray()); return(operations.Length); }
public List <Failure> PendEdit(List <FilePath> paths, RecursionType recursionType, CheckOutLockLevel checkOutlockLevel) { if (paths.Count == 0) { return(new List <Failure>()); } LockLevel lockLevel = LockLevel.None; if (checkOutlockLevel == CheckOutLockLevel.CheckOut) { lockLevel = LockLevel.CheckOut; } else if (checkOutlockLevel == CheckOutLockLevel.CheckIn) { lockLevel = LockLevel.Checkin; } var changes = paths.Select(p => new ChangeRequest(p, RequestType.Edit, ItemType.File, recursionType, lockLevel, VersionSpec.Latest)).ToList(); List <Failure> failures; var getOperations = this.VersionControlService.PendChanges(this, changes, out failures); ProcessGetOperations(getOperations, ProcessType.Edit); this.RefreshPendingChanges(); return(failures); }
public void LockFiles(List <string> paths, LockLevel lockLevel) { SetLock(paths, ItemType.File, lockLevel, RecursionType.None); }
/// <summary> /// Specifies the lock level. /// </summary> /// <param name="level">The level of the lock.</param> /// <return>The next stage of the definition.</return> ManagementLock.Definition.IWithCreate ManagementLock.Definition.IWithLevel.WithLevel(LockLevel level) { return(this.WithLevel(level)); }
internal static ManagementLockData DeserializeManagementLockData(JsonElement element) { ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; LockLevel level = default; Optional <string> notes = default; Optional <IList <ManagementLockOwner> > owners = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("level")) { level = new LockLevel(property0.Value.GetString()); continue; } if (property0.NameEquals("notes")) { notes = property0.Value.GetString(); continue; } if (property0.NameEquals("owners")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <ManagementLockOwner> array = new List <ManagementLockOwner>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(ManagementLockOwner.DeserializeManagementLockOwner(item)); } owners = array; continue; } } continue; } } return(new ManagementLockData(id, name, type, systemData, level, notes.Value, Optional.ToList(owners))); }
internal ManagementLockData(ResourceIdentifier id, string name, ResourceType type, SystemData systemData, LockLevel level, string notes, IList <ManagementLockOwner> owners) : base(id, name, type, systemData) { Level = level; Notes = notes; Owners = owners; }
/// <summary> /// Specifies the lock level. /// </summary> /// <param name="level">The level of the lock.</param> /// <return>The next stage of the definition.</return> ManagementLock.Update.IUpdate ManagementLock.Update.IWithLevel.WithLevel(LockLevel level) { return(this.WithLevel(level)); }
public int SetLock(string[] paths, LockLevel lockLevel) { return(SetLock(paths, lockLevel, RecursionType.None)); }
public ManagementLockData(LockLevel level) { Level = level; Owners = new ChangeTrackingList <ManagementLockOwner>(); }
public int SetLock(string[] paths, LockLevel lockLevel) { return SetLock(paths, lockLevel, RecursionType.None); }
public int SetLock(string[] paths, LockLevel lockLevel, RecursionType recursion) { List<ChangeRequest> changes = new List<ChangeRequest>(); foreach (string path in paths) { ItemType itemType = ItemType.File; if (Directory.Exists(path)) itemType = ItemType.Folder; changes.Add(new ChangeRequest(path, RequestType.Lock, itemType, recursion, lockLevel)); } if (changes.Count == 0) return 0; GetOperation[] operations = Repository.PendChanges(this, changes.ToArray()); return operations.Length; }
public int SetLock(string path, LockLevel lockLevel, RecursionType recursion) { string[] paths = new string[1]; paths[0] = path; return SetLock(paths, lockLevel, recursion); }
public GetStatus Merge(string sourcePath, string targetPath, VersionSpec versionFrom, VersionSpec versionTo, LockLevel lockLevel, RecursionType recursion, MergeOptionsEx mergeOptions) { return(Workspace.Merge(sourcePath, targetPath, versionFrom, versionTo, lockLevel, recursion, mergeOptions)); }
public int SetLock(string path, LockLevel lockLevel, RecursionType recursion) { string[] paths = new string[1]; paths[0] = path; return(SetLock(paths, lockLevel, recursion)); }
void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) { writer.WriteStartObject(); if (Optional.IsDefined(ManagedBy)) { writer.WritePropertyName("managedBy"); writer.WriteStringValue(ManagedBy); } if (Optional.IsDefined(Sku)) { writer.WritePropertyName("sku"); writer.WriteObjectValue(Sku); } writer.WritePropertyName("tags"); writer.WriteStartObject(); foreach (var item in Tags) { writer.WritePropertyName(item.Key); writer.WriteStringValue(item.Value); } writer.WriteEndObject(); writer.WritePropertyName("location"); writer.WriteStringValue(Location); writer.WritePropertyName("properties"); writer.WriteStartObject(); writer.WritePropertyName("lockLevel"); writer.WriteStringValue(LockLevel.ToSerialString()); if (Optional.IsDefined(DisplayName)) { writer.WritePropertyName("displayName"); writer.WriteStringValue(DisplayName); } if (Optional.IsDefined(IsEnabled)) { writer.WritePropertyName("isEnabled"); writer.WriteBooleanValue(IsEnabled.Value); } if (Optional.IsCollectionDefined(Authorizations)) { writer.WritePropertyName("authorizations"); writer.WriteStartArray(); foreach (var item in Authorizations) { writer.WriteObjectValue(item); } writer.WriteEndArray(); } if (Optional.IsCollectionDefined(Artifacts)) { writer.WritePropertyName("artifacts"); writer.WriteStartArray(); foreach (var item in Artifacts) { writer.WriteObjectValue(item); } writer.WriteEndArray(); } if (Optional.IsDefined(Description)) { writer.WritePropertyName("description"); writer.WriteStringValue(Description); } if (Optional.IsDefined(PackageFileUri)) { writer.WritePropertyName("packageFileUri"); writer.WriteStringValue(PackageFileUri.AbsoluteUri); } if (Optional.IsDefined(MainTemplate)) { writer.WritePropertyName("mainTemplate"); #if NET6_0_OR_GREATER writer.WriteRawValue(MainTemplate); #else JsonSerializer.Serialize(writer, JsonDocument.Parse(MainTemplate.ToString()).RootElement); #endif } if (Optional.IsDefined(CreateUiDefinition)) { writer.WritePropertyName("createUiDefinition"); #if NET6_0_OR_GREATER writer.WriteRawValue(CreateUiDefinition); #else JsonSerializer.Serialize(writer, JsonDocument.Parse(CreateUiDefinition.ToString()).RootElement); #endif } if (Optional.IsDefined(NotificationPolicy)) { writer.WritePropertyName("notificationPolicy"); writer.WriteObjectValue(NotificationPolicy); } if (Optional.IsDefined(LockingPolicy)) { writer.WritePropertyName("lockingPolicy"); writer.WriteObjectValue(LockingPolicy); } if (Optional.IsDefined(DeploymentPolicy)) { writer.WritePropertyName("deploymentPolicy"); writer.WriteObjectValue(DeploymentPolicy); } if (Optional.IsDefined(ManagementPolicy)) { writer.WritePropertyName("managementPolicy"); writer.WriteObjectValue(ManagementPolicy); } if (Optional.IsCollectionDefined(Policies)) { writer.WritePropertyName("policies"); writer.WriteStartArray(); foreach (var item in Policies) { writer.WriteObjectValue(item); } writer.WriteEndArray(); } writer.WriteEndObject(); writer.WriteEndObject(); }
///GENMHASH:27F1B3D7EB2E0F91AF83173279E7FA96:9C9831FCEC83B409757383F3CDF99744 public ManagementLockImpl WithLevel(LockLevel level) { Inner.Level = level.Value; return(this); }
///GENMHASH:CDB75282F99C92A566E39254F670EF12:9FAE75E920E3F72AB54825C7B6562D8A public LockLevel Level() { return(LockLevel.Parse(Inner.Level)); }
public void LockFolders(List <string> paths, LockLevel lockLevel) { SetLock(paths, ItemType.File, lockLevel, RecursionType.Full); }