public bool GetMatch(byte word, out BaseNode ele) { //if(!Loaded) return((ele = Links.FirstOrDefault(u => u.IsMatch(word))) != null); // ele = Links.FirstOrDefault(u => u.Data == word); // return ele != null; }
public void Merge(ICollection <RoutingMapLink> links, IAddress source) { var oldLinks = Links.ToList(); var linksToAdd = links.Where(link => !link.Contains(OwnAddress) && ((link.Contains(source) && link.Connected != Links.FirstOrDefault(l => Equals(l, link)).Connected) || link.Version > Links.FirstOrDefault(l => Equals(l, link)).Version)).ToList(); if (linksToAdd.Count > 0) { Version++; } foreach (var link in linksToAdd) { Links.Remove(link); } Links.AddRange(linksToAdd); foreach (var link in links.Where(l => !l.Connected)) { if (!Links.Contains(link)) { Links.Add(link); } } //Console.WriteLine("[{0}] MERGE {1} with {2} from {3} => {4}", OwnAddress, // oldLinks.ToDOT(longNames: config.LongNames), links.ToDOT(longNames: config.LongNames), source, Links.ToDOT(longNames: config.LongNames)); }
/// <summary> /// Default constructor. /// </summary> public DataCenter() { computeLimitsLink = new Lazy <Link>(() => { return(Links.FirstOrDefault(l => String.Equals(l.Rel, "computeLimits", StringComparison.CurrentCultureIgnoreCase))); }); billingLink = new Lazy <Link>(() => { return(Links.FirstOrDefault(l => String.Equals(l.Rel, "billing", StringComparison.CurrentCultureIgnoreCase))); }); rootGroupLink = new Lazy <Link>(() => { return(Links.FirstOrDefault(l => String.Equals(l.Rel, "group", StringComparison.CurrentCultureIgnoreCase))); }); defaultsLink = new Lazy <Link>(() => { return(Links.FirstOrDefault(l => String.Equals(l.Rel, "defaults", StringComparison.CurrentCultureIgnoreCase))); }); networkLimitsLink = new Lazy <Link>(() => { return(Links.FirstOrDefault(l => String.Equals(l.Rel, "networkLimits", StringComparison.CurrentCultureIgnoreCase))); }); createServerLink = new Lazy <Link>(() => { return(Links.FirstOrDefault(l => String.Equals(l.Rel, "createServer", StringComparison.CurrentCultureIgnoreCase))); }); }
/// <summary> /// Default constructor. /// </summary> public ServerOperation() { queueStatusLink = new Lazy <Link>(() => { return(Links.FirstOrDefault(l => String.Equals(l.Rel, "status", StringComparison.CurrentCultureIgnoreCase))); }); }
private void UpdateSelection() { if (linkList == null || Links == null) { return; } linkList.SelectedItem = Links.FirstOrDefault(l => l.Source == SelectedSource); }
/// <summary> /// 判断是否包含指定的站点。 /// </summary> /// <param name="node">目标站点。</param> /// <returns></returns> /// <exception cref="ArgumentNullException">如果node为空引用,则跑出该异常。</exception> public bool ContainsNode(MetroNode node) { if (node == null) { throw new ArgumentNullException("node"); } return(Links.FirstOrDefault(c => c.From == node || c.To == node) != null); }
private void LoadSelected() { var source = ValuesStorage.GetString(KeySelected); SetSelected((_selectLater == null ? Links.FirstOrDefault(x => x.DisplayName == source) : Links.FirstOrDefault(x => x.Source == _selectLater)) ?? Links.FirstOrDefault(), false); _selectLater = null; }
private void UpdateSelection() { if (linkList == null || Links == null) { return; } // sync list selection with current source linkList.SelectedItem = Links.FirstOrDefault(l => l.Source == SelectedSource); }
public void SetSelected(Uri uri) { if (_initialized) { SetSelected(Links.FirstOrDefault(x => x.Source == uri) ?? Links.FirstOrDefault(), false); } else { _selectLater = uri; } }
public void RemoveDirectConnection(IAddress other) { var existingLink = Links.FirstOrDefault(link => link.Contains(OwnAddress) && link.Contains(other)); if (existingLink.Connected) { Links.Remove(existingLink); Links.Add(new RoutingMapLink(existingLink.A, existingLink.B, existingLink.Version + 1, false)); Version++; } }
public void AddDirectConnection(IAddress other) { var newLink = new RoutingMapLink(OwnAddress, other); var existingLink = Links.FirstOrDefault(link => Equals(link, newLink)); if (!existingLink.Connected) { Links.Remove(existingLink); Links.Add(new RoutingMapLink(OwnAddress, other, existingLink.Version + 1, true)); Version++; } }
/// <summary> /// Returns the associated Uri for the first Link matching the Relationship. /// </summary> /// <param name="relationship">A <see cref="string"/> value identifying the Relationship.</param> /// <returns>A <see cref="Uri"/> representing the related Link.</returns> public Uri GetLinkUri(string relationship) { var link = Links.FirstOrDefault(x => x.Rel.Any(y => y.ToLower().EndsWith(relationship))); if (link == null) { throw new ApplicationException(string.Format("Invalid Siren relationship: {0}", relationship)); } var url = link.Href.ToString(); var uri = new Uri(url); return(uri); }
/// <exception cref="TerminalException">Cannot link off of terminals</exception> public override bool Add(byte word, int id, out BaseNode ele) { if (Data == 0 && Id != -1) { throw new TerminalException("Cannot link off of terminals"); } ele = Links.FirstOrDefault(u => u.IsMatch(word)); //Check to see if an element matching this word already exists in our links if (ele == null) { Links.Add(ele = new Node(word, id)); //If it doesnt, add the new element to our link list return(true); } return(ele.Combine(id)); //If it does, add the id to the linked element }
public void Activate() { for (int i = 0; i < Neurons.Count; i++) { Neurons[i].Input = 0; for (int j = 0; j < PreviousLayer.Neurons.Count; j++) { var weigth = Links.FirstOrDefault(x => x.Source.Index == j && x.Target.Index == i); Neurons[i].Input += Inputs[j] * weigth.Weigth; } } foreach (var neuron in Neurons) { neuron.Activate(); } }
public virtual void Initialize() { if (_initialized) { return; } _initialized = true; foreach (var p in ValuesStorage.GetStringList(KeyTemporary).Select(x => x.Split(new[] { '\n' }, 2)) .Where(x => x.Length == 2)) { var c = CustomLink.Deserialize(p[1]); if (c == null) { continue; } if (string.IsNullOrEmpty(p[0])) { Links.Insert(0, c); } else { var after = Links.FirstOrDefault(x => x.Source.ToString() == p[0]); if (after == null) { continue; } var index = Links.IndexOf(after); if (index < Links.Count - 1) { Links.Insert(Links.IndexOf(after) + 1, c); } else { Links.Add(c); } } } var source = ValuesStorage.GetUri(KeySelected); _selectedLink = Links.FirstOrDefault(x => x.Source == source) ?? Links.FirstOrDefault(); Links.CollectionChanged += Links_CollectionChanged; }
/// <summary> /// Get redirect URL to navigate the client to after succesfully registering transaction /// </summary> /// <returns></returns> /// <exception cref="IpayOrderException">Thrown when Links is null or redirect link not found</exception> public string GetRedirectUrl() { if (Links == null) { throw new IpayOrderException("Links value is null"); } var redirectLink = Links .FirstOrDefault(l => l.Method == "REDIRECT") ?.Href; if (redirectLink == null) { throw new IpayOrderException("Links value is null"); } return(redirectLink); }
private void UpdateSelection(bool skipLoading) { if (_linkList == null || Links == null) { return; } if (!skipLoading && SavePolicy == SavePolicy.Flexible && SaveKey != null) { Frame.Source = ValuesStorage.GetUri(SaveKey) ?? Links.FirstOrDefault()?.Source; } else { var saved = skipLoading || SaveKey == null ? null : ValuesStorage.GetString(SaveKey); _linkList.SelectedItem = (saved == null ? null : Links.FirstOrDefault(l => l.Source.OriginalString == saved)) ?? Links.FirstOrDefault(l => l.Source == SelectedSource) ?? (skipLoading ? null : Links.FirstOrDefault()); } }
public BaseNode GetMatch(byte word) { // if (!Loaded) return(Links.FirstOrDefault(u => u.IsMatch(word))); /* BaseNode ele = null; * int low = 2; * foreach (BaseNode u in Links) * { * int tmp = u.MatchLevel(word); * if (tmp == 0) * return u; * if (low > tmp) * { * low = tmp; * ele = u; * } * } * return ele;*/ }
private void Remove(LinkInput link) { PreviousSelectedQueue.Remove(link); link.PropertyChanged -= Link_PropertyChanged; link.Close -= OnLinkClose; if (SelectedLink == link) { SelectedLink = PreviousSelectedQueue.DequeueOrDefault() ?? Links[Links.IndexOf(link) - 1]; } if (SelectedLink == link) { SelectedLink = Links.FirstOrDefault(); } Links.Remove(link); SaveLinks(); }
private void Page_Loaded(object sender, RoutedEventArgs e) { try { var window = Window.GetWindow(this); this.NavigationService.RemoveBackEntry(); _NavigationService = this.NavigationService; _NavigationService.Navigating += NavigationService_Navigating; ApplyLayout(); UpdateEnablingWebBrowserNavButtons(); HideScriptErrors(webBrowser, true); window.SizeChanged += new SizeChangedEventHandler(Window_SizeChanged); window.Closing += new CancelEventHandler(Window_Closing); webBrowser.LoadCompleted += webBrowser_LoadCompleted; TilesControl.DataChanged += (_1, _2) => { Save(); }; foreach (var linkId in Project.History) { var linkView = Links.FirstOrDefault(n => n.Id == linkId); if (linkView != null) { TilesControl.Model.HistoryLinks.Add(linkView); } } TilesControl.Focus(); timer = new Timer(500); timer.Elapsed += Timer_Elapsed; timer.Start(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
/// <summary> /// Loads the content. /// </summary> public override void LoadContent() { base.LoadContent(); // TODO: Identify and retrieve the items properly worldSelector = ListSelectors.FirstOrDefault(x => x.Text == "World"); factionSelector = ListSelectors.FirstOrDefault(x => x.Text == "Faction"); startLink = Links.FirstOrDefault(x => x.Text == "Start"); worldSelector.SelectedIndexChanged += OnWorldSelectorSelectedIndexChanged; factionSelector.SelectedIndexChanged += OnFactionSelectorSelectedIndexChanged; // TODO: Do not access the repository directly from here WorldRepository worldRepository = new WorldRepository(ApplicationPaths.WorldsDirectory); // TODO: Don't load everything unnecessarily worlds = worldRepository.GetAll().ToDomainModels().ToList(); worldSelector.Values.AddRange(worlds.Select(f => f.Name)); worldSelector.SelectedIndex = 0; }
private void RemoveMissingNeighbors(object o) { IEnumerable <NeighborEntry> list; lock (tablesLock) { list = NeighborhoodTable.Where(n => n.Hold.CompareTo(TimeSpan.Zero) < 0).ToList(); } foreach (NeighborEntry e in list) { Guid guid = Guid.NewGuid(); lock (tablesLock) { NeighborhoodTable.Remove(e); var top = TopologyTable.FirstOrDefault(t => t.Destination.Equals(e.Address) && t.Neighbor.Equals(e.Address)); if (top != null) { AddTopology(new TopologyEntry(e.Address, e.Address, -1, -1)); } } var neighbors = NeighborhoodTable.Where(n => list.FirstOrDefault(l => l.Address.Equals(n.Address)) == null).ToList(); foreach (var neighbor in neighbors) { var node = Nodes.FirstOrDefault(n => (n as RouterNode).Text.Equals(neighbor.Address)) as RouterNode; var link = Links.FirstOrDefault(l => l.ToNode.Equals(node) || l.FromNode.Equals(node)) as GoLabeledLink; if (node == null || link == null) { continue; } TopologyEntry fastest; lock (tablesLock) { fastest = TopologyTable.Where(t => t.Destination.Equals(e.Address)).OrderBy(t => t.Feasible).FirstOrDefault(); } node.AddTopology(new TopologyEntry(e.Address, Text, fastest == null ? -1 : fastest.Feasible + link.UserFlags, fastest == null ? -1 : fastest.Feasible)); } } }
///<summary>Sets the portion of a pledge to link to this payment.</summary> public void SetAmount(Pledge pledge, decimal value) { var link = Links.FirstOrDefault(o => o.Pledge == pledge); if (value == 0) { Links.Remove(link); } else { if (link != null) { link.Amount = value; } else { Links.Add(new PledgeLink { Pledge = pledge, Payment = CurrentPayment, Amount = value }); } } }
private async Task SendHelloTo(RouterNode destination) { try { GoLabeledLink link = Links.FirstOrDefault(l => l.ToNode.Equals(destination) || l.FromNode.Equals(destination)) as GoLabeledLink; if (link.UserFlags < 1) { return; } await destination.ReceiveHello(this, link); while (link.PenColor != Color.Black) { await Task.Delay(50); } link.PenColor = Color.Red; await Task.Delay(100); link.PenColor = Color.Black; } catch (InvalidAsynchronousStateException) { } }
public bool ShouldConnectTo(IAddress other) { var peers = GraphHelper.GetPeers(OwnAddress, Links).ToList(); if (peers.Count >= config.MaxConnections || peers.Contains(other)) { return(false); } var newLink = new RoutingMapLink(OwnAddress, other); if (GraphHelper.IsReachable(other, OwnAddress, Links)) { if (peers.Count >= config.DesiredConnections) { return(false); } var existingLink = Links.FirstOrDefault(link => Equals(link, newLink)); var stateBefore = GraphHelper.CalculateConnectivity(Links); Links.Remove(existingLink); Links.Add(newLink); var stateAfter = GraphHelper.CalculateConnectivity(Links); Links.Remove(newLink); if (existingLink.A != null) { Links.Add(existingLink); } if (Equals(stateAfter, stateBefore)) { return(false); } } return(true); }
public List <string> GetWarnings() { var warnings = new List <string>(); var planetIDs = Planets.Select(p => p.ID).ToHashSet(); var playerNames = Players.Select(p => p.Name).ToHashSet(); var factionNames = Factions.Select(f => f.Name).ToHashSet(); var playerFactionNames = Factions.Select(p => p.Name).ToHashSet(); var ownerNames = Planets.Select(p => p.OwnerName).Where(n => n != null).ToHashSet(); if (!ownerNames.IsSubsetOf(playerNames)) { warnings.Add("Planet owner does not exist."); } if (!playerFactionNames.IsSubsetOf(factionNames)) { warnings.Add("Player faction does not exist."); } if (planetIDs.Count != Planets.Count) { warnings.Add("Duplicate planet ID."); } if (playerNames.Count != Players.Count) { warnings.Add("Duplicate player name."); } if (factionNames.Count != Factions.Count) { warnings.Add("Duplicate faction."); } { var link = Links.FirstOrDefault(l => l[0] == l[1]); if (link != null) { warnings.Add(String.Format("Link has same source and destination: {0} {1}", link[0], link[1])); } } foreach (var link in Links) { if (!planetIDs.IsSupersetOf(link.PlanetIDs)) { warnings.Add("Link points to inexistent planet"); } Array.Sort(link.PlanetIDs); } foreach (var link1 in Links) { foreach (var link2 in Links) { if (link1 != link2 && link1.PlanetIDs.SequenceEqual(link2.PlanetIDs)) { warnings.Add("Duplicate Link"); } } } Func <string, Planet, string> format = (s, p) => String.Format("Planet {0} {1} missing.", p.Name ?? String.Empty, s); foreach (var p in Planets) { if (p.OwnerName != null || p.FactionName != null || p.MapName != null) { if (p.OwnerName == null) { warnings.Add(p.Name + format("owner", p)); } if (p.FactionName == null) { warnings.Add(format("faction", p)); } if (p.MapName == null) { warnings.Add(format("map", p)); } if (p.Name == null) { warnings.Add(format("name", p)); } } } if (Planets.Count(p => p.IsStartingPlanet) != Factions.Count) { warnings.Add("Wrong number of starting planets."); } if (Round == 0 && Planets.Any(p => p.OwnerName == null) && !playerNames.All(ownerNames.Contains)) { warnings.Add("Galaxy has free space and a player has no planet."); } if (Planets.Count > MapNames.Count) { warnings.Add("Not enough maps."); } if (Factions.Count < 2) { warnings.Add("Not enough factions."); } return(warnings); }
/// <summary> /// Gets the webpage link by the specified link ID. /// </summary> /// <param name="linkId">The link ID to search for.</param> /// <returns> /// A webpage link which matches the specified ID. /// </returns> public Link FindLinkById(string linkId) { return(Links.FirstOrDefault(l => l.Id == Guid.Parse(linkId))); }
/// <summary> /// Gets the webpage link by the specified link name. /// </summary> /// <param name="name">The link name to search for.</param> /// <returns> /// A webpage link which matches the specified name. /// </returns> public Link FindLinkByName(string name) { return(Links.FirstOrDefault(l => l.Name.CompleteTrimAndUpper().Equals(name.CompleteTrimAndUpper()))); }
public RelatedWebsites(IEnumerable <RelatedWebsiteLink> links) { Links = links.OrderBy(link => link.Title).ToArray(); Current = Links.FirstOrDefault(e => e.IsCurrent); Any = Links.Count() > 1 && Current != null; }
public void AddTopology(TopologyEntry entry) { /* * if(entry.Feasible == -1) * { * //remove topology * lock(tablesLock) * { * var existing = TopologyTable.FirstOrDefault(t => t.Destination.Equals(entry.Destination) && t.Neighbor.Equals(entry.Neighbor)); * if(existing != null) * { * TopologyTable.Remove(existing); * UpdateRoute(entry); * } * return; * } * } */ if (entry.Destination.Equals(Text)) { return; } if (entry.Feasible != -1) { lock (tablesLock) { var fastest = TopologyTable.Where(t => t.Destination.Equals(entry.Destination))?.OrderBy(t => t.Feasible).FirstOrDefault(); if (fastest != null && entry.Advertised >= fastest.Feasible) { return; } var existing = TopologyTable.Where(t => t.Destination.Equals(entry.Destination) && t.Neighbor.Equals(entry.Neighbor) && t.Feasible == entry.Feasible).FirstOrDefault(); if (existing != null) { return; } TopologyTable.Add(entry); } } else { lock (tablesLock) { var existing = TopologyTable.FirstOrDefault(t => t.Destination.Equals(entry.Destination) && t.Neighbor.Equals(entry.Neighbor)); if (existing != null) { TopologyTable.Remove(existing); } } } UpdateRoute(entry); var neighbors = NeighborhoodTable.Where(n => !n.Address.Equals(entry.Neighbor)).ToList(); foreach (var neighbor in neighbors) { var node = Nodes.FirstOrDefault(n => (n as RouterNode).Text.Equals(neighbor.Address)) as RouterNode; var link = Links.FirstOrDefault(l => l.ToNode.Equals(node) || l.FromNode.Equals(node)) as GoLabeledLink; if (node == null || link == null) { continue; } TopologyEntry fastest; lock (tablesLock) { fastest = TopologyTable.Where(t => t.Destination.Equals(entry.Destination)).OrderBy(t => t.Feasible).FirstOrDefault(); } node.AddTopology(new TopologyEntry(entry.Destination, Text, fastest == null ? -1 : fastest.Feasible + link.UserFlags, fastest.Feasible)); } }