/// <summary>
        /// Fills the AttributeTypeDescription summary dataset.
        /// </summary>
        protected void FillAttributeTypeDescriptionSummaryDiffgramDataSet()
        {
            Logger.Instance.WriteMethodEntry();

            try
            {
                var diffgramTable = this.DiffgramDataSet.Tables[0];

                var objectType = "AttributeTypeDescription";

                var changeObjects = this.GetChangedObjects(objectType);

                if (changeObjects.Count() == 0)
                {
                    this.WriteContentParagraph(string.Format(CultureInfo.CurrentUICulture, DocumenterResources.NoCustomizationsDetected, ServiceCommonDocumenter.GetObjectTypeDisplayName(objectType)));
                }
                else
                {
                    foreach (var changeObject in changeObjects)
                    {
                        this.CurrentChangeObject = changeObject;
                        var state = this.CurrentChangeObjectState;
                        var objectModificationType = state == "Create" ? DataRowState.Added : state == "Delete" ? DataRowState.Deleted : DataRowState.Modified;
                        var attributeObjectId      = this.GetAttributeChange("ObjectID");
                        var displayNameChange      = this.GetAttributeChange("DisplayName");
                        var systemNameChange       = this.GetAttributeChange("Name");
                        var dataTypeChange         = this.GetAttributeChange("DataType");
                        var descriptionChange      = this.GetAttributeChange("Description");

                        var objectId             = attributeObjectId.NewValue;
                        var objectIdOld          = attributeObjectId.OldValue;
                        var displayName          = displayNameChange.NewValue;
                        var displayNameOld       = displayNameChange.OldValue;
                        var displayNameMarkupNew = ServiceCommonDocumenter.GetJumpToBookmarkLocationMarkup(displayName, objectId, objectModificationType);
                        var displayNameMarkupOld = ServiceCommonDocumenter.GetJumpToBookmarkLocationMarkup(displayNameOld, objectIdOld, objectModificationType);
                        var systemName           = systemNameChange.NewValue;
                        var dataType             = dataTypeChange.NewValue;
                        var description          = descriptionChange.NewValue;
                        var descriptionOld       = descriptionChange.OldValue;

                        Documenter.AddRow(diffgramTable, new object[] { displayName, displayNameMarkupNew, systemName, dataType, description, objectModificationType, displayNameOld, displayNameMarkupOld, descriptionOld });
                    }

                    this.DiffgramDataSet = Documenter.SortDataSet(this.DiffgramDataSet);
                }
            }
            finally
            {
                Logger.Instance.WriteMethodExit();
            }
        }
        /// <summary>
        /// Fills the BindingDescription summary dataset.
        /// </summary>
        protected void FillBindingDescriptionSummaryDiffgramDataSet()
        {
            Logger.Instance.WriteMethodEntry();

            try
            {
                var diffgramTable = this.DiffgramDataSet.Tables[0];

                var objectType = "BindingDescription";

                var changeObjects = this.GetChangedObjects(objectType);

                if (changeObjects.Count() == 0)
                {
                    this.WriteContentParagraph(string.Format(CultureInfo.CurrentUICulture, DocumenterResources.NoCustomizationsDetected, ServiceCommonDocumenter.GetObjectTypeDisplayName(objectType)));
                }
                else
                {
                    foreach (var changeObject in changeObjects)
                    {
                        this.CurrentChangeObject = changeObject;
                        var state = this.CurrentChangeObjectState;
                        var objectModificationType     = state == "Create" ? DataRowState.Added : state == "Delete" ? DataRowState.Deleted : DataRowState.Modified;
                        var bindingDescriptionIdChange = this.GetAttributeChange("ObjectID");
                        var boundObjectTypeChange      = this.GetAttributeChange("BoundObjectType");
                        var boundAttributeTypeChange   = this.GetAttributeChange("BoundAttributeType");
                        var requiredChange             = this.GetAttributeChange("Required");

                        var boundObjectType             = boundObjectTypeChange.NewValueText;
                        var boundObjectTypeMarkup       = ServiceCommonDocumenter.GetJumpToBookmarkLocationMarkup(boundObjectType, bindingDescriptionIdChange.NewValue, objectModificationType);
                        var boundObjectTypeMarkupOld    = boundObjectTypeMarkup;
                        var boundAttributeType          = boundAttributeTypeChange.NewValueText;
                        var boundAttributeTypeId        = boundAttributeTypeChange.NewId;
                        var boundAttributeTypeMarkup    = ServiceCommonDocumenter.GetJumpToBookmarkLocationMarkup(boundAttributeType, boundAttributeTypeId, objectModificationType);
                        var boundAttributeTypeMarkupOld = boundAttributeTypeMarkup;
                        var required    = requiredChange.NewValue;
                        var oldRequired = requiredChange.OldValue;

                        Documenter.AddRow(diffgramTable, new object[] { boundObjectType, boundObjectTypeMarkup, boundAttributeType, boundAttributeTypeMarkup, required, objectModificationType, boundObjectTypeMarkupOld, boundAttributeTypeMarkupOld, oldRequired });
                    }

                    this.DiffgramDataSet = Documenter.SortDataSet(this.DiffgramDataSet);
                }
            }
            finally
            {
                Logger.Instance.WriteMethodExit();
            }
        }
        /// <summary>
        /// Processes the ObjectTypeDescription objects.
        /// </summary>
        protected void ProcessObjectTypeDescriptions()
        {
            Logger.Instance.WriteMethodEntry();

            try
            {
                var sectionTitle = "Resource Types";

                Logger.Instance.WriteInfo("Processing " + sectionTitle + ".");

                this.WriteSectionHeader(sectionTitle, 3, ConfigEnvironment.PilotAndProduction);

                var objectType = "ObjectTypeDescription";

                var changeObjects = this.GetChangedObjects(objectType);

                if (changeObjects.Count() == 0)
                {
                    this.WriteContentParagraph(string.Format(CultureInfo.CurrentUICulture, DocumenterResources.NoCustomizationsDetected, ServiceCommonDocumenter.GetObjectTypeDisplayName(objectType)));
                }
                else
                {
                    foreach (var changeObject in changeObjects)
                    {
                        this.CurrentChangeObject = changeObject;
                        this.ProcessObjectTypeDescription();
                    }
                }
            }
            finally
            {
                Logger.Instance.WriteMethodExit();
            }
        }