示例#1
0
 public MyOrderOfMappingTestFilter()
 {
     Id = new CompareField <int>()
     {
         SortMode     = SortMode.Desc,
         SortPriority = 1
     };
 }
示例#2
0
 public MyOrderFilter()
 {
     Id = new CompareField <int>()
     {
         SortMode     = SortMode.Desc,
         CompareMode  = CompareMode.Equal,
         SortPriority = 10,
         FilterSwitch = FilterSwitch.Close
     };
 }
        public CompareDefinition DeserializeCompareDefinition(XElement xCompareDef)
        {
            try
            {
                var compareDef = new CompareDefinition();

                if (xCompareDef == null)
                {
                    return(compareDef);
                }

                // CompareFields
                foreach (XElement xField in xCompareDef.Element("comparefields").Elements())
                {
                    // Name
                    CompareField compareField = new CompareField();
                    compareField.Name1 = xField.Attribute(XName.Get("name1")).Value;

                    // Weight
                    compareField.Weight = (float)xField.Attribute(XName.Get("weight"));

                    // Comparer
                    string comparerName = xField.Attribute(XName.Get("comparer")).Value;

                    if (!string.IsNullOrEmpty(comparerName))
                    {
                        compareField.FuzzyComparer = StringFuzzyComparerFactory.GetInstance(comparerName);
                    }

                    compareDef.CompareFields.Add(compareField);
                }

                // Aggregator
                string aggregatorName = xCompareDef.Element("aggregator")
                                        .Attribute(XName.Get("name"))
                                        .Value;

                compareDef.Aggregator = AggregatorFactory.GetInstance(aggregatorName);

                return(compareDef);
            }
            catch (Exception ex)
            {
                throw new ArgumentException("Fehler in " + this.GetType().FullName + " Method: [" + System.Reflection.MethodBase.GetCurrentMethod() + "] Data: " + xCompareDef.ToString(), ex);
            }
        }
示例#4
0
        private CompareDefinitionGroup GenerateCompareDefinitionGroup(object obj1)
        {
            var compareDefinitionGroup = new CompareDefinitionGroup();

            // read atrribute on Class
            var matchingAttr = obj1.GetType().GetCustomAttributes(typeof(MatchingAttribute), false).FirstOrDefault() as MatchingAttribute;

            if (matchingAttr != null)
            {
                compareDefinitionGroup.Aggregator = (Aggregator)Activator.CreateInstance(matchingAttr.Aggregator);
            }

            foreach (var prop in obj1.GetType().GetProperties())
            {
                var fieldAttr = prop.GetCustomAttributes(typeof(MatchingFieldAttribute), false).FirstOrDefault() as MatchingFieldAttribute;
                if (fieldAttr != null)
                {
                    // CompareDefinition
                    var compareDef = compareDefinitionGroup.CompareDefinitions.FirstOrDefault(x => x.Name == fieldAttr.CompareDefinition);
                    if (compareDef == null)
                    {
                        compareDef = new CompareDefinition()
                        {
                            Name = fieldAttr.CompareDefinition
                        };

                        compareDefinitionGroup.CompareDefinitions.Add(compareDef);
                    }

                    // CompareField
                    var compareField = compareDef.CompareFields.FirstOrDefault(x => x.Name1 == prop.Name);
                    if (compareField == null)
                    {
                        compareField = new CompareField()
                        {
                            Name1         = prop.Name,
                            Name2         = prop.Name,
                            FuzzyComparer = (StringFuzzyComparer)Activator.CreateInstance(fieldAttr.FuzzyComparer)
                        };
                        compareDef.CompareFields.Add(compareField);
                    }
                }
            }
            return(compareDefinitionGroup);
        }
示例#5
0
 public static void SetCompareKey(CompareField CompareKey)
 {
     // Change the comparison field
     m_CompareField = CompareKey;
 }
示例#6
0
 static Customer()
 {
     // Set the default compare field
     m_CompareField = CompareField.Name;
 }