private void FillListView(string serverPath)
{
_listStore.Clear();
var versionControl = projectCollection.GetService<RepositoryService>();
var itemSet = versionControl.QueryItemsExtended(this._currentWorkspace, new ItemSpec(serverPath, RecursionType.OneLevel), DeletedState.NonDeleted, ItemType.Any);
foreach (var item in itemSet.Skip(1).OrderBy(i => i.ItemType).ThenBy(i => i.TargetServerItem))
{
var row = _listStore.Append();
_listStore.SetValue(row, 0, item);
_listStore.SetValue(row, 1, GetItemImage(item.ItemType));
_listStore.SetValue(row, 2, item.ServerPath.ItemName);
if (this._currentWorkspace != null)
{
if (item.ChangeType != ChangeType.None && !item.HasOtherPendingChange)
{
_listStore.SetValue(row, 3, item.ChangeType.ToString());
_listStore.SetValue(row, 4, this._currentWorkspace.OwnerName);
}
if (item.HasOtherPendingChange)
{
var remoteChanges = this._currentWorkspace.GetPendingSets(item.SourceServerItem, RecursionType.None);
List<string> changeNames = new List<string>();
List<string> userNames = new List<string>();
foreach (var remoteChange in remoteChanges)
{
var pChange = remoteChange.PendingChanges.FirstOrDefault();
if (pChange == null)
continue;
changeNames.Add(pChange.ChangeType.ToString());
userNames.Add(remoteChange.Owner);
}
_listStore.SetValue(row, 3, string.Join(", ", changeNames));
_listStore.SetValue(row, 4, string.Join(", ", userNames));
}
}
if (!IsMapped(item.ServerPath))
{
_listStore.SetValue(row, 5, "Not mapped");
}
else
{
if (!item.IsInWorkspace)
{
_listStore.SetValue(row, 5, "Not downloaded");
}
else
{
_listStore.SetValue(row, 5, item.IsLatest ? "Yes" : "No");
}
}
_listStore.SetValue(row, 6, item.CheckinDate.ToString("yyyy-MM-dd HH:mm"));
}
}