public static T GetValueOrDefault <T>(this DataRow dataRow, string name) { ArgumentNullException.ThrowIfNull(dataRow, nameof(dataRow)); var value = dataRow[name]; return(ValueReader.GetValueOrDefault <T>(value)); }
public override bool Read() { bool read; if (_command.Cancelled) { read = false; } else { if (_first) { _first = false; var parameters = _command.Parameters; var path = ValueReader.GetValueOrDefault <string>(parameters["path"].Value); var recursionString = ValueReader.GetValueOrDefault <string>(parameters["recursion"].Value); var recursion = recursionString != null ? Enum <RecursionType> .Parse(recursionString) : RecursionType.Full; var workspace = ValueReader.GetValueOrDefault <string>(parameters["workspace"].Value); var user = ValueReader.GetValueOrDefault <string>(parameters["user"].Value); _pendingSets = _command.Connection.VersionControlServer.QueryPendingSets(new[] { path }, recursion, workspace, user); _enumerator = AsEnumerable(_pendingSets).GetEnumerator(); } var moveNext = _enumerator.MoveNext(); if (moveNext) { var pair = _enumerator.Current; var pendingSet = _pendingSets[pair.Item1]; var pendingChange = pendingSet.PendingChanges[pair.Item2]; var values = new object[] { pendingSet.Computer, pendingSet.Name, pendingSet.OwnerName, pendingSet.Type.ToString(), pendingChange.ChangeType.ToString(), pendingChange.CreationDate, pendingChange.FileName, pendingChange.ItemType.ToString(), pendingChange.LockLevelName, pendingChange.ServerItem, pendingChange.LocalItem }; Values = values; read = true; } else { read = false; } } return(read); }
public static T GetValueOrDefault <T>(this DataRow dataRow, int columnIndex) { ArgumentNullException.ThrowIfNull(dataRow, nameof(dataRow)); var value = dataRow[columnIndex]; return(ValueReader.GetValueOrDefault <T>(value)); }
public static T GetValueOrDefault <T>(this DataRow dataRow, string name) { Assert.IsNotNull(dataRow, nameof(dataRow)); var value = dataRow[name]; return(ValueReader.GetValueOrDefault <T>(value)); }
public static T GetValueOrDefault <T>(this DataRow dataRow, int columnIndex) { Assert.IsNotNull(dataRow, nameof(dataRow)); var value = dataRow[columnIndex]; return(ValueReader.GetValueOrDefault <T>(value)); }
public static T ExecuteScalarValueOrDefault <T>(this IDbCommand command) { Assert.IsNotNull(command); var scalar = command.ExecuteScalar(); return(ValueReader.GetValueOrDefault <T>(scalar)); }
public static T ExecuteScalarValueOrDefault <T>(this IDbCommand command) { ArgumentNullException.ThrowIfNull(command); var scalar = command.ExecuteScalar(); return(ValueReader.GetValueOrDefault <T>(scalar)); }
public override bool Read() { bool read; if (_first) { _first = false; var parameters = _command.Parameters; var workspace = ValueReader.GetValueOrDefault <string>(parameters["workspace"].Value); var owner = ValueReader.GetValueOrDefault <string>(parameters["owner"].Value); var computer = ValueReader.GetValueOrDefault <string>(parameters["computer"].Value); _workspaces = _command.Connection.VersionControlServer.QueryWorkspaces(workspace, owner, computer); _enumerator = AsEnumerable(_workspaces).GetEnumerator(); } var moveNext = _enumerator.MoveNext(); if (moveNext) { var pair = _enumerator.Current; var workspace = _workspaces[pair.Item1]; var folderIndex = pair.Item2; var values = new object[] { workspace.Computer, workspace.OwnerName, workspace.Name, workspace.Comment, workspace.DisplayName, null, null, null, null }; if (folderIndex >= 0) { var folder = workspace.Folders[folderIndex]; values[5] = folder.Type.ToString(); values[6] = folder.IsCloaked; values[7] = folder.ServerItem; values[8] = folder.LocalItem; } Values = values; read = true; _index++; } else { read = false; } return(read); }
public override bool Read() { bool read; if (_command.Cancelled) { read = false; } else { if (_first) { _first = false; var parameters = _command.Parameters; var path = parameters["path"].GetValueOrDefault <string>(); var recursionString = ValueReader.GetValueOrDefault <string>(parameters["recursion"].Value); RecursionType recursion; if (recursionString != null) { recursion = (RecursionType)Enum.Parse(typeof(RecursionType), recursionString); } else { recursion = RecursionType.OneLevel; } var itemSet = _command.Connection.VersionControlServer.GetItems(path, recursion); var folders = new List <Item>(); var files = new List <Item>(); foreach (var item in itemSet.Items.Skip(1)) { switch (item.ItemType) { case ItemType.File: files.Add(item); break; case ItemType.Folder: folders.Add(item); break; default: throw new NotImplementedException(); } } _items = folders; _items.AddRange(files); } if (_index < _items.Count) { var item = _items[_index]; var itemEncoding = item.Encoding; string encodingString; if (itemEncoding >= 0) { var encoding = Encoding.GetEncoding(item.Encoding); encodingString = encoding.EncodingName; } else { encodingString = null; } var values = new object[] { item.ServerItem, item.ChangesetId, item.CheckinDate, item.ContentLength, encodingString, item.ItemType.ToString() }; Values = values; read = true; _index++; } else { read = false; } } return(read); }
public static T GetValueOrDefault <T>(this IDataParameter parameter) => ValueReader.GetValueOrDefault <T>(parameter.Value);
public override bool Read() { bool read; if (_command.Cancelled) { read = false; } else { if (_first) { _first = false; var serverPath = (string)_command.Parameters["serverPath"].Value; _item = _command.Connection.VersionControlServer.GetItem(serverPath); _localPath = ValueReader.GetValueOrDefault <string>(_command.Parameters["localPath"].Value); if (_localPath == null) { _localPath = Path.GetTempPath(); _localPath = Path.Combine(_localPath, DateTime.Now.ToString("yyyyMMdd HHmmss.fff")); switch (_item.ItemType) { case ItemType.File: case ItemType.Folder: var name = VersionControlPath.GetFileName(_item.ServerItem); _localPath = Path.Combine(_localPath, name); break; default: throw new NotImplementedException(); } } var queryForm = (QueryForm)DataCommanderApplication.Instance.MainForm.ActiveMdiChild; queryForm.AddInfoMessage(InfoMessageFactory.Create(InfoMessageSeverity.Information, null, $"localPath: {_localPath}")); if (!VersionControlPath.IsValidPath(serverPath)) { throw new ArgumentException($"The parameter serverPath '{serverPath}' is invalid."); } _queue.Enqueue(_item); } if (_queue.Count > 0) { var current = _queue.Dequeue(); var values = new object[4]; values[0] = current.ServerItem; values[1] = current.ItemType; values[2] = current.CheckinDate; values[3] = current.ContentLength; Values = values; var name = VersionControlPath.GetFileName(current.ServerItem); string path; if (_item.ServerItem.Length + 1 <= current.ServerItem.Length) { var secondPath = current.ServerItem.Substring(_item.ServerItem.Length + 1); secondPath = secondPath.Replace(VersionControlPath.Separator, Path.DirectorySeparatorChar); path = Path.Combine(_localPath, secondPath); } else { path = _localPath; } switch (current.ItemType) { case ItemType.File: Log.Write(LogLevel.Trace, "Downloading {0}...", current.ServerItem); current.DownloadFile(path); var checkingDate = current.CheckinDate; var fileInfo = new FileInfo(path); fileInfo.LastWriteTime = checkingDate; fileInfo.Attributes = FileAttributes.ReadOnly; break; case ItemType.Folder: if (!Directory.Exists(path)) { var directoryInfo = Directory.CreateDirectory(path); if (!directoryInfo.Exists) { throw new ArgumentException($"The directory '{path}' does not exist."); } } var itemSet = current.VersionControlServer.GetItems(current.ServerItem, RecursionType.OneLevel); foreach (var childItem in itemSet.Items.Skip(1)) { _queue.Enqueue(childItem); } break; default: throw new NotImplementedException(); } read = true; } else { read = false; } } return(read); }
//private static int Count( IEnumerable enumerable ) //{ // Assert.IsNotNull( enumerable, "enumerable" ); // IEnumerator enumerator = enumerable.GetEnumerator(); // int count = 0; // while (enumerator.MoveNext()) // { // count++; // } // return count; //} public override bool Read() { bool read; if (_first) { _first = false; var parameters = _command.Parameters; _path = (string)parameters["path"].Value; var version = VersionSpec.Latest; var deletionId = 0; var recursion = RecursionType.None; var user = ValueReader.GetValueOrDefault <string>(parameters["user"].Value); VersionSpec versionFrom = null; VersionSpec versionTo = null; var parameter = parameters["maxCount"]; var maxCount = ValueReader.GetValueOrDefault <int>(parameter.Value); if (maxCount == 0) { maxCount = (int)parameter.DefaultValue; } const bool includeChanges = true; var slotMode = ValueReader.GetValueOrDefault <bool>(parameters["slotMode"].Value); _localPath = ValueReader.GetValueOrDefault <string>(parameters["localPath"].Value); if (string.IsNullOrEmpty(_localPath)) { _localPath = Path.GetTempPath(); _localPath += Path.DirectorySeparatorChar; _localPath += $"getversions [{DateTime.Now.ToString("yyyy-MM-dd HH.mm.ss.fff")}]"; Directory.CreateDirectory(_localPath); } var changesets = _command.Connection.VersionControlServer.QueryHistory(_path, version, deletionId, recursion, user, versionFrom, versionTo, maxCount, includeChanges, slotMode); _enumerator = AsEnumerable(changesets).GetEnumerator(); } var moveNext = _enumerator.MoveNext(); if (moveNext) { var pair = _enumerator.Current; var changeset = pair.Item1; var values = new object[] { changeset.ChangesetId, changeset.Committer, changeset.CreationDate, changeset.Comment, null, null }; var changeIndex = pair.Item2; if (changeIndex >= 0) { var change = changeset.Changes[changeIndex]; values[4] = change.ChangeType; values[5] = change.Item.ServerItem; } Values = values; var changesetId = changeset.ChangesetId; var changeType = string.Empty; for (var i = 0; i < changeset.Changes.Length; i++) { var change = changeset.Changes[i]; Trace.WriteLine(change.ChangeType); Trace.WriteLine(change.Item.ServerItem); _path = change.Item.ServerItem; if (i > 0) { changeType += ','; } changeType += change.ChangeType; } var creationDate = changeset.CreationDate; var deletionId = 0; var versionSpec = new ChangesetVersionSpec(changesetId); var fileName = VersionControlPath.GetFileName(_path); var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileName); var extension = VersionControlPath.GetExtension(_path); var localFileName = _localPath + Path.DirectorySeparatorChar + changesetId.ToString().PadLeft(5, '0') + ';' + changeType + ';' + changeset.Committer.Replace('\\', ' ') + extension; _command.Connection.VersionControlServer.DownloadFile(_path, deletionId, versionSpec, localFileName); File.SetLastWriteTime(localFileName, creationDate); File.SetAttributes(localFileName, FileAttributes.ReadOnly); read = true; } else { read = false; } return(read); }
public override bool Read() { bool read; if (_first) { _first = false; var parameters = _command.Parameters; var path = (string)parameters["path"].Value; var version = VersionSpec.Latest; const int deletionId = 0; var parameter = parameters.FirstOrDefault(p => p.ParameterName == "recursion"); RecursionType recursion; if (parameter != null && parameter.Value != null && parameter.Value != DBNull.Value) { recursion = Enum <RecursionType> .Parse((string)parameter.Value); } else { recursion = RecursionType.Full; } parameter = parameters.FirstOrDefault(p => p.ParameterName == "user"); var user = parameter != null?ValueReader.GetValueOrDefault <string>(parameter.Value) : null; VersionSpec versionFrom = null; VersionSpec versionTo = null; parameter = parameters.FirstOrDefault(p => p.ParameterName == "maxCount"); int maxCount; if (parameter != null) { maxCount = ValueReader.GetValueOrDefault <int>(parameter.Value); if (maxCount == 0) { maxCount = (int)parameter.DefaultValue; } } else { maxCount = (int)TfsDataReaderFactory.Dictionary[_command.CommandText].Parameters["maxCount"].DefaultValue; } parameter = parameters.FirstOrDefault(p => p.ParameterName == "includeChanges"); var includeChanges = parameter != null?ValueReader.GetValueOrDefault <bool>(parameters["includeChanges"].Value) : false; var slotMode = ValueReader.GetValueOrDefault <bool>(parameters["slotMode"].Value); var changesets = _command.Connection.VersionControlServer.QueryHistory(path, version, deletionId, recursion, user, versionFrom, versionTo, maxCount, includeChanges, slotMode); _enumerator = AsEnumerable(changesets).GetEnumerator(); } var moveNext = _enumerator.MoveNext(); if (moveNext) { var pair = _enumerator.Current; var changeset = pair.Item1; var values = new object[] { changeset.ChangesetId, changeset.Committer, changeset.CreationDate, changeset.Comment, null, null }; var changeIndex = pair.Item2; if (changeIndex >= 0) { var change = changeset.Changes[changeIndex]; values[4] = change.ChangeType; values[5] = change.Item.ServerItem; } Values = values; _recordCount++; read = true; } else { read = false; } return(read); }
public override bool Read() { bool read; if (_first) { _first = false; var parameters = _command.Parameters; var path = (string)parameters["path"].Value; RecursionType recursion; var parameter = parameters.FirstOrDefault(p => p.ParameterName == "recursion"); if (parameter != null) { var recursionString = ValueReader.GetValueOrDefault <string>(parameter.Value); recursion = Enum <RecursionType> .Parse(recursionString); } else { recursion = RecursionType.Full; } var versionControlServer = _command.Connection.VersionControlServer; var workspaces = versionControlServer.QueryWorkspaces(null, null, Environment.MachineName); Workspace workspace = null; WorkingFolder workingFolder = null; foreach (var currentWorkspace in workspaces) { workingFolder = currentWorkspace.TryGetWorkingFolderForServerItem(path); if (workingFolder != null) { workspace = currentWorkspace; var itemSpec = new ItemSpec(path, recursion); var extendedItems = currentWorkspace.GetExtendedItems(new[] { itemSpec }, DeletedState.Any, ItemType.Any); _items = extendedItems[0]; } } if (workingFolder == null) { throw new Exception($"Workspace not found for '{path}'"); } string name; if (workspace != null) { name = workspace.Name; } else { name = "(not found)"; } var queryForm = (QueryForm)DataCommanderApplication.Instance.MainForm.ActiveMdiChild; queryForm.AddInfoMessage(new InfoMessage(LocalTime.Default.Now, InfoMessageSeverity.Information, null, $"\r\nworkspace.Name: {name}\r\nworkingFolder.LocalItem: {workingFolder.LocalItem}")); } if (_items != null && _index < _items.Length) { var item = _items[_index]; var values = new object[] { item.SourceServerItem, item.ChangeType.ToString(), item.LockOwner, item.LockStatus.ToString(), item.IsLatest, item.HasOtherPendingChange, item.VersionLatest, item.VersionLocal }; Values = values; read = true; _index++; } else { read = false; } return(read); }