public void SetCompareDefinition(CompareDefinition cd) { if (cd.ReferenceIsInfo) { SetReference(delegate { return(new MasterAssembly(cd.ReferencePath)); }); } else { SetReference(delegate { return(new CecilAssembly(cd.ReferencePath)); }); } if (cd.TargetIsInfo) { SetTarget(delegate { return(new MasterAssembly(cd.TargetPath)); }); } else { SetTarget(delegate { return(new CecilAssembly(cd.TargetPath)); }); } }
protected virtual void OnCustomActivated(object sender, System.EventArgs e) { CustomCompare cc = new CustomCompare(); ResponseType code = (ResponseType)cc.Run(); if (code == ResponseType.None) { return; } if (code == ResponseType.Ok) { CompareDefinition cd = cc.GetCompare(); if (cd != null) { SetCompareDefinition(cd); StartCompare(delegate { Title = cd.ToString(); }); Config.AddRecent(cd); Config.Save(); info_manager.PopulateRecent(); } } cc.Destroy(); }
public void ComparePaths(string reference, string target) { var cd = new CompareDefinition(false, reference, false, target); SetCompareDefinition(cd); StartCompare(delegate { Title = cd.ToString(); }); Config.AddRecent(cd); Config.Save(); info_manager.PopulateRecent(); }
public XElement SerializeCompareDefinition(CompareDefinition compareDef) { XElement xCompareDef = new XElement("comparedefinition", new XElement("comparefields", compareDef.CompareFields.Select(cmd => new XElement("field", new XAttribute("name1", cmd.Name1), new XAttribute("comparer", cmd.FuzzyComparer.Name), new XAttribute("weight", cmd.Weight) ) )), new XElement("stopfields", compareDef.StopFields.Select(cmd => new XElement("field", new XAttribute("name1", cmd.Name1) ) )), new XElement("aggregator", new XAttribute("name", compareDef.Aggregator.Name) ) ); return(xCompareDef); }
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); } }
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); }
private CompareDefinition GenerateDefaultCompareDefinition(DataTable table1, DataTable table2) { var compareDefinition = new CompareDefinition(); // take all fields var fields1 = table1.Columns .Cast <DataColumn>() .Select(x => x.ColumnName) .ToList(); var fields2 = table2.Columns .Cast <DataColumn>() .Select(x => x.ColumnName) .ToList(); for (int i = 0; i < fields1.Count; i++) { compareDefinition.CompareFields.Add(new CompareField(fields1[i], fields2[i])); } return(compareDefinition); }