private void TestJson() { string jsonStr = "{'name':'dd','array':[11,22,33],'struct':{'name2':'xxx','name3':'xxx9999'},'arrayOfArray':[[1,2,3],[4,5,6],[3]]}"; string jsonStr2 = "{'name':'dd updated','array':[11,22,33,55],'struct':{'name2':'xxx','name3':'xxx9999'},'arrayOfArray':[[1,2],[4,5,6]]}"; JObject jobject = JObject.Parse(jsonStr); JObject jobject2 = JObject.Parse(jsonStr2); CompareHandler handler = new CompareHandler(); CompareStruct compareResult = handler.CompareStruct(jobject, jobject2); string xml = compareResult.ToXML("descriptor"); //foreach (var childNode in jobject.Children()) //{ // //JValue, JArray, JObject // var property = childNode as JProperty; // string name = property.Name; // var value = property.Value; // var node = jobject[name]; // Console.WriteLine("name:" + name); // Console.WriteLine("value:" + value); //} }
protected void buttonCompare_Click(object sender, EventArgs e) { string tableName = this.textBoxTableNameSource.Text.Trim(); string sourceUrl = this.listBoxSourceEnrionment.SelectedValue; string sourceQuery = this.textBoxQuerySource.Text.Trim(); string destUrl = this.listBoxDestEnrionment.SelectedValue; string destQuery = this.textBoxQueryDest.Text.Trim(); string originalJson = this.GetJsonString(tableName, sourceQuery, sourceUrl); string newJson = this.GetJsonString(tableName, destQuery, destUrl); JObject jobject = JObject.Parse(originalJson); JObject jobject2 = JObject.Parse(newJson); CompareHandler handler = new CompareHandler(); CompareStruct compareResult = handler.CompareStruct(jobject, jobject2); string diffXML_temp = compareResult.ToXML("instance"); XmlDocument xmlDocument = new XmlDocument(); XmlElement rootElement = xmlDocument.CreateElement("model"); rootElement.InnerXml = diffXML_temp; string diffXML = rootElement.OuterXml; string xslContent = this.GetXSL(tableName); string resultHTML = this.XslTransform(diffXML, xslContent); //Show the result html to the iframe //Only the brower supports HTML5 can show it correctly. this.iframeResult.Attributes["srcdoc"] = resultHTML; }
public ResultForm() { InitializeComponent(); _compareHandler = new CompareHandler(); radioButtonFile.Checked = true; FillForms(); tabControl.SelectedIndex = 0; }
public EFCorePowerToolsPackage() { _reverseEngineerHandler = new ReverseEngineerHandler(this); _modelAnalyzerHandler = new ModelAnalyzerHandler(this); _aboutHandler = new AboutHandler(this); _dgmlNugetHandler = new DgmlNugetHandler(this); _migrationsHandler = new MigrationsHandler(this); _compareHandler = new CompareHandler(this); }
public EFCorePowerToolsPackage() { _reverseEngineerHandler = new ReverseEngineerHandler(this); _modelAnalyzerHandler = new ModelAnalyzerHandler(this); _aboutHandler = new AboutHandler(this); _dgmlNugetHandler = new DgmlNugetHandler(this); _migrationsHandler = new MigrationsHandler(this); _compareHandler = new CompareHandler(this); _extensionServices = CreateServiceProvider(); }
public void ListsShouldBeEqual() { CompareHandler compareHandler = new CompareHandler(); TestFactory factory = new TestFactory(); var menuItem = factory.GetMenuItemListOne(); var reducedMenuItemList = compareHandler.GetReduceList <MenuItem>(menuItem); Assert.AreEqual(menuItem.Count, reducedMenuItemList.Count); }
public void ShouldMatchMetaTableToQueryTable() { CompareHandler compareHandler = new CompareHandler(); TestFactory factory = new TestFactory(); var metaTable = factory.GetMetaTable(); var tableQuery = compareHandler.MapToTableQuery(metaTable, "px"); Assert.AreEqual(metaTable.Variables.Length, tableQuery.Query.Length); }
// Initializes the delegate to use for making key comparisons. private void InitializeCompareHandler() { if (comparer == null) { compareHandler = new CompareHandler(CompareWithoutComparer); } else { compareHandler = new CompareHandler(CompareWithComparer); } }
/// <summary> /// 将数组所有元素的一个属性全部取出,组成一个新的数组 /// </summary> /// <typeparam name="T">数组类型</typeparam> /// <typeparam name="Ty">数组元素中的成员类型</typeparam> /// <param name="arr">被查找的数组</param> /// <param name="cmpHdl">返回数组元素中成员类型的方法的委托</param> /// <returns>组成的新数组</returns> public static Ty[] FindWithAttr <T, Ty>(T[] arr, CompareHandler <T, Ty> cmpHdl) { Ty[] resArray = new Ty[arr.Length]; int i = 0; foreach (var item in arr) { resArray[i] = cmpHdl(item); i++; } return(resArray); }
/// <summary> /// Die Lösung ist ein Delegate. Hier wird der Methode die Logik /// zum Vergleichen als Parameter mitgegeben. Ein Stück Logik /// wird über den Parameter in die Methode gegeben und dort /// ausgeführt. /// </summary> /// <param name="handler">Die Methode welche die Vergleichslogik erhält</param> /// <param name="x"></param> /// <param name="y"></param> /// <returns></returns> private bool GreatMethodForNearlyEverything(CompareHandler handler, int x, int y) { // ... // 1000 Zeilen Code (z.B. irgendweche Vorbereitungen werden duhgeführt) // ... bool result = handler(x, y); // ... // 1000 Zeilen Code (z.B. result wird irgendwie verarbeitet) // ... return(result); }
/// <summary> /// 获取数组中给定的数组元素中成员最大的数组成员 /// </summary> /// <typeparam name="T">数组类型</typeparam> /// <typeparam name="Ty">数组元素中的成员类型</typeparam> /// <param name="arr">被查找的数组</param> /// <param name="cmpHdl">返回数组元素中成员类型的方法的委托</param> /// <returns>返回最大的数组元素</returns> public static T GetMax <T, Ty>(T[] arr, CompareHandler <T, Ty> cmpHdl) where Ty : IComparable <Ty> { T tmp = arr[0]; for (int i = 0; i < arr.Length; i++) { //使用委托取属性的值,进行比较 if (cmpHdl(arr[i]).CompareTo(cmpHdl(tmp)) > 0) { tmp = arr[i]; } } return(tmp); }
private void buttonCompare_Click(object sender, EventArgs e) { string jsonStr = textBoxOriginal.Text; string jsonStr2 = textBoxNew.Text; JObject jobject = JObject.Parse(jsonStr); JObject jobject2 = JObject.Parse(jsonStr2); CompareHandler handler = new CompareHandler(); CompareStruct compareResult = handler.CompareStruct(jobject, jobject2); string xml = compareResult.ToXML("descriptor"); textBoxResultXML.Text = xml; }
/// <summary> /// 对T类型数组按数组中的Ty类型值,由大到小降序排列 /// </summary> /// <typeparam name="T">数组类型</typeparam> /// <typeparam name="Ty">数组元素中的成员类型</typeparam> /// <param name="arr">被排序的数据</param> /// <param name="cmpHdl">返回数组元素中成员类型的方法的委托</param> public static void OrderByDes <T, Ty>(T[] arr, CompareHandler <T, Ty> cmpHdl) where Ty : IComparable <Ty> { for (int i = 0; i < arr.Length; i++) { for (int j = i + 1; j < arr.Length; j++) { //使用委托取属性的值,进行比较 if (cmpHdl(arr[i]).CompareTo(cmpHdl(arr[j])) < 0) { T tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } } } }
static void Main() { var handler = new CompareHandler(); try { //handler.CompareSavedQueryMetaPxsq(); //handler.CompareSavedQueryMetaDatabase(); //handler.Compare(); //handler.CompareApi(); Application.SetHighDpiMode(HighDpiMode.SystemAware); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new ResultForm()); } catch (Exception e) { MessageBox.Show(e.Message); } }
public CharEqualityComparer(StringComparison comparison) { Comparison = comparison; Comparer = GetComparer(); }
public PriorityQueue(CompareHandler comparer) { _comparer = comparer; this.data = new List <T>(); }
/// <summary> /// Initializes a new instance of <see cref="DelegateComparer{T}" /> class. /// </summary> /// <param name="handler"> /// The optional logic for <see cref="DelegateComparer{T}.Compare(T, T)" />. /// </param> /// <remarks> /// If <paramref name="handler" /> is <see langword="null" />, default /// logic from <see cref="Comparer{T}.Default" /> will be used. /// </remarks> public DelegateComparer(CompareHandler handler) { this._HANDLER = handler ?? Comparer <T> .Default.Compare; }
/// <summary> /// 기본 생성자 /// </summary> /// <param name="propertyName">비교할 속성 또는 필드명</param> public DynamicPropertyComparer(string propertyName) { _compare = CreateCompareHandler(propertyName); }
public Condition(CompareHandler ch, Condition.Comparator com, params object[] args) { this.ch = ch; this.com = com; this.args = args; }
public void setCompareHandler(CompareHandler ch) { this.ch = ch; }
// Initializes the delegate to use for making key comparisons. private void InitializeCompareHandler() { if(comparer == null) { compareHandler = new CompareHandler(CompareWithoutComparer); } else { compareHandler = new CompareHandler(CompareWithComparer); } }
public CommonCondition(CompareHandler ch, Condition.Type type, Condition.Comparator comparator, params object[] args) : base(type, comparator, args) { this.ch = ch; }
public PriorityQueue() { heap = new List <HeapNode <T> >(); heap.Add(null); compareHandler = defaultCompare; }
public DynamicComparer(CompareHandler <T> comparer) { ComparingMethod = comparer; }
public DelegatedComparer(CompareHandler <T> compareCallback) { _compareCallback = compareCallback; }
internal DynamicComparer(CompareHandler<T> comparer) { ComparingMethod = comparer; }
public DelegatedComparer(CompareHandler <T> compareCallback, HashCodeHandler <T> hashCodeHandler) { _compareCallback = compareCallback; _hashCodeHandler = hashCodeHandler; }
public PriorityQueue(CompareHandler compare) { compareHandler = compare; heap = new List <HeapNode <T> >(); heap.Add(null); }
public void AssertDeserialize <T>(string json, T expected, CompareHandler <T> comparer) { var cmp = new DelegatedComparer <T>(comparer); AssertDeserialize(json, expected, cmp); }