Exemple #1
0
        /// <summary>
        /// Remove IshField entries that by preferring ishvaluetype id over element over value
        /// </summary>
        private IshFields RemoveDuplicateFields(IshFields ishFields)
        {
            if (ishFields == null || (ishFields.Count() == 0))
            {
                return(new IshFields());
            }
            // Initialize using the Id fields
            IshFields returnIshFields = new IshFields(ishFields.Fields().Where(f => f.ValueType == Enumerations.ValueType.Id).ToArray());

            // Add the fields having ishvaluetype Element, if not already specified as Id
            foreach (var ishField in ishFields.Fields().Where(f => f.ValueType == Enumerations.ValueType.Element))
            {
                if (!returnIshFields.Fields().Any(f => f.Name == ishField.Name && f.Level == ishField.Level))
                {
                    returnIshFields.AddField(ishField);
                }
            }
            // Add the fields having ishvaluetype Value, if not already specified as Id or Element
            foreach (var ishField in ishFields.Fields().Where(f => f.ValueType == Enumerations.ValueType.Value))
            {
                if (!returnIshFields.Fields().Any(f => f.Name == ishField.Name && f.Level == ishField.Level))
                {
                    returnIshFields.AddField(ishField);
                }
            }
            return(returnIshFields);
        }