public DomainObject GetDomainObjectReference()
        {
            if (ObjectID == null)
            {
                return(null);
            }

            if (ClientTransaction.IsInvalid(ObjectID))
            {
                return(ClientTransaction.GetInvalidObjectReference(ObjectID));
            }

            return(ClientTransaction.GetObjectReference(ObjectID));
        }
Exemplo n.º 2
0
        private DataContainer GetTargetDataContainer(TransportItem transportItem, Dictionary <ObjectID, DomainObject> existingObjects, ClientTransaction bindingTargetTransaction)
        {
            DomainObject existingObject;

            if (existingObjects.TryGetValue(transportItem.ID, out existingObject))
            {
                return(bindingTargetTransaction.DataManager.GetDataContainerWithLazyLoad(existingObject.ID, throwOnNotFound: true));
            }
            else
            {
                var id = transportItem.ID;

                var instance = bindingTargetTransaction.GetInvalidObjectReference(id);
                ResurrectionService.ResurrectInvalidObject(bindingTargetTransaction, id);

                var newDataContainer = DataContainer.CreateNew(id);
                newDataContainer.SetDomainObject(instance);
                bindingTargetTransaction.DataManager.RegisterDataContainer(newDataContainer);

                return(newDataContainer);
            }
        }