protected void FillSynchronizationRuleGeneralInfoDiffgramDataSet()

in src/MIMConfigDocumenter/MIMServicePolicyDocumenter.cs [2336:2386]


        protected void FillSynchronizationRuleGeneralInfoDiffgramDataSet()
        {
            Logger.Instance.WriteMethodEntry();

            try
            {
                this.AddSimpleMultivalueOrderedRows("Resource Type", this.GetAttributeChange("ObjectType"));
                this.AddSimpleMultivalueOrderedRows("Display Name", this.GetAttributeChange("DisplayName"));
                this.AddSimpleMultivalueOrderedRows("Description", this.GetAttributeChange("Description"));
                this.AddSimpleMultivalueOrderedRows("Dependency", this.GetAttributeChange("Dependency"));

                var flowTypeChange = this.GetAttributeChange("FlowType");
                foreach (var attributeValue in flowTypeChange.AttributeValues)
                {
                    attributeValue.NewValue = (attributeValue.NewValue == "0") ? "Inbound" : (attributeValue.NewValue == "1") ? "Outbound" : (attributeValue.NewValue == "2") ? "Inbound and Outbound" : attributeValue.NewValue;
                    attributeValue.OldValue = (attributeValue.OldValue == "0") ? "Inbound" : (attributeValue.OldValue == "1") ? "Outbound" : (attributeValue.OldValue == "2") ? "Inbound and Outbound" : attributeValue.OldValue;
                }

                this.AddSimpleMultivalueOrderedRows("Data Flow Direction", flowTypeChange);

                var outboundRuleIsFilterBasedChange = this.GetAttributeChange("msidmOutboundIsFilterBased");
                foreach (var attributeValueChange in outboundRuleIsFilterBasedChange.AttributeValues)
                {
                    if (!string.IsNullOrEmpty(attributeValueChange.NewValue) && flowTypeChange.NewValue != "Inbound")
                    {
                        attributeValueChange.NewValue = attributeValueChange.NewValue.Equals("False", StringComparison.OrdinalIgnoreCase) ? "Policy-based Outbound Synchronization" : "Filter-based Outbound Synchronization";
                    }
                    else
                    {
                        attributeValueChange.NewValue = string.Empty;
                    }

                    if (!string.IsNullOrEmpty(attributeValueChange.OldValue) && flowTypeChange.OldValue != "Inbound")
                    {
                        attributeValueChange.OldValue = attributeValueChange.OldValue.Equals("False", StringComparison.OrdinalIgnoreCase) ? "Policy-based Outbound Synchronization" : "Filter-based Outbound Synchronization";
                    }
                    else
                    {
                        attributeValueChange.OldValue = string.Empty;
                    }
                }

                this.AddSimpleMultivalueOrderedRows("Apply Rule", outboundRuleIsFilterBasedChange);

                this.DiffgramDataSet = Documenter.SortDataSet(this.DiffgramDataSet);
            }
            finally
            {
                Logger.Instance.WriteMethodExit();
            }
        }