private String IdToName(Board board, EndType endtype, BoardLink link, int id) { String chipName = String.Empty; switch (endtype) { case EndType.PPC: chipName = board.PPCList[id].Name; break; case EndType.FPGA: chipName = board.FPGAList[id].Name; break; case EndType.ZYNQ: chipName = board.ZYNQList[id].Name; break; case EndType.SW: chipName = board.SwitchList[id].Type; break; case EndType.VPX: chipName = Enum.GetName(typeof(LinkType), link.LinkType); break; default: break; } return(chipName); }
private void AddLinkToList(Board board, ListView lv, LinkType linkType) { IEnumerable <ListViewItem> LinkItems = lv.Items.Cast <ListViewItem>(); foreach (var item in LinkItems) { BoardLink link = new BoardLink(); link.LinkType = linkType; //端1 link.FirstEndType = ChooseEndType(item.SubItems[1].Text); link.FirstEndId = int.Parse(item.SubItems[2].Text); link.FirstEndPositionList.Add(int.Parse(item.SubItems[3].Text)); //端2 link.SecondEndType = ChooseEndType(item.SubItems[4].Text); link.SecondEndId = int.Parse(item.SubItems[5].Text); link.SecondEndPositionList.Add(int.Parse(item.SubItems[6].Text)); board.LinkList.Add(link); } }
/// <summary> /// Конструктор. /// </summary> /// <param name="data">Данные.</param> /// <param name="engine">Движок.</param> public MakabaPageBannerViewModel(MakabaEntityTree data, string engine) { if (engine == null) throw new ArgumentNullException(nameof(engine)); this.data = data; if (data?.BoardBannerImage != null) { BannerImageLink = new MediaLink() { Engine = engine, IsAbsolute = false, RelativeUri = data.BoardBannerImage }; } if (data?.BoardBannerLink != null) { BannerLink = new BoardLink() { Engine = engine, Board = data.BoardBannerLink }; } AppHelpers.DispatchAction(LoadBannerName); }
private void InitLinkFromBoard(Board board, BoardLink link, ListView lv, ref int serialNum) { string portNum = string.Empty; serialNum++; lv.BeginUpdate(); ListViewItem lvi = new ListViewItem(); lvi.Text = serialNum.ToString(); lvi.SubItems.Add(Enum.GetName(typeof(EndType), link.FirstEndType)); lvi.SubItems.Add(IdToName(board, link.FirstEndType, link, link.FirstEndId)); if (link.FirstEndPositionList.Count == 1) { lvi.SubItems.Add(link.FirstEndPositionList[0].ToString()); } else { portNum = string.Join(",", link.FirstEndPositionList.ToArray().Select(p => p.ToString()).ToArray()); lvi.SubItems.Add(portNum); } lvi.SubItems.Add(Enum.GetName(typeof(EndType), link.SecondEndType)); lvi.SubItems.Add(IdToName(board, link.SecondEndType, link, link.SecondEndId)); if (link.SecondEndPositionList.Count == 1) { lvi.SubItems.Add(link.SecondEndPositionList[0].ToString()); } else { portNum = string.Join(",", link.SecondEndPositionList.ToArray().Select(p => p.ToString()).ToArray()); lvi.SubItems.Add(portNum); } lv.Items.Add(lvi); lv.EndUpdate(); }
public override ModelBase CreateObjectByName(string objectName) { Board retBoard = new Board(); string xmlPath = string.Format(@"{0}\{1}.xml", PathManager.GetBoardPath(), objectName); if (!File.Exists(xmlPath)) { MessageBox.Show("CreateObject_Board:没有该Board对应的XML文件!"); return(null); } XDocument xd = XDocument.Load(xmlPath); //根元素的Attribute XElement rt = xd.Element("Board"); retBoard.Name = rt.Attribute("Name").Value; retBoard.Type = rt.Attribute("Type").Value; retBoard.Version = rt.Attribute("Version").Value; //找到Devices元素下的PPCs元素,添加PPC集合到类 XElement ppcs = rt.Element("Devices").Element("PPCs"); foreach (var element in ppcs.Elements()) { retBoard.PPCList.Add(ModelFactory <PPC> .CreateByName(element.Attribute("Name").Value)); } //找到Devices元素下的FPGAs元素,添加FPGA集合到类 XElement fpgas = rt.Element("Devices").Element("FPGAs"); foreach (var element in fpgas.Elements()) { retBoard.FPGAList.Add(ModelFactory <FPGA> .CreateByName(element.Attribute("Name").Value)); } //找到Devices元素下的ZYNQs元素,添加ZYNQ集合到类 XElement zynqs = rt.Element("Devices").Element("ZYNQs"); foreach (var element in zynqs.Elements()) { retBoard.ZYNQList.Add(ModelFactory <ZYNQ> .CreateByName(element.Attribute("Name").Value)); } //找到Devices元素下的Sws元素,添加Sw集合到类 XElement sws = rt.Element("Devices").Element("Sws"); foreach (var element in sws.Elements()) { var category = (SwitchCategory)Enum.Parse(typeof(SwitchCategory), element.Attribute("Category").Value); var sw = new SwitchDevice(category, element.Attribute("Type").Value); retBoard.SwitchList.Add(sw); } //找到Links元素,添加Link集合到类 XElement links = rt.Element("Links"); foreach (var element in links.Elements()) { var link = new BoardLink(); link.LinkType = (LinkType)Enum.Parse(typeof(LinkType), element.Attribute("Type").Value); link.FirstEndType = (EndType)Enum.Parse(typeof(EndType), element.Attribute("FirstEndType").Value); link.FirstEndId = int.Parse(element.Attribute("FirstEndId").Value); link.SecondEndType = (EndType)Enum.Parse(typeof(EndType), element.Attribute("SecondEndType").Value); link.SecondEndId = int.Parse(element.Attribute("SecondEndId").Value); foreach (var fPosition in element.Element("FirstEndPositionList").Elements()) { link.FirstEndPositionList.Add(int.Parse(fPosition.Value)); } foreach (var sPosition in element.Element("SecondEndPositionList").Elements()) { link.SecondEndPositionList.Add(int.Parse(sPosition.Value)); } retBoard.LinkList.Add(link); } return(retBoard); }
private void ConstructLinksForBasicLoad(GenericPostStoreEntityType genEntityType, string boardId, int?parentSeqId, int seqId, out ILink link, out ILink parentLink) { switch (genEntityType) { case GenericPostStoreEntityType.Post: link = new PostLink() { Engine = EngineId, Board = boardId, OpPostNum = parentSeqId ?? 0, PostNum = seqId }; parentLink = new ThreadLink() { Engine = EngineId, Board = boardId, OpPostNum = parentSeqId ?? 0 }; break; case GenericPostStoreEntityType.Catalog: link = new CatalogLink() { Engine = EngineId, Board = boardId, SortMode = (BoardCatalogSort)seqId }; parentLink = new BoardLink() { Engine = EngineId, Board = boardId }; break; case GenericPostStoreEntityType.Thread: link = new ThreadLink() { Engine = EngineId, Board = boardId, OpPostNum = seqId }; parentLink = new BoardLink() { Engine = EngineId, Board = boardId }; break; case GenericPostStoreEntityType.BoardPage: link = new BoardPageLink() { Engine = EngineId, Board = boardId, Page = seqId }; parentLink = new RootLink() { Engine = EngineId, }; break; default: link = null; parentLink = new RootLink() { Engine = EngineId, }; break; } }
protected override async void OnActivate(object parameter = null) { base.OnActivate(parameter); string id; var boardInfo = parameter as BriefBoardInfo; if (!string.IsNullOrWhiteSpace(boardInfo?.Id)) { id = boardInfo.Id; } else if (parameter is string) { id = (string) parameter; } else { return; } if (CurrentPage != null && CurrentPage.BoardId == id) return; IsInFavorites = FavoriteBoardsService.Items.Any(b => b.Id.EqualsNc(id)); DisplayName = boardInfo?.Name ?? $"/{id}/"; Link = new BoardLink(id); try { await Load(0); } catch (Exception) { IsError = true; LoadingStatus = Translate("Error"); } IsLoading = false; }