Exemplo n.º 1
0
        public StoreBoxViewModel(TreeViewModelBase parent, StoreBoxInfo model)
            : base(parent)
        {
            this.Model = model;

            this.Name          = model.ToReactivePropertyAsSynchronized(n => n.Name).AddTo(_disposable);
            this.IsSelected    = new ReactiveProperty <bool>().AddTo(_disposable);
            this.IsExpanded    = model.ToReactivePropertyAsSynchronized(n => n.IsExpanded).AddTo(_disposable);
            this.Seeds         = model.Seeds.ToReadOnlyReactiveCollection(n => n).AddTo(_disposable);
            this.BoxViewModels = model.BoxInfos.ToReadOnlyReactiveCollection(n => new StoreBoxViewModel(this, n)).AddTo(_disposable);
        }
Exemplo n.º 2
0
        private void Download(string basePath, StoreBoxInfo rootBoxinfo)
        {
            foreach (var seed in rootBoxinfo.Seeds)
            {
                SettingsManager.Instance.DownloadItemInfos.Add(new DownloadItemInfo(seed, Path.Combine(basePath, rootBoxinfo.Name, seed.Name)));
            }

            foreach (var boxInfo in rootBoxinfo.BoxInfos)
            {
                this.Download(Path.Combine(basePath, rootBoxinfo.Name.Trim(' ')), boxInfo);
            }
        }
Exemplo n.º 3
0
        private StoreBoxInfo CreateStoreBoxInfo(Box targetBox, StoreBoxInfo oldBoxInfo)
        {
            var info = new StoreBoxInfo();

            info.IsExpanded = oldBoxInfo?.IsExpanded ?? false;
            info.Name       = targetBox.Name;
            info.Seeds.AddRange(targetBox.Seeds);

            foreach (var tempBox in targetBox.Boxes)
            {
                info.BoxInfos.Add(CreateStoreBoxInfo(tempBox, oldBoxInfo?.BoxInfos.FirstOrDefault(n => n.Name == tempBox.Name)));
            }

            return(info);
        }