Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
 }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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;
            }
        }
Exemplo n.º 7
0
        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;
        }