public async Task <ActionResult <ChainInfoView> > Get(int id) { Chain chain = await _db.Chains .Include(x => x.QuestChains) .ThenInclude(x => x.Quest) .FirstOrDefaultAsync(x => x.Id == id); if (chain == null) { return(NotFound()); } var chainInfo = new ChainInfoView { Chain = new Chain { Description = chain.Description, Id = chain.Id, Name = chain.Name, }, QuestChains = chain.QuestChains.Select(x => new QuestChain { ChainId = x.ChainId, Id = x.Id, QuestId = x.QuestId, StepNumber = x.StepNumber, Quest = new Quest { Id = x.QuestId, Name = x.Quest.Name, }, }).ToList(), }; return(new ObjectResult(chainInfo)); }
protected void SetupPage() { AddTitleRow("Title"); AddHeaderRow("Service"); #pragma warning disable RECS0021 // Warns about calls to virtual member functions occuring in the constructor PreAddRows(); #pragma warning restore RECS0021 // Warns about calls to virtual member functions occuring in the constructor _chainIdText = AddEntryRow(null, "ChainInfoBasePage.ChainId"); _chainIdText.SetDetailViewIcon(Icons.Link); if (_chainId > 0) { _chainIdText.Edit.Text = _chainId.ToString(); _chainIdText.Edit.IsEnabled = false; } _chainView = new ChainInfoView(); AddViewRow(_chainView); _link = AddLinkRow("ChainInfoBasePage.ChainLink", ""); _link.IsEnabled = false; _account = AddButtonRow("ChainInfoBasePage.AccountProfile", Account); _account.SetDetailViewIcon(Icons.Coins); _account.IsEnabled = false; #pragma warning disable RECS0021 // Warns about calls to virtual member functions occuring in the constructor PostAddRows(); #pragma warning restore RECS0021 // Warns about calls to virtual member functions occuring in the constructor AddFooterRow(); Status.Add(_chainIdText.Edit, T("ChainInfoBasePage.ChainIdStatus"), (sv, edit, newText, oldText) => { var success = false; if (StatusValidators.PositiveNumberValidator(sv, edit, newText, oldText)) { if (int.TryParse(newText, out var id)) { if (_chainInfo != null && _chainInfo.ChainId == id) { success = true; } else { _ = QueryChainInfo(id); } } } else { _queryChainId = -1; _chainInfo = null; QueryDone(-1, null); UIApp.Run(() => QueryDoneAsync(-1, null)); } _chainView.Update(_chainInfo); if (_chainInfo != null) { if (!string.IsNullOrEmpty(_chainInfo.Website)) { _link.IsEnabled = true; _link.Tag = _chainInfo.Website; } _account.IsEnabled = true; } else { _link.IsEnabled = false; _account.IsEnabled = false; } ChainInfoChanged(); return(success); }); }