/// <summary>
 /// Creates the package object reference.
 /// </summary>
 /// <param name="source">The source object.</param>
 /// <param name="destinationSession">The destination session.</param>
 /// <param name="targetNode">The target replication node</param>
 /// <returns>Package object reference</returns>
 public static PackageObjectReference CreatePackageObjectReference(object source, 
     Session destinationSession, ReplicationNode targetNode)
 {
     PackageObjectReference result = null;
     if (source != null && source is IXPObject)
     {
         result = new PackageObjectReference(destinationSession);
         result.Assign(source);
         var maps = OidMap.GetOidMaps((IXPObject)source);
         var sb = new StringBuilder();
         foreach (var oidMap in maps)
             sb.AppendFormat("{0}\a{1}\n", oidMap.NodeId, oidMap.ObjectId);
         result.KnownMapping = sb.ToString();
     }
     return result;
 }
        /// <summary>
        /// Creates the package object reference.
        /// </summary>
        /// <param name="source">The source object.</param>
        /// <param name="destinationSession">The destination session.</param>
        /// <param name="targetNode">The target replication node</param>
        /// <returns>Package object reference</returns>
        public static PackageObjectReference CreatePackageObjectReference(object source,
                                                                          Session destinationSession, ReplicationNode targetNode)
        {
            PackageObjectReference result = null;

            if (source != null && source is IXPObject)
            {
                result = new PackageObjectReference(destinationSession);
                result.Assign(source);
                var maps = OidMap.GetOidMaps((IXPObject)source);
                var sb   = new StringBuilder();
                foreach (var oidMap in maps)
                {
                    sb.AppendFormat("{0}\a{1}\n", oidMap.NodeId, oidMap.ObjectId);
                }
                result.KnownMapping = sb.ToString();
            }
            return(result);
        }
示例#3
0
        /// <summary>
        /// Creates package record based on protocol record.
        /// </summary>
        /// <param name="packageSession">The package session.</param>
        /// <param name="protocolRecord">The protocol record.</param>
        /// <param name="targetNode">The target node.</param>
        /// <returns>Package record</returns>
        public static PackageRecord CreateForProtocolRecord(PackageSession packageSession,
                                                            ProtocolRecord protocolRecord, ReplicationNode targetNode)
        {
            var destinationSession = packageSession.Session;
            var result             = new PackageRecord(destinationSession)
            {
                PackageSession = packageSession,
                UserName       = protocolRecord.UserName,
                Description    = protocolRecord.Description,
                ModifiedOn     = protocolRecord.ModifiedOn,
                NewBlobValue   = protocolRecord.NewBlobValue,
                PropertyName   = protocolRecord.PropertyName,
                NewValue       = protocolRecord.NewValue,
                OldValue       = protocolRecord.OldValue,
                OperationType  = protocolRecord.OperationType
            };

            if (protocolRecord.AuditedObject != null && protocolRecord.AuditedObject.Target != null)
            {
                result.AuditedObject =
                    PackageObjectReference.CreatePackageObjectReference(protocolRecord.AuditedObject.Target,
                                                                        destinationSession, targetNode);

                result.AuditedObject.ReplicationKey = protocolRecord.ReplicationKey;
            }


            if (protocolRecord.NewObject != null)
            {
                result.NewObject = PackageObjectReference.CreatePackageObjectReference(protocolRecord.NewObject.Target,
                                                                                       destinationSession, targetNode);
            }

            if (protocolRecord.OldObject != null)
            {
                result.OldObject = PackageObjectReference.CreatePackageObjectReference(protocolRecord.OldObject.Target,
                                                                                       destinationSession, targetNode);
            }

            return(result);
        }