public void Execute(TaskExecutionContext ctx) { var profileId = ctx.ScheduleTask.Alias.ToInt(); var profile = _exportProfileService.GetExportProfileById(profileId); // load provider var provider = _exportProfileService.LoadProvider(profile.ProviderSystemName); if (provider == null) { throw new SmartException(T("Admin.Common.ProviderNotLoaded", profile.ProviderSystemName.NaIfEmpty())); } // build export request var request = new DataExportRequest(profile, provider); request.ProgressValueSetter = delegate(int val, int max, string msg) { ctx.SetProgress(val, max, msg, true); }; if (ctx.Parameters.ContainsKey("SelectedIds")) { request.EntitiesToExport = ctx.Parameters["SelectedIds"] .SplitSafe(",") .Select(x => x.ToInt()) .ToList(); } // process! _exporter.Export(request, ctx.CancellationToken); }
public int GetDataCount(DataExportRequest request) { var cancellation = new CancellationTokenSource(TimeSpan.FromMinutes(5.0)); var ctx = new DataExporterContext(request, cancellation.Token, true); var unused = Init(ctx); var totalCount = ctx.RecordsPerStore.First().Value; return totalCount; }
public IList<dynamic> Preview(DataExportRequest request, int pageIndex, int? totalRecords = null) { var resultData = new List<dynamic>(); var cancellation = new CancellationTokenSource(TimeSpan.FromMinutes(5.0)); var ctx = new DataExporterContext(request, cancellation.Token, true); var unused = Init(ctx, totalRecords); if (!HasPermission(ctx)) throw new SmartException(T("Admin.AccessDenied")); using (var segmenter = CreateSegmenter(ctx, pageIndex)) { if (segmenter == null) { throw new SmartException(T("Admin.Common.UnsupportedEntityType", ctx.Request.Provider.Value.EntityType.ToString())); } while (segmenter.HasData) { segmenter.RecordPerSegmentCount = 0; while (segmenter.ReadNextSegment()) { resultData.AddRange(segmenter.CurrentSegment); } } DetachAllEntitiesAndClear(ctx); } if (ctx.Result.LastError.HasValue()) { _services.Notifier.Error(ctx.Result.LastError); } return resultData; }
public DataExportResult Export(DataExportRequest request, CancellationToken cancellationToken) { var ctx = new DataExporterContext(request, cancellationToken); ExportCoreOuter(ctx); cancellationToken.ThrowIfCancellationRequested(); return ctx.Result; }