Ejemplo n.º 1
0
        public void Execute()
        {
            var tableMappings = new TableMappings.TableMappings();

            DeleteExtraneousStagingRows();
            DoParallelProcessing(tableMappings);
            DeleteOrphanedEventInstances(tableMappings);
        }
Ejemplo n.º 2
0
        private void DoParallelProcessing(TableMappings.TableMappings tableMappings)
        {
            _caches = new FixupCaches(_connectionString, _timeoutSecs, tableMappings);

            var pOptions = new ParallelOptions {
                MaxDegreeOfParallelism = _maxDegreeOfParallelism
            };

            Parallel.ForEach(tableMappings, pOptions, (tableMapping, loopState) =>
            {
                if (!loopState.IsExceptional)
                {
                    TransformStagingTable(tableMapping, loopState);
                }
            });
        }
Ejemplo n.º 3
0
        private void DeleteOrphanedEventInstances(TableMappings.TableMappings tableMappings)
        {
            // if events have been deleted we need to remove rows from tables where those events
            // had previously been expanded into event instances...
            var pOptions = new ParallelOptions {
                MaxDegreeOfParallelism = _maxDegreeOfParallelism
            };

            Parallel.ForEach(tableMappings, pOptions, (tableMapping, loopState) =>
            {
                if (!loopState.IsExceptional)
                {
                    var pt = (PublicTable)tableMapping.PublicTable;

                    var colMappings = pt.GetColumnMappingsFromStage(_configuration);
                    if (colMappings.EventExpansionRequired)
                    {
                        pt.DeleteOrphanedEventInstances(_connectionString, _timeoutSecs);
                    }
                }
            });
        }