示例#1
0
        public ClientXObjectDescriptor(Guid _uid, AbstractXClient <TKind> _client, Guid _collectionOwnerUid)
        {
#if DEBUG
            if (_uid == Guid.Empty)
            {
                throw new NotImplementedException("??? why");
            }
#endif
            CollectionOwnerUid = _collectionOwnerUid;
            Uid      = _uid;
            m_client = _client;
        }
示例#2
0
 internal void SetClientInternal(AbstractXClient <TKind> _client)
 {
     if (this is IXClientUserInternal <TKind> )
     {
         ((IXClientUserInternal <TKind>) this).SetClient(_client);
     }
     foreach (var pair in m_xValues)
     {
         var clientUser = pair.Value as IXClientUserInternal <TKind>;
         if (clientUser != null)
         {
             clientUser.SetClient(_client);
         }
     }
 }
示例#3
0
        /// <summary>
        /// Вызывается для создания дескриптора для нового объекта
        /// </summary>
        /// <param name="_newBorn"></param>
        /// <param name="_client"></param>
        /// <param name="_kindId"></param>
        /// <param name="_parentUid"></param>
        public ClientXObjectDescriptor(ClientXObject <TKind> _newBorn, AbstractXClient <TKind> _client, int _kindId, Guid _parentUid)
            : this(_newBorn.Uid, _client, _parentUid)
        {
            var child = _newBorn as IClientXChildObject <TKind>;

            if (child != null)
            {
                child.SetParent(_parentUid);
            }
            m_instances.Add(_newBorn.GetType(), _newBorn);
            m_instancesCounter.Add(_newBorn, 1);
            Kind = _kindId;
            ResetState();
            _newBorn.Changed += XObjectChanged;
            var changes = _newBorn.GetChanges();

            if (changes.Any())
            {
                Report = new ServerXReport(_newBorn.Uid, _newBorn.GetChanges(), 0, m_client.KindToIntInternal(_newBorn.Kind), EState.SINGLE);
            }
        }
示例#4
0
 void IXClientUserInternal <TKind> .SetClient(AbstractXClient <TKind> _client)
 {
     m_client = _client;
 }
示例#5
0
 public void SetClient(AbstractXClient <TKind> _client)
 {
     m_client = _client;
 }