public ObjectRepository(SessionIdentifier session, DomainObjectInquiry objectInquiry)
        {
            m_link = new Dictionary<DomainLinkKey, DomainLink>(objectInquiry.ALinks.Count);

            foreach (DomainLinkConfig linkConfig in objectInquiry.ALinks)
            {
                DomainLinkKey key = new DomainLinkKey(linkConfig);
                DomainLink link = new DomainLink(linkConfig, session);

                m_link.Add(key, link);
            }
        }
        internal DomainLinkConfig(CreateLinkParams createParams, EditLinkParams editParams = null)
        {
            Id = createParams.Id;
            Code = createParams.Code;
            LeftRelation = createParams.LeftRelation;
            RightRelation = createParams.RightRelation;
            LeftObject = createParams.LeftObject;
            RightObject = createParams.RightObject;
            LinkTable = createParams.LinkTable;
            LeftObjectIdField = createParams.LeftObjectIdField;
            RightObjectIdField = createParams.RightObjectIdField;

            if (editParams != null)
                Update(editParams);

            Key = new DomainLinkKey(this);
        }
 public DomainLink GetLink(DomainLinkKey key)
 {
     return m_link[key];
 }
 public DomainLink GetLink(DomainLinkKey key)
 {
     return m_sharedObjRepository.GetLink(key);
 }
Exemple #5
0
 internal DomainLink GetLink(DomainLinkKey key)
 {
     return m_objRepository.GetLink(key);
 }
        private void LoadLinkedObjects(SessionIdentifier sessionId, ObjectIdentifier objectId)
        {
            string objCode = objectId.Code;

            DomainObjectBroker broker = GetObjectBroker(objCode);

            long[] idList = new long[] { objectId.Id };

            DbCommonCommand command = broker.LoadLinkedItemsCommand;
            command["ID"].Value = idList;

            using (IDbCommonDataReader reader = command.ExecuteReader(sessionId))
            {
                while (reader.Read())
                {
                    long leftId = reader.GetValue<long>(0);
                    long rightId = reader.GetValue<long>(1);
                    string linkCode = reader.GetValue<string>(2);

                    DomainLinkConfig linkConfig = broker.GetLinkConfig(linkCode);
                    DomainLinkKey linkKey = new DomainLinkKey(linkConfig);
                    //DomainLink link = SharedRepository.GetLink(linkKey);
                    DomainLink link = DocumentManager.Instance.GetLink(sessionId, linkKey);

                    link.Init(leftId, rightId);
                }

                reader.Close();
            }
        }
        public DomainLinkBroker GetLinkBroker(DomainLinkKey linkKey)
        {
            DomainLinkBroker result = null;
            if (m_domainLinkBroker.TryGetValue(linkKey, out result))
                return result;

            var query = from link in m_inquiry.ALinks
                        where link.Key.Equals(linkKey)
                        select link;

            DomainLinkBrokerBuilder brokerBuilder = new DomainLinkBrokerBuilder(query.First(), m_connection);
            result = new DomainLinkBroker(brokerBuilder);
            m_domainLinkBroker.Add(linkKey, result);

            return result;
        }