Пример #1
0
        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));
        }
Пример #2
0
        /// <summary>
        /// Perform a link handshake with the passed proxies and populate streams
        /// </summary>
        /// <param name="proxies">The proxies (interfaces) to bind the link on</param>
        /// <param name="address">Address to connect to, or null if proxy bound</param>
        /// <param name="ct">Cancels operation</param>
        /// <returns></returns>
        public async Task <bool> LinkAllAsync(IEnumerable <INameRecord> proxies, SocketAddress address,
                                              CancellationToken ct)
        {
            // Complete socket info
            Info.Address = address ?? new NullSocketAddress();
            Info.Flags   = address != null ? 0 : (uint)SocketFlags.Passive;
            Info.Options.UnionWith(_optionCache.Select(p => new SocketOptionValue(p.Key, p.Value)));

            var tasks = new List <Task <IProxyLink> >();

            foreach (var proxy in proxies)
            {
                if (proxy == null)
                {
                    break;
                }
                tasks.Add(CreateLinkAsync(proxy, ct));
            }
            try {
                var results = await Task.WhenAll(tasks.ToArray()).ConfigureAwait(false);

                Links.AddRange(results.Where(v => v != null));
                return(results.Any());
            }
            catch (Exception ex) {
                ProxyEventSource.Log.HandledExceptionAsInformation(this, ex);
                // continue...
            }
            return(false);
        }
Пример #3
0
 public HomeResponse()
 {
     Links.AddRange(new[]
     {
         new Link("/example-aggregates", Link.Relations.ExampleAggregates, WebRequestMethods.Http.Get),
         new Link("/example-aggregates", Link.Relations.ExampleAggregates, WebRequestMethods.Http.Post)
     });
 }
Пример #4
0
        internal void Inherit(List <IMappingConfig> parentMappingConfigs)
        {
            foreach (var m in parentMappingConfigs)
            {
                var notFoundProperties = m.Properties.FindAll(p => !PropertyNotFound(p.PropertyName));
                Properties.AddRange(notFoundProperties);
                Links.AddRange(m.Links);
            }

            SetLinksAlias();
        }
Пример #5
0
 public NestedLinkGroup(IItemRouted groupItem, params IItemRouted[] childs)
 {
     if (groupItem == null)
     {
         throw new ArgumentNullException(nameof(groupItem));
     }
     _groupItem = groupItem;
     if (childs != null && childs.Length > 0)
     {
         Links.AddRange(childs);
     }
 }
Пример #6
0
 public TweetGroup(IGrouping <Tweet, Tweet> tg)
 {
     GroupStatusIDs         = tg.Select(g => g.StatusID).ToList();
     CreatedOn              = DateTime.Now;
     StatusID               = tg.Key.StatusID;
     TweetText              = tg.Key.TweetText;
     CreatedAt              = tg.Key.CreatedAt;
     TweetTime              = tg.Key.TweetTime;
     RetweetCount           = tg.Key.RetweetCount + tg.Where(t => t.User.Name != tg.Key.User.Name).Sum(t => t.RetweetCount);
     LinkRetweetCount       = tg.SelectMany(x => x.Links).Sum(x => x.UrlTweetCount);
     LinkFacebookShareCount = tg.SelectMany(x => x.Links).Sum(x => x.UrlFacebookShareCount);
     User  = tg.Key.Status.User;
     Links = tg.Where(t => t.User.Name != tg.Key.User.Name).SelectMany(x => x.Links).ToList();
     Links.AddRange(tg.Key.Links.Where(l => l.Image != null || l.Video != null));
 }
Пример #7
0
        private void Parse(XElement rootElement)
        {
            Links.AddRange(rootElement.Elements(AtomNS + "link").Select(ParseLink));

            XElement inlineCount = rootElement.Elements(MetadataNS + "count").SingleOrDefault();

            if (inlineCount != null)
            {
                InLineCount = long.Parse(inlineCount.Value);
            }
            else
            {
                InLineCount = -1;
            }

            if (rootElement.Name.Equals(AtomNS + "entry"))
            {
                Entries.Add(ParseEntry(rootElement));
            }
            else
            {
                Entries.AddRange(rootElement.Elements(AtomNS + "entry").Select(ParseEntry));
            }
        }
Пример #8
0
 public LinkOptions Preconnect(params string[] links)
 {
     Links.AddRange(links.Select(l => new Link(l, "preconnect")).ToArray());
     return(this);
 }
Пример #9
0
        public void EnsureSeedData(IHostingEnvironment env)
        {
            if (!LocaisAtividades.Any())
            {
                LocaisAtividades.AddRange(
                    new LocalAtividadeAcademica {
                    Nome = "Coliseu do Porto", Latitude = 41.1469917, Longitude = -8.605416999999989
                },
                    new LocalAtividadeAcademica {
                    Nome = "Avenida dos Aliados", Latitude = 41.1484572, Longitude = -8.610746400000039
                },
                    new LocalAtividadeAcademica {
                    Nome = "Aula Magna da Universidade Portucalense", Latitude = 41.1804589, Longitude = -8.605948000000012
                },
                    new LocalAtividadeAcademica {
                    Nome = "Cidade do Porto", Latitude = 41.1494466, Longitude = -8.607507199999986
                },
                    new LocalAtividadeAcademica {
                    Nome = "Teatro Sá da Bandeira", Latitude = 41.146793, Longitude = -8.608879099999967
                },
                    new LocalAtividadeAcademica {
                    Nome = "Casa dos Arcos", Latitude = 41.1657561, Longitude = -8.670960700000023
                }
                    );
                SaveChanges();
            }
            if (!PontosVenda.Any())
            {
                PontosVenda.AddRange(
                    new PontoVenda {
                    Nome = "FAP", Latitude = 41.1523043, Longitude = -8.636018499999977, DescricaoAdicional = "teste"
                },
                    new PontoVenda {
                    Nome = "Campus S.João", Latitude = 41.18024569999999, Longitude = -8.604281899999933, DescricaoAdicional = "teste"
                },
                    new PontoVenda {
                    Nome = "Queimódromo", Latitude = 41.17346102935757, Longitude = -8.68374690413475, DescricaoAdicional = "teste"
                },
                    new PontoVenda {
                    Nome = "El Corte Inglés", Latitude = 41.125627, Longitude = -8.604804999999942, DescricaoAdicional = "teste"
                }
                    );
                SaveChanges();
            }


            if (!Bilheteiras.Any())
            {
                Bilheteira bilheteira = new Bilheteira {
                    PrecoIngressoSemanal = 40.00m, Condicoes = "Teste Condições"
                };
                Bilheteiras.Add(bilheteira);
                SaveChanges();

                Link link_bilhete1 = new Link {
                    Categoria = Categoria.Bilheteira, Descricao = "Link Bilhete dia 1", Url = "www.online.pt"
                };
                Link link_bilhete2 = new Link {
                    Categoria = Categoria.Bilheteira, Descricao = "Link Bilhete dia 2", Url = "www.online.pt"
                };
                Link link_bilhete3 = new Link {
                    Categoria = Categoria.Bilheteira, Descricao = "Link Bilhete dia 3", Url = "www.online.pt"
                };
                Link link_bilhete4 = new Link {
                    Categoria = Categoria.Bilheteira, Descricao = "Link Bilhete dia 4", Url = "www.online.pt"
                };
                Link link_bilhete5 = new Link {
                    Categoria = Categoria.Bilheteira, Descricao = "Link Bilhete dia 5", Url = "www.online.pt"
                };
                Link link_bilhete6 = new Link {
                    Categoria = Categoria.Bilheteira, Descricao = "Link Bilhete dia 6", Url = "www.online.pt"
                };
                Link link_bilhete7 = new Link {
                    Categoria = Categoria.Bilheteira, Descricao = "Link Bilhete dia 7", Url = "www.online.pt"
                };
                Link link_bilhete8 = new Link {
                    Categoria = Categoria.Bilheteira, Descricao = "Link Bilhete dia 8", Url = "www.online.pt"
                };
                Link link_ingresso_semanal = new Link {
                    Categoria = Categoria.Bilheteira, Descricao = "Link Ingresso Semanal", Url = "www.ingresso.pt"
                };

                Links.AddRange(link_bilhete1, link_bilhete2, link_bilhete3, link_bilhete4, link_bilhete5, link_bilhete6, link_bilhete7, link_bilhete8, link_ingresso_semanal);
                SaveChanges();
                bilheteira.Link   = link_ingresso_semanal;
                bilheteira.LinkId = link_ingresso_semanal.Id;
                Bilhete bilhete_dia1 = new Bilhete
                {
                    Data                = new DateTime(2016, 05, 01),
                    Link                = link_bilhete1,
                    LinkId              = link_bilhete1.Id,
                    PrecoNormal         = 8.00m,
                    PrecoDiaAnterior    = 9.00m,
                    PrecoNoDia          = 10.00m,
                    PrecoNoDiaForaHoras = 12.00m,
                    Bilheteira          = bilheteira,
                    BilheteiraId        = bilheteira.Id
                };
                Bilhete bilhete_dia2 = new Bilhete
                {
                    Data                = new DateTime(2016, 05, 02),
                    Link                = link_bilhete2,
                    LinkId              = link_bilhete2.Id,
                    PrecoNormal         = 8.00m,
                    PrecoDiaAnterior    = 9.00m,
                    PrecoNoDia          = 10.00m,
                    PrecoNoDiaForaHoras = 12.00m,
                    Bilheteira          = bilheteira,
                    BilheteiraId        = bilheteira.Id
                };
                Bilhete bilhete_dia3 = new Bilhete
                {
                    Data                = new DateTime(2016, 05, 03),
                    Link                = link_bilhete3,
                    LinkId              = link_bilhete3.Id,
                    PrecoNormal         = 8.00m,
                    PrecoDiaAnterior    = 9.00m,
                    PrecoNoDia          = 10.00m,
                    PrecoNoDiaForaHoras = 12.00m,
                    Bilheteira          = bilheteira,
                    BilheteiraId        = bilheteira.Id
                };
                Bilhete bilhete_dia4 = new Bilhete
                {
                    Data                = new DateTime(2016, 05, 04),
                    Link                = link_bilhete4,
                    LinkId              = link_bilhete4.Id,
                    PrecoNormal         = 8.00m,
                    PrecoDiaAnterior    = 9.00m,
                    PrecoNoDia          = 10.00m,
                    PrecoNoDiaForaHoras = 12.00m,
                    Bilheteira          = bilheteira,
                    BilheteiraId        = bilheteira.Id
                };
                Bilhete bilhete_dia5 = new Bilhete
                {
                    Data                = new DateTime(2016, 05, 05),
                    Link                = link_bilhete5,
                    LinkId              = link_bilhete5.Id,
                    PrecoNormal         = 8.00m,
                    PrecoDiaAnterior    = 9.00m,
                    PrecoNoDia          = 10.00m,
                    PrecoNoDiaForaHoras = 12.00m,
                    Bilheteira          = bilheteira,
                    BilheteiraId        = bilheteira.Id
                };
                Bilhete bilhete_dia6 = new Bilhete
                {
                    Data                = new DateTime(2016, 05, 06),
                    Link                = link_bilhete6,
                    LinkId              = link_bilhete6.Id,
                    PrecoNormal         = 8.00m,
                    PrecoDiaAnterior    = 9.00m,
                    PrecoNoDia          = 10.00m,
                    PrecoNoDiaForaHoras = 12.00m,
                    Bilheteira          = bilheteira,
                    BilheteiraId        = bilheteira.Id
                };
                Bilhete bilhete_dia7 = new Bilhete
                {
                    Data                = new DateTime(2016, 05, 07),
                    Link                = link_bilhete7,
                    LinkId              = link_bilhete7.Id,
                    PrecoNormal         = 8.00m,
                    PrecoDiaAnterior    = 9.00m,
                    PrecoNoDia          = 10.00m,
                    PrecoNoDiaForaHoras = 12.00m,
                    Bilheteira          = bilheteira,
                    BilheteiraId        = bilheteira.Id
                };
                Bilhete bilhete_dia8 = new Bilhete
                {
                    Data                = new DateTime(2016, 05, 08),
                    Link                = link_bilhete8,
                    LinkId              = link_bilhete8.Id,
                    PrecoNormal         = 8.00m,
                    PrecoDiaAnterior    = 9.00m,
                    PrecoNoDia          = 10.00m,
                    PrecoNoDiaForaHoras = 12.00m,
                    Bilheteira          = bilheteira,
                    BilheteiraId        = bilheteira.Id
                };

                Bilhetes.AddRange(bilhete_dia1, bilhete_dia2, bilhete_dia3, bilhete_dia4, bilhete_dia5, bilhete_dia6, bilhete_dia7, bilhete_dia8);
                SaveChanges();
                List <Bilhete> bilhetes_list = new List <Bilhete>();
                bilhetes_list.Add(bilhete_dia1);
                bilhetes_list.Add(bilhete_dia2);
                bilhetes_list.Add(bilhete_dia3);
                bilhetes_list.Add(bilhete_dia4);
                bilhetes_list.Add(bilhete_dia5);
                bilhetes_list.Add(bilhete_dia6);
                bilhetes_list.Add(bilhete_dia7);
                bilhetes_list.Add(bilhete_dia8);
                bilheteira.Bilhetes = bilhetes_list;
                Bilheteiras.Update(bilheteira);
                SaveChanges();
            }
            ;

            //if (!Atividades.Any())
            //{
            //    List<PontoVenda> pontos_venda = PontosVenda.ToList();
            //    List<LocalAtividadeAcademica> locais = LocaisAtividades.ToList();
            //    Atividades.AddRange(
            //                new AtividadeAcademica
            //                {
            //                    Data = new DateTime(2016, 02, 01),
            //                    Descricao = "Descrição teste",
            //                    LocalAtividadeAcademica = locais.ElementAt(0),
            //                    Nome = "Sarau Cultural",
            //                    PontosVenda = "Coliseu do Porto, FAP",
            //                    ImagemPath = env.WebRootPath + "\\imagens\\atividades\\TOMANEPHOTOS056.jpg",
            //                    LocalAtividadeAcademicaId = locais.ElementAt(0).Id,
            //                    Preco = 3.00m
            //                }
            //                );
            //    SaveChanges();
            //}
            if (!Artistas.Any())
            {
                Artistas.Add(
                    new Artista
                {
                    Nome        = "Dumitri Basiul",
                    Biografia   = "Dima tinha 12 anos quando começou a estudar música clássica. Depois disso emigrou para a Gronelândia",
                    DataAtuacao = new DateTime(2016, 05, 12),
                    ImagemPath  = "\\imagens\\artistas\\Borgore.jpg",
                    Palco       = Palco.PalcoPrincipal,
                }
                    );
                SaveChanges();
            }
        }
        public override bool ProcessContentLinks()
        {
            string fname  = Path.GetFileName(SourceFilePath);
            bool   yml    = string.Equals(fname, "toc.yml", StringComparison.InvariantCultureIgnoreCase);
            bool   result = string.Equals(fname, "toc.md", StringComparison.InvariantCultureIgnoreCase) ||
                            yml ||
                            ContentHasAudienceApplicationUser(_content);

            if (result)
            {
                FoundLink[] links = FindAllLinks(yml, _content);
                Links.AddRange(links.Select(l => l.FullMatch));
                foreach (FoundLink link in links.GroupBy(k => k).Select(k => k.Key))
                {
                    if (String.IsNullOrEmpty(link.Link.Trim()))
                    {
                        continue;
                    }

                    string linkClear = CleanLinkOfQueryAndHash(link.Link);

                    if (linkClear.StartsWith("http", StringComparison.InvariantCultureIgnoreCase) ||
                        linkClear.EndsWith("toc.md", StringComparison.InvariantCultureIgnoreCase) ||
                        linkClear.EndsWith("toc.yml", StringComparison.InvariantCultureIgnoreCase) ||
                        linkClear.StartsWith("mailto", StringComparison.InvariantCultureIgnoreCase))
                    {
                        continue;
                    }

                    try
                    {
                        string href = BuildFullUrl("/" + SourceFilePath, linkClear);
                        ProcessLink(href, link.Link, new ConceptualItemParameter(ref _content, link, href));
                    }
                    catch (Exception ex)
                    {
                        Logger.LogWarning($"Message: \"{ex.Message}\", File: \"{fname}\", Href: \"{link.Link}\"");
                    }
                }

                FoundPicture[] pictures = FindAllPictures(_content);
                Pictures.AddRange(pictures.Select(p => p.FullMatch));
                foreach (FoundPicture picture in pictures)
                {
                    try
                    {
                        string href = BuildFullUrl("/" + SourceFilePath, GetOnlyLink(picture.Link1));
                        ProcessLink(href, picture.Link1, null);

                        if (!String.IsNullOrEmpty(picture.Link2) && !picture.Link1.Equals(picture.Link2))
                        {
                            string link2 = CleanLinkOfQueryAndHash(GetOnlyLink(picture.Link2));
                            href = BuildFullUrl("/" + SourceFilePath, link2);
                            ProcessLink(href, picture.Link2, null);
                        }
                    }
                    catch (Exception ex)
                    {
                        Logger.LogWarning($"Message: \"{ex.Message}\", File: \"{fname}\", Link1: \"{picture.Link1}\", Link2: \"{picture.Link2}\"");
                    }
                }

                FoundLink[] includes = FindIncludedLinks(_content);
                foreach (FoundLink link in includes.GroupBy(k => k).Select(k => k.Key))
                {
                    if (String.IsNullOrEmpty(link.Link.Trim()))
                    {
                        continue;
                    }

                    string linkClear = CleanLinkOfQueryAndHash(link.Link);

                    if (linkClear.StartsWith("http", StringComparison.InvariantCultureIgnoreCase) ||
                        linkClear.EndsWith("toc.md", StringComparison.InvariantCultureIgnoreCase) ||
                        linkClear.EndsWith("toc.yml", StringComparison.InvariantCultureIgnoreCase))
                    {
                        continue;
                    }

                    try
                    {
                        string href = BuildFullUrl("/" + SourceFilePath, linkClear);
                        if (!FilesToIgnore.Contains(href.TrimStart('\\')))
                        {
                            FilesToIgnore.Add(href.TrimStart('\\'));
                        }
                    }
                    catch (Exception ex)
                    {
                        Logger.LogWarning($"Message: \"{ex.Message}\", File: \"{fname}\", Href: \"{link.Link}\"");
                    }
                }
                return(HasModified);
            }
            if (!(fname != null && fname.Equals("toc.md", StringComparison.InvariantCultureIgnoreCase)))
            {
                FilesToRemove.Add(SourceFilePath.TrimStart('\\'));
            }
            return(false);
        }