public ActionResult <JsonResponse> DeleteNavLinkMethod(int admin_id, string admin_token, int site_id, int link_id) { if (authenticator.VerifyAdminForLeaf(admin_id, site_id, admin_token)) { List <NavLink> found_nav_links; try{ found_nav_links = dbQuery.QueryNavBarLinksBySiteId(site_id); }catch { return(StatusCode(400, $"Link ID {link_id} not found on site id {site_id}'s Nav Bar")); } NavLink found_link = null; foreach (NavLink link in found_nav_links) { if (link.link_id == link_id) { found_link = link; } } if (found_link == null) { return(StatusCode(400, $"Link ID {link_id} not found on site id {site_id}'s Nav Bar")); } _dataLimiter.RemoveNavLinkFromDataPlan(found_link, admin_id); dbQuery.DeleteNavLinkById(link_id); return(new JsonSuccess($"NavLink Deleted for link id: {link_id}")); } else { JsonFailure f = new JsonFailure("Invalid credentials."); return(StatusCode(400, f)); } }
public void RemoveNavLinkFromDataPlan(NavLink nav_link, int admin_id) //not a component! { DataPlan admin_data_plan = _dbQuery.GetDataPlanByAdminId(admin_id); admin_data_plan.total_bytes -= nav_link.FindCharLength(); _dbQuery.UpdateDataPlan(admin_data_plan); }
public async Task <IActionResult> Edit(int id, [Bind("NavLinkId,ParentLinkID,PageId,NavLinkId,Position,Title")] NavLink navLink) { if (id != navLink.NavLinkId) { return(NotFound()); } if (ModelState.IsValid) { try { await Task.Run(() => _repo.Update(navLink)); } catch (DbUpdateConcurrencyException) { if (!NavLinkExists(navLink.NavLinkId)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index")); } ViewData["PageId"] = new SelectList(_prepo.GetAll(), "PageId", "PageId", navLink.PageId); ViewData["ParentLinks"] = GetParentsLinks(navLink.PageId); return(View(navLink)); }
private void initializePosition() { this.CurrentQuad = this.game.Get <NavMesh>().NavQuads.RandomElement(); this.civilian.SetPosition(CurrentQuad.RandomPointInside()); this.goalLink = this.CurrentQuad.Links.RandomElement(); this.updateGoalPoint(); }
private void NavLinksList_ItemClick(object sender, ItemClickEventArgs e) { NavLink item = (NavLink)e.ClickedItem; MainFrame.Navigate(item.PageName); tblTitle.Text = item.Label; NavigationPane.IsPaneOpen = false; }
public static MvcHtmlString UxNavLink(this HtmlHelper helper, string text, string url, IconType iconType = null, IconPosition iconPosition = null, bool active = false, bool disabled = false, bool iconPullRight = false, DataToggle dataToggle = DataToggle.None, string badgeText = null, bool badgePullRight = false, string clientId = null) { var navLink = new NavLink(text, url, iconType, iconPosition, active, disabled, iconPullRight, dataToggle, clientId); if (badgeText != null) navLink.SetBadge(new Badge(badgeText, badgePullRight)); return helper.RenderUxControl(navLink); }
public void SetGoalLink(NavLink link) { if (link.From != this.CurrentQuad) { throw new Exception("Tried to set navigate to wrong link"); } this.goalLink = link; this.updateGoalPoint(); }
/// <summary> /// 获得 NavLink 组件渲染内容 /// </summary> /// <param name="item"></param> /// <returns></returns> protected RenderFragment Render(NavLink item) => new RenderFragment(builder => { var index = 0; builder.OpenComponent <NavLink>(index++); builder.AddMultipleAttributes(index++, item.AdditionalAttributes); builder.AddAttribute(index++, nameof(NavLink.ActiveClass), item.ActiveClass); builder.AddAttribute(index++, nameof(NavLink.Match), item.Match); builder.AddAttribute(index++, nameof(NavLink.ChildContent), item.ChildContent); builder.CloseComponent(); });
// Private Methods (4) private void GetAssociatedItems(List <NavLink> links) { Guid parentWebId = Guid.Empty; Guid parentListId = Guid.Empty; int parentItemId = 0; ParentWebListItemId(ref parentWebId, ref parentListId, ref parentItemId); if (parentWebId == Guid.Empty || parentListId == Guid.Empty || parentItemId <= 0) { return; } links.Add(new NavLink { Title = @"Associated Items<span id=""epm-nav-asoitems-info"" class=""icon-info-2"" style=""padding-left: 8px;"" title=""Since this Workspace was created from an Item in the parent site, you have access to these associated parent Lists and Libraries."" data-delay=""100"" data-placement=""right"" data-toggle=""tooltip""></span>", Url = "Header" }); using (var spSite = new SPSite(SiteId, GetUserToken())) { using (SPWeb spWeb = spSite.OpenWeb(parentWebId)) { SPList spList = null; try { spList = spWeb.Lists.GetList(parentListId, false); } catch { } if (spList == null) { return; } NavLink navLink = GetLink(spList, parentItemId); if (navLink != null) { links.Add(navLink); links.AddRange(from object associatedList in ListCommands.GetAssociatedLists(spList) where associatedList != null select(AssociatedListInfo) associatedList into listInfo select GetLink(listInfo, spList, navLink.Title) into link where link != null select link); } } } }
public async Task <IActionResult> Create([Bind("NavLinkId,ParentLinkID,PageId,NavLinkId,Position,Title")] NavLink navLink) { if (ModelState.IsValid) { await Task.Run(() => _repo.Add(navLink)); return(RedirectToAction("Index")); } ViewData["PageId"] = new SelectList(_prepo.GetAll(), "PageId", "PageId", navLink.PageId); ViewData["ParentLinks"] = ViewData["ParentLinks"] = GetParentsLinks(navLink.PageId); return(View(navLink)); }
// Private Methods (1) private IEnumerable <INavObject> GetSettings() { return((IEnumerable <INavObject>)CacheStore.Current.Get(_key, new CacheStoreCategory(Web).Navigation, () => { var links = new List <NavLink>(); using (var spSite = new SPSite(SiteId, GetUserToken())) { using (SPWeb spWeb = spSite.OpenWeb(WebId)) { SPList settingsList = spWeb.Lists.TryGetList("EPM Live Settings"); if (settingsList != null) { SPListItemCollectionPosition position; DataTable settings = settingsList.GetDataTable(new SPQuery { Query = QUERY, ViewFields = VIEW_FIELDS }, SPListGetDataTableOptions.None, out position); string webUrl = spWeb.Url; var catLinks = new SortedDictionary <string, List <NavLink> >(); foreach (DataRow row in settings.Rows) { string category = (S(row["Category"]).Split(')')[1]).Trim(); var link = new NavLink { Title = S(row["Title"]), Url = webUrl + S(row["URL"]) + "?Source={page}&BackTo={page}", Category = category }; if (!catLinks.ContainsKey(category)) { catLinks.Add(category, new List <NavLink>()); } catLinks[category].Add(link); } links.AddRange(catLinks.SelectMany(p => p.Value.OrderBy(l => l.Title))); } } } return links; }, true).Value); }
/// <summary> /// When a nav item is clicked, navigate to it /// </summary> /// <param name="sender">The event sender</param> /// <param name="e">ItemClickEventArgs</param> private void NavLinksList_ItemClick(object sender, ItemClickEventArgs e) { var item = e.ClickedItem as NavLink; if (item == null || item == _lastNavItem) { return; } var clickedView = item.PageName?.ToString() ?? "SettingsView"; if (!NavigateToView(clickedView)) { return; } _lastNavItem = item; }
private static NavLink MakeLink(string text, string controller, string action, string selected, string language) { var link = new NavLink() { Text = text, RouteValues = new RouteValueDictionary(new { controller = controller, action = action, selected = controller, lang = language }), IsSelected = (selected == controller) }; return(link); }
public JsonResult AddNavLink(NavlinkAddOrUpdateViewModel model) { var message = ""; var success = true; try { if (success) { var navLink = _navLinkService.GetById(model.NavLinkId); if (navLink == null) { navLink = new NavLink(); } navLink.Name = model.Name; navLink.Controller = model.Controller; navLink.Action = model.Action; navLink.IconClass = model.IconClass; navLink.IsParent = model.IsParent; _navLinkService.InsertOrUpdate(navLink, CurrentUser.AppUserId); _unitOfWork.SaveChanges(); success = true; message = "Navlink has been successfully saved!"; } } catch (DbUpdateException dbEx) { message = "Failed to add navlink!"; success = false; } catch (Exception ex) { message = ex.Message; success = false; } return(Json(new { success = success, message = message }, JsonRequestBehavior.AllowGet)); }
private IEnumerable <NavLink> GetItems() { var ret = new List <NavLink>(); var link = new NavLink(); link.SetParametersAsync(ParameterView.FromDictionary(new Dictionary <string, object>() { ["href"] = "http://ba.sdgxgz.com", ["class"] = "nav-link nav-item", ["target"] = "_blank", ["ChildContent"] = new RenderFragment(builder => { builder.AddContent(0, "BootstrapAdmin"); }) })); ret.Add(link); return(ret); }
public DataPlan ValidateNavLinkAdditionForDataPlan(int admin_id, NewNavLinkDto new_nav_link) //Nav Links are not a SiteComponent { NavLink nav_link = new NavLink(); nav_link.label = new_nav_link.label; nav_link.url = new_nav_link.url; DataPlan data_plan = _dbQuery.GetDataPlanByAdminId(admin_id); data_plan.total_bytes += nav_link.FindCharLength(); if (data_plan.total_bytes <= data_plan.max_bytes) { return(data_plan); } else { throw new System.ArgumentException($"New {nav_link.GetType().Name.ToString()} exceeds data plan limits. Reduce data use by deleting sites and or components."); } }
// Update is called once per frame void Update() { // Render room graph if (rooms != null) { foreach (Room r1 in rooms) { foreach (Room r2 in r1.edges) { Debug.DrawLine(r1.Center3(), r2.Center3()); } } } // render debug navlinks if (tgs != null && tgs.tileGraph != null) { foreach (KeyValuePair <string, Tile> tileGraphNodeKVP in tgs.tileGraph) { Tile thisTile = tileGraphNodeKVP.Value; string[] source = tileGraphNodeKVP.Key.Split(':'); Vector2 sourcenav = new Vector2(float.Parse(source [0]), float.Parse(source [1])); if (thisTile.navlinks != null) { foreach (KeyValuePair <string, NavLink> navlinkKVP in thisTile.navlinks) { NavLink thisNavLink = navlinkKVP.Value; if (thisNavLink.open == true) { string[] target = navlinkKVP.Key.Split(':'); Vector2 targetnav = new Vector2(float.Parse(target [0]), float.Parse(target [1])); Debug.DrawLine(new Vector3(sourcenav.x + 0.5f, 0, sourcenav.y + 0.5f), new Vector3(targetnav.x + 0.5f, 0, targetnav.y + 0.5f), Color.green, 0.0f, false); } } } } } }
private IEnumerable <NavLink> GetItems() { var ret = new List <NavLink>(); var link = new NavLink(); var parameters = new Dictionary <string, object?>() { ["href"] = WebsiteOption.CurrentValue.AdminUrl, ["class"] = "nav-link nav-item", ["target"] = "_blank", ["ChildContent"] = new RenderFragment(builder => { builder.AddContent(0, "BootstrapAdmin"); }) }; // TODO: NET6.0 移除 ! 断言 link.SetParametersAsync(ParameterView.FromDictionary(parameters !)); ret.Add(link); return(ret); }
private void NavLinksList_ItemClick(object sender, ItemClickEventArgs e) { NavLink navLink = e.ClickedItem as NavLink; if (navLink.Action != null) { navLink.Action(); return; } if (navLink.DestPage != null) { Splitter.IsPaneOpen = false; if (navLink.DestPage != null && navLink.DestPage != this.ShellFrame.CurrentSourcePageType) { this.ShellFrame.Navigate(navLink.DestPage, navLink.Arguments); } } }
private string CalculateLinkId(NavLink navLink, string providerName) { const string CACHE_KEY = "NavLink_ID_Dict"; string linkKey = providerName + "|" + navLink.Order + "|" + navLink.Url; var dict = (Dictionary <string, string>) CacheStore.Current.Get(CACHE_KEY, new CacheStoreCategory(_spWeb).Navigation, () => new Dictionary <string, string>()).Value; if (dict.ContainsKey(linkKey)) { return(dict[linkKey]); } string linkId = linkKey.Md5(); dict.Add(linkKey, linkId); CacheStore.Current.Set(CACHE_KEY, dict, new CacheStoreCategory(_spWeb).Navigation); return(linkId); }
private void onReachedNavLink(NavLink link) { var oldQuad = link.From; var newQuad = link.To; if (newQuad.Links.Count > 1) { while (true) { var newLink = newQuad.Links.RandomElement(); if (newLink.To != oldQuad) { this.context.Navigator.SetGoalLink(newLink); break; } } } else { throw new Exception("Could not find outgoing link"); } }
private string GetLinkId(NavLink navLink, string providerName) { return(navLink.Id ?? CalculateLinkId(navLink, providerName)); }
public string GetLinks() { try { var nodes = new XElement("Nodes"); foreach (var provider in _linkProviders) { INavLinkProvider linkProvider = provider.Value; if (linkProvider == null) { continue; } string providerName = provider.Key; var node = new XElement(providerName); var links = new SortedDictionary <int, NavLink>(); try { GetNavigationLinks(linkProvider, links); } catch { try { Thread.Sleep(1000); ((NavLinkProvider)linkProvider).ClearCache(); GetNavigationLinks(linkProvider, links); } catch { } } if (links.Count == 0) { continue; } foreach (var linkInfo in links) { NavLink navLink = linkInfo.Value; navLink.Order = linkInfo.Key; navLink.Id = GetLinkId(navLink, providerName); var link = new XElement("NavLink"); foreach (var property in _navLinkProperties) { try { string name = property.Key; string value = (property.Value.GetValue(navLink) ?? string.Empty).ToString().Trim(); if (name.Equals("Url") || name.Equals("Title")) { link.Add(new XElement(name, new XCData(value))); } else { link.Add(new XAttribute(name, value)); } } catch { } } node.Add(link); } nodes.Add(node); } return(nodes.ToString()); } catch (Exception exception) { throw new APIException(20001, "[NavigationService:GetLinks] " + exception.Message); } }
public void Generate() { var navMesh = new NavMesh(this.game); var intersectionMap = new Dictionary <Intersection, MergedIntersection>(); var intersectionSideMap = new Dictionary <MergedIntersection, Game.Street[]>(); var intersectionQuadMap = new Dictionary <MergedIntersection, NavQuad>(); foreach (var mergedIntersection in this.game.GetList <MergedIntersection>()) { var streets = new Game.Street[4]; foreach (var street in mergedIntersection.Streets) { var thisNode = mergedIntersection .Intersections.First(i => i == street.Node1 || i == street.Node2); var otherNode = street.OtherNode(thisNode); var diff = otherNode.Position - thisNode.Position; if (diff.X == 0.U()) { streets[diff.Y > 0.U() ? Block.Side.North : Block.Side.South] = street; } else if (diff.Y == 0.U()) { streets[diff.X > 0.U() ? Block.Side.East : Block.Side.West] = street; } else { throw new Exception(""); } } var padding = 0.3.U(); var cornerSW = getIntersectionCorner(streets, Block.Corner.SouthWest); var cornerSE = getIntersectionCorner(streets, Block.Corner.SouthEast); var cornerNW = getIntersectionCorner(streets, Block.Corner.NorthWest); var cornerNE = getIntersectionCorner(streets, Block.Corner.NorthEast); var navQuad = new NavQuad( cornerSW + new Difference2(padding, padding), cornerSE + new Difference2(-padding, padding), cornerNW + new Difference2(padding, -padding), cornerNE + new Difference2(-padding, -padding) ); navMesh.Add(navQuad); intersectionSideMap.Add(mergedIntersection, streets); intersectionQuadMap.Add(mergedIntersection, navQuad); foreach (var intersection in mergedIntersection.Intersections) { intersectionMap.Add(intersection, mergedIntersection); } } foreach (var mergedIntersection in this.game.GetList <MergedIntersection>()) { var intersectionQuad = intersectionQuadMap[mergedIntersection]; foreach (var street in mergedIntersection.Streets .Where(s => mergedIntersection.Intersections.Contains(s.Node1))) { var side = (Block.Side)Array.IndexOf(intersectionSideMap[mergedIntersection], street); var quad1 = intersectionQuad; var quad2 = intersectionQuadMap[intersectionMap[street.Node2]]; if (side == Block.Side.East || side == Block.Side.West) { if (side == Block.Side.East) { Do.Swap(ref quad1, ref quad2); } var navQuad = new NavQuad(quad2.SE, quad1.SW, quad2.NE, quad1.NW); NavLink.CreatePair(navQuad, quad1, quad1.SW, quad1.NW); NavLink.CreatePair(navQuad, quad2, quad2.SE, quad2.NE); navMesh.Add(navQuad); } else if (side == Block.Side.South || side == Block.Side.North) { if (side == Block.Side.South) { Do.Swap(ref quad1, ref quad2); } var navQuad = new NavQuad(quad1.NW, quad1.NE, quad2.SW, quad2.SE); NavLink.CreatePair(navQuad, quad1, quad1.NW, quad1.NE); NavLink.CreatePair(navQuad, quad2, quad2.SW, quad2.SE); navMesh.Add(navQuad); } } } }
public void Remove(NavLink key) { _context.Remove(key); _context.SaveChanges(); }
public void Update(NavLink page) { _context.Update(page); _context.SaveChanges(); }
public void TitleClick(ItemClickEventArgs e) { NavLink link = e.ClickedItem as NavLink; //_frame.MainNavigationService.GoTo<MainViewModel>(); }
public SettingsView() { InitializeComponent(); this.SelectedNavLink = NavLinks[0]; this.PageContentFrame.Navigate(this.SelectedNavLink.PageType); }
public void Add(NavLink page) { _context.Add(page); _context.SaveChanges(); }