Exemplo n.º 1
0
        /// <summary>
        /// Collects an id from a Compare Difference Value
        /// </summary>
        /// <param name="ids">Id collection to push to</param>
        /// <param name="value">Compare Difference Value</param>
        /// <param name="valueType">Value Type to collect</param>
        private void CollectId(List <string> ids, CompareDifferenceValue value, CompareDifferenceValue.ValueResolveType valueType)
        {
            if (value == null || value.ResolveType != valueType)
            {
                return;
            }

            ids.Add(value.Value);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Collects ids to resolve
        /// </summary>
        /// <param name="differences">Differences to collect from</param>
        /// <param name="valueType">Value type to collect</param>
        /// <returns>Ids</returns>
        private List <string> CollectIds(List <CompareDifference> differences, CompareDifferenceValue.ValueResolveType valueType)
        {
            List <string> ids = new List <string>();

            if (differences == null)
            {
                return(ids);
            }

            foreach (CompareDifference curDifference in differences)
            {
                CollectId(ids, curDifference.Name, valueType);
                CollectId(ids, curDifference.NewValue, valueType);
                CollectId(ids, curDifference.OldValue, valueType);
                ids.AddRange(CollectIds(curDifference.SubDifferences, valueType));
            }

            return(ids);
        }
        /// <summary>
        /// Fills a single item name
        /// </summary>
        /// <param name="value">Value to fill</param>
        /// <param name="objectLookup">Dictionary to get object names from</param>
        /// <param name="objectType">Object type to resolve</param>
        /// <param name="deletedMessage">Message used if object was deleted</param>
        private void FillSingleObjectName(CompareDifferenceValue value, Dictionary <string, string> objectLookup, CompareDifferenceValue.ValueResolveType objectType, string deletedMessage)
        {
            if (value == null || value.ResolveType != objectType)
            {
                return;
            }

            if (objectLookup.ContainsKey(value.Value))
            {
                value.Value = objectLookup[value.Value];
            }
            else
            {
                value.Value = _localizer[deletedMessage];
            }
        }
        /// <summary>
        /// Fills object names
        /// </summary>
        /// <param name="differences">Differences to fill</param>
        /// <param name="objectLookup">Dictionary to get object names from</param>
        /// <param name="objectType">Object type to resolve</param>
        /// <param name="deletedMessage">Message used if object was deleted</param>
        private void FillObjectNames(List <CompareDifference> differences, Dictionary <string, string> objectLookup, CompareDifferenceValue.ValueResolveType objectType, string deletedMessage)
        {
            if (differences == null)
            {
                return;
            }

            foreach (CompareDifference curDifference in differences)
            {
                FillSingleObjectName(curDifference.Name, objectLookup, objectType, deletedMessage);
                FillSingleObjectName(curDifference.NewValue, objectLookup, objectType, deletedMessage);
                FillSingleObjectName(curDifference.OldValue, objectLookup, objectType, deletedMessage);
                FillObjectNames(curDifference.SubDifferences, objectLookup, objectType, deletedMessage);
            }
        }