internal void NotifyRecordAdded() { var data = Repository.Accessor.QueryReflog.Invoke( new QueryReflogParameters(Reference.FullName) { MaxCount = 1, }); if (data.Count != 1) { return; } var record = data[0]; lock (SyncRoot) { if (_reflog.Count != 0) { if (record.Revision.SHA1 == _reflog[0].Revision.Hash) { return; } } var item = ObjectFactories.CreateReflogRecord(this, record); _reflog.Insert(0, item); for (int i = 1; i < _reflog.Count; ++i) { _reflog[i].Index = i; } InvokeRecordAdded(item); } }
public void Refresh() { var reflog = Repository.Accessor.QueryReflog.Invoke( new QueryReflogParameters(Reference.FullName)); lock (SyncRoot) { if (reflog.Count < _reflog.Count) { for (int i = _reflog.Count - 1; i >= reflog.Count; --i) { _reflog[i].MarkAsDeleted(); _reflog.RemoveAt(i); } } for (int i = 0; i < _reflog.Count; ++i) { ObjectFactories.UpdateReflogRecord(_reflog[i], reflog[i]); } for (int i = _reflog.Count; i < reflog.Count; ++i) { var reflogRecord = ObjectFactories.CreateReflogRecord(this, reflog[i]); _reflog.Add(reflogRecord); InvokeRecordAdded(reflogRecord); } } }