Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
 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;
        }
Ejemplo n.º 6
0
    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);
    }
Ejemplo n.º 7
0
        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();
        }
Ejemplo n.º 8
0
 /// <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();
 });
Ejemplo n.º 9
0
        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();
        }
Ejemplo n.º 10
0
        // 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);
                    }
                }
            }
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 13
0
        /// <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;
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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));
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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.");
            }
        }
Ejemplo n.º 18
0
    // 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);
                        }
                    }
                }
            }
        }
    }
Ejemplo n.º 19
0
    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);
    }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 22
0
        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");
            }
        }
Ejemplo n.º 23
0
        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);
            }
        }
Ejemplo n.º 26
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 27
0
 public void Remove(NavLink key)
 {
     _context.Remove(key);
     _context.SaveChanges();
 }
Ejemplo n.º 28
0
 public void Update(NavLink page)
 {
     _context.Update(page);
     _context.SaveChanges();
 }
Ejemplo n.º 29
0
 public void TitleClick(ItemClickEventArgs e)
 {
     NavLink link = e.ClickedItem as NavLink;
     //_frame.MainNavigationService.GoTo<MainViewModel>();
 }
Ejemplo n.º 30
0
 public SettingsView()
 {
     InitializeComponent();
     this.SelectedNavLink = NavLinks[0];
     this.PageContentFrame.Navigate(this.SelectedNavLink.PageType);
 }
Ejemplo n.º 31
0
 public void Add(NavLink page)
 {
     _context.Add(page);
     _context.SaveChanges();
 }