Example #1
0
        /// <summary>
        /// Creates marker for package.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="package">The package.</param>
        /// <returns>Package marker</returns>
        public static PackageMarker CreateForPackage(Session session, Package package)
        {
            var result = new PackageMarker(session)
            {
                ApplicationName = package.ApplicationName,
                SenderNodeId    = package.SenderNodeId,
                RecipientNodeId = package.RecipientNodeId,
                PackageId       = package.PackageId,
                PackageType     = package.PackageType,
                PackageDateTime = package.PackageDateTime.ToUniversalTime(),
                UserName        = package.UserName
            };

            if (package.PackageType == PackageType.Snapshot)
            {
                var recipient = ReplicationNode.FindNode(package.Session, result.RecipientNodeId);
                var sender    = ReplicationNode.GetCurrentNode(package.Session);
                var num       = XafDeltaModule.Instance.RoutingType == RoutingType.BroadcastRouting
                              ? sender.LastSavedPackageNumber
                              : recipient.LastSavedPackageNumber;
                if (recipient != null)
                {
                    result.LastSavedPackageNumber = num;
                }
            }
            return(result);
        }