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;
         }
     }
 }
示例#4
0
 public KeyNodeEventArgs(KeyViewModel keyValue, KeyNodeEventType type)
 {
     this.Data = keyValue;
     this.Type = type;
 }