Example #1
0
        public int Export(DateTime to, IPublisher publisher)
        {
            OnExportStarted();
            try
            {
                var events           = LoadEventsToExport(to);
                var numEvents        = EstimateNumberEventsToExport();
                var upe              = _profileEventGenerator.CreateEvent();
                var progressReporter = CreateProgressReporter(numEvents);

                var    lastEventNumber  = 0;
                Action progressCallback = () =>
                {
                    lastEventNumber++;
                    progressReporter(lastEventNumber);
                };

                if (numEvents > 0)
                {
                    publisher.Publish(upe, events, progressCallback);
                }

                return(lastEventNumber);
            }
            finally
            {
                OnExportEnded();
            }
        }