public static ObservableCollectionEx <IItemChanged> ToItemsChanged(this SvnChangeItemCollection collection, SvnRevision latestRevision, Uri repoPath, IMediatorService mediator, int secondsToTimeout, Action <SvnRevision, Uri, SvnChangeItem, int> onViewChangeDetails) { var result = new List <IItemChanged>(); collection.ToList().ForEach(p => { var isModified = p.Action == SvnChangeAction.Modify; var itemChanged = new ItemChanged() { FilePath = p.RepositoryPath.ToString(), ChangeType = Enum.GetName(typeof(SvnChangeAction), p.Action)[0].ToString(CultureInfo.InvariantCulture), HasBeenModified = isModified, OnViewChanges = new DelegateCommand(ignore => { if (isModified) { onViewChangeDetails(latestRevision, repoPath, p, secondsToTimeout); } }) // TODO: implement //HasLocalEdits = }; result.Add(itemChanged); }); return(new ObservableCollectionEx <IItemChanged>(result)); }
private static void GetRevision(Collection <SvnLogEventArgs> logs, long revision) { Console.Write("#### 检测SVNlog数据 ####\n\n"); int count = logs.Count; for (int i = 0; i < count; i++) { SvnLogEventArgs args = logs[i]; if (revision != 0 && args.Revision == revision) { if (i == 0) { Console.Write("#### SVNRevision Num未发生改变 ####\n\n"); ConsoleTool.Close(); return; } break; } if (i == 0) { Patch = args.Revision; } SvnChangeItemCollection itemCollection = args.ChangedPaths; foreach (SvnChangeItem item in itemCollection) { string path = item.Path; if (CheckChangePath(path) && CheckSuffix(path)) { if (Changes.Contains(path) == true) { continue; } Changes.Add(Path.GetFileName(path)); } else { continue; } } } Console.Write(string.Format("#### 最新Revision Num : {0} ####\n\n", Patch)); foreach (string path in Changes) { Console.Write(string.Format("====>更新文件:{0}\n", path)); } Console.Write("########################################\n"); }
public static string WriteString(SvnChangeItemCollection paths) { return StringUtils.Write(paths, p => p.Path); }