private void GetNextItem(object o) { if (doneRemote) { return; } string item = o as string; if (item.StartsWith("-")) { var errItem = item.Substring(1); var err = errItem.Split('|'); RecordEvent(new ErrorItemData { Id = Guid.Parse(err[0]), Path = err[1] }, "Error", ""); } else { TimeSpan tmp = sw.Elapsed; IItemData idata = GetResources.GetRemoteItemData(_args, item); _installerQueue.Enqueue(idata); if (_args.children) { QueueChildren(item); } } }
private void Init() { using (new SecurityDisabler()) { IItemData idata = GetResources.GetRemoteItemData(_args, _args.id); Item parent = db.GetItem(new ID(idata.ParentId)); IItemData tmpData = idata; root = db.GetItem(new ID(idata.Id)); if (_args.mirror && root != null) { Stack <Item> items = new Stack <Item>(); items.Push(root); while (items.Any()) { var curItem = items.Pop(); allowedItems.Add(curItem.ID.Guid); foreach (Item child in curItem.Children) { items.Push(child); } } } if (_args.pullParent && parent == null) { Stack <IItemData> path = new Stack <IItemData>(); var tmp = _args.children; _args.children = false; while (parent == null) { parent = db.GetItem(new ID(tmpData.ParentId)); path.Push(tmpData); _args.id = tmpData.ParentId.ToString(); tmpData = GetResources.GetRemoteItemData(_args, tmpData.ParentId.ToString()); } while (path.Any()) { var cur = path.Pop(); InstallItem(cur); } _args.children = tmp; } RootNode = new ContentTreeNode(parent.Database.GetItem(new ID(idata.Id))); if (RootNode.Icon == "") { RootNode = new ContentTreeNode(parent.Database.GetItem(new ID(idata.TemplateId))) { Id = new ID(idata.Id).ToString(), DisplayName = idata.Name }; } RootNode.Server = _args.server; } }