protected override void ProcessRecord() { foreach (AcmaPSObject obj in this.ExportObjects) { try { obj.Hologram.PreLoadAVPs(); CSEntryChangeXmlExport.ExportToXml(obj.Hologram, writer); MAStatistics.AddImportOperation(); } catch (Exception ex) { Console.WriteLine("Error exporting object {0}: {1}: {2}", this.currentObjectCount, obj.Hologram.ObjectID, ex.Message); } //progress.PercentComplete = Convert.ToInt32(((decimal)this.currentObjectCount / this.totalObjectCount) * 100); progress.StatusDescription = string.Format("Importing {0}/{1}... {2} ({3} objects/sec)", this.currentObjectCount, this.totalObjectCount, obj.Hologram.ObjectID, this.sampleOpsSec); progress.CurrentOperation = string.Format("Average rate: {0} objects/sec", this.averageOpsSec); progress.SecondsRemaining = this.secondsRemaining; this.WriteProgress(progress); this.currentObjectCount++; obj.Dispose(); } }
private void ProduceCSEntryChanges(ResultEnumerator results, Schema schema, CachedImportRequest request) { ParallelOptions op = new ParallelOptions(); op.CancellationToken = new CancellationToken(); request.CancellationToken = op.CancellationToken; op.MaxDegreeOfParallelism = 1; Parallel.ForEach(results, op, item => { if (op.CancellationToken.IsCancellationRequested) { return; } string objectClassName = item.ObjectClass == null ? item.DeltaObjectClassName : item.ObjectClass.Name; SchemaType type = schema.Types.FirstOrDefault(t => t.Name == objectClassName); if (type == null) { return; } CSEntryChange csentry = null; try { csentry = item.ToCSEntryChange(type); MAStatistics.AddImportOperation(); } catch (Exception ex) { MAStatistics.AddImportError(); if (csentry == null) { csentry = CSEntryChange.Create(); } if (string.IsNullOrWhiteSpace(csentry.DN)) { csentry.ErrorCodeImport = MAImportError.ImportErrorCustomStopRun; } else { csentry.ErrorCodeImport = MAImportError.ImportErrorCustomContinueRun; } csentry.ErrorName = ex.Message; csentry.ErrorDetail = ex.StackTrace; } request.Queue.Enqueue(csentry); }); request.ProducerComplete = true; }