private void AddKey(KeyViewModel key) { if (!this.Keys.Contains(key)) { this.Keys.Add(key); } }
private async void LoadKeysAsync(bool needClear) { if (needClear) { this._offSet = 0; this.Keys.Clear(); } var keys = this.Connection.SelfServer().Keys(this._dbIdx, pattern: this.Filter, pageSize: 50, pageOffset: this._offSet); this._offSet += keys.Count(); if (keys.Count() == 0) { return; } var lst = await Task.Run(() => { List <KeyViewModel> result = new List <KeyViewModel>(); foreach (var key in keys) { var keyType = this.Connection.GetDatabase(this._dbIdx).KeyType(key); var vm = KeyViewModel.Create(keyType, key, this); if (vm != null) { result.Add(vm); } } return(result); }); lst.ForEach(x => this.AddKey(x)); this.NotifyOfPropertyChange(() => this.Name); }
void IHandle <KeyNodeEventArgs> .Handle(KeyNodeEventArgs arg) { if (arg.Type == KeyNodeEventType.Select) { this.Content = arg.Data; // this.Title = string.Format("{0}::db{1}::{2}", arg.Data.Parent.RedisClient.RedisConfig.IP, arg.Data.Parent.Index, arg.Data.KeyName); this.IsVisible = true; } else if (arg.Type == KeyNodeEventType.Delete) { if (this.Content != null && this.Content.Equals(arg.Data)) { this.Content = null; this.IsVisible = false; } } }
public KeyNodeEventArgs(KeyViewModel keyValue, KeyNodeEventType type) { this.Data = keyValue; this.Type = type; }