Net.Sf.Dbdeploy.PrettyPrinter.Format C# (CSharp) Method

Format() public method

public Format ( IEnumerable changes ) : string
changes IEnumerable
return string
        public string Format(IEnumerable<UniqueChange> changes)
        {
            var changeList = changes.ToList();
            if (!changeList.Any())
            {
                return "  (none)";
            }

            StringBuilder builder = new StringBuilder();

            int? lastRangeStart = null;
            int? lastNumber;

            var changesByFolder = changeList.GroupBy(c => c.Folder).ToList();
            bool isFirst;
            foreach (var group in changesByFolder)
            {
                AppendFolder(builder, group.Key);

                isFirst = true;
                lastNumber = null;
                foreach (var thisNumber in group.Select(c => c.ScriptNumber))
                {
                    if (!lastNumber.HasValue)
                    {
                        // first in loop
                        lastNumber = thisNumber;
                        lastRangeStart = thisNumber;
                    }
                    else if (thisNumber == lastNumber + 1)
                    {
                        // continuation of current range
                        lastNumber = thisNumber;
                    }
                    else
                    {
                        // doesn't fit into last range - so output the old range and
                        // start a new one
                        AppendRange(builder, lastRangeStart.Value, lastNumber.Value, isFirst);
                        isFirst = false;
                        lastNumber = thisNumber;
                        lastRangeStart = thisNumber;
                    }
                }

                this.AppendRange(builder, lastRangeStart.Value, lastNumber.Value, isFirst);
            }

            return builder.ToString();
        }

Usage Example

Beispiel #1
0
        public void ProcessDoChangeScripts(Int64 lastChangeToApply, List <Int64> appliedChanges)
        {
            if (lastChangeToApply != Int64.MaxValue)
            {
                Info("Only applying changes up and including change script #" + lastChangeToApply);
            }
            Info("Changes currently applied to database:\n  " + prettyPrinter.Format(appliedChanges));

            List <ChangeScript> doChangeScripts = changeScriptRepository.GetOrderedListOfDoChangeScripts();

            Info("Scripts available:\n  " + prettyPrinter.FormatChangeScriptList(doChangeScripts));

            changeScriptExecuter.ApplyDeltaFragmentHeaderOrFooterSql(schemaManager.GenerateVersionCheck());
            List <Int64> changesToApply = LoopThruDoScripts(lastChangeToApply, doChangeScripts, appliedChanges);

            Info("To be applied:\n  " + prettyPrinter.Format(changesToApply));
        }
All Usage Examples Of Net.Sf.Dbdeploy.PrettyPrinter::Format