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); }
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); } }
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); }