Esempio n. 1
0
        public override void PostFlush(ICollection entities)
        {
            IEnumerable <MongoNode> nodes = entities.OfType <MongoNode>();

            if (!nodes.Any())
            {
                return;
            }

            var repository = new NodeLinkRepository();

            Task[] tasks = nodes.Select(x => repository.SaveLinks(x.Id, x.Links)).ToArray();
            Task.WaitAll(tasks);
        }
Esempio n. 2
0
        public void OnPostLoad(PostLoadEvent ev)
        {
            var networkNode = ev.Entity as MongoNode;

            if (networkNode == null)
            {
                return;
            }

            var repository = new NodeLinkRepository();
            IList <NodeLink> linksFromMongo = repository.GetLinks(networkNode.Id);

            HashSet <NodeLink> links = (HashSet <NodeLink>)networkNode
                                       .GetType()
                                       .GetProperty("LinksInternal", BindingFlags.NonPublic | BindingFlags.Instance)
                                       .GetValue(networkNode);

            links.UnionWith(linksFromMongo);
        }
Esempio n. 3
0
 public static void Init(string sqlServerConnectionString, string mongoConnectionString)
 {
     SessionFactory.Init(sqlServerConnectionString);
     NodeLinkRepository.Init(mongoConnectionString);
 }