コード例 #1
0
        public void Process(PropertyBag propertyBag)
        {
            Type       type       = base.GetType();
            string     fullName   = type.FullName;
            string     text       = string.Format("PipelineProcessor <{0}>", fullName);
            ADObjectId adobjectId = (ADObjectId)propertyBag[ADObjectSchema.Id];

            ExTraceGlobals.BackSyncTracer.TraceDebug <string, string>((long)SyncConfiguration.TraceId, "{0} process {1} ...", text, adobjectId.ToString());
            ProcessorHelper.TracePropertBag(text, propertyBag);
            if (this.ProcessInternal(propertyBag))
            {
                this.next.Process(propertyBag);
            }
            else
            {
                ExTraceGlobals.BackSyncTracer.TraceDebug <string>((long)SyncConfiguration.TraceId, "{0} processing terminated", text);
            }
            ExTraceGlobals.BackSyncTracer.TraceDebug <string, string>((long)SyncConfiguration.TraceId, "{0} completed process {1}", text, adobjectId.ToString());
        }
コード例 #2
0
        private IConfigurable CreateOutputObject(byte[] cookie, bool moreData)
        {
            ExTraceGlobals.BackSyncTracer.TraceDebug((long)SyncConfiguration.TraceId, "PagedOutputResultWriter.CreateOutputObject entering");
            ExTraceGlobals.BackSyncTracer.TraceDebug((long)SyncConfiguration.TraceId, "Create SyncObject list from ADPropertyBag list ...");
            List <SyncObject> list = new List <SyncObject>();

            foreach (PropertyBag propertyBag in this.entries)
            {
                ProcessorHelper.TracePropertBag("<PagedOutputResultWriter::CreateOutputObject>", propertyBag);
                list.Add(SyncObject.Create((ADPropertyBag)propertyBag));
            }
            ExTraceGlobals.BackSyncTracer.TraceDebug <int>((long)SyncConfiguration.TraceId, "SyncObject count = {0}", list.Count);
            if (this.serializeCountDelegate != null)
            {
                this.serializeCountDelegate(this.entries.Count);
            }
            ExTraceGlobals.BackSyncTracer.TraceDebug((long)SyncConfiguration.TraceId, "Create SyncData from SyncObject list ...");
            SyncData result = null;

            try
            {
                result = new SyncData(cookie, this.createResponseDelegate(list, moreData, cookie, this.currentServiceInstanceId));
                ExTraceGlobals.BackSyncTracer.TraceDebug((long)SyncConfiguration.TraceId, "SyncData created successfully");
            }
            catch (Exception ex)
            {
                ExTraceGlobals.BackSyncTracer.TraceError <string>((long)SyncConfiguration.TraceId, "Encountered exception during SyncData creation {0}", ex.ToString());
                if (this.addErrorSyncObjectDelegate == null)
                {
                    throw ex;
                }
                if (this.FindErrorSyncObjects(cookie, moreData, list) == 0)
                {
                    ExTraceGlobals.BackSyncTracer.TraceError <string>((long)SyncConfiguration.TraceId, "Didn't find SyncObject that caused the exception. Re-throw exception {0}.", ex.ToString());
                    throw ex;
                }
                ExTraceGlobals.BackSyncTracer.TraceError((long)SyncConfiguration.TraceId, "PagedOutputResultWriter.CreateOutputObject Throw DataSourceTransientException");
                throw new DataSourceTransientException(Strings.BackSyncFailedToConvertSyncObjectToDirectoryObject, ex);
            }
            return(result);
        }