Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 3
0
 public ResultForm()
 {
     InitializeComponent();
     _compareHandler         = new CompareHandler();
     radioButtonFile.Checked = true;
     FillForms();
     tabControl.SelectedIndex = 0;
 }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 8
0
 // Initializes the delegate to use for making key comparisons.
 private void InitializeCompareHandler()
 {
     if (comparer == null)
     {
         compareHandler = new CompareHandler(CompareWithoutComparer);
     }
     else
     {
         compareHandler = new CompareHandler(CompareWithComparer);
     }
 }
Ejemplo n.º 9
0
    /// <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);
    }
Ejemplo n.º 10
0
        /// <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);
        }
Ejemplo n.º 11
0
    /// <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);
    }
Ejemplo n.º 12
0
        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;
        }
Ejemplo n.º 13
0
 /// <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;
             }
         }
     }
 }
Ejemplo n.º 14
0
        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);
            }
        }
Ejemplo n.º 15
0
 public CharEqualityComparer(StringComparison comparison)
 {
     Comparison = comparison;
     Comparer   = GetComparer();
 }
 public PriorityQueue(CompareHandler comparer)
 {
     _comparer = comparer;
     this.data = new List <T>();
 }
Ejemplo n.º 17
0
 /// <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;
 }
Ejemplo n.º 18
0
 /// <summary>
 /// 기본 생성자
 /// </summary>
 /// <param name="propertyName">비교할 속성 또는 필드명</param>
 public DynamicPropertyComparer(string propertyName)
 {
     _compare = CreateCompareHandler(propertyName);
 }
Ejemplo n.º 19
0
 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;
 }
Ejemplo n.º 21
0
 // 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;
 }
Ejemplo n.º 23
0
 public PriorityQueue()
 {
     heap = new List <HeapNode <T> >();
     heap.Add(null);
     compareHandler = defaultCompare;
 }
Ejemplo n.º 24
0
 public DynamicComparer(CompareHandler <T> comparer)
 {
     ComparingMethod = comparer;
 }
Ejemplo n.º 25
0
 public DelegatedComparer(CompareHandler <T> compareCallback)
 {
     _compareCallback = compareCallback;
 }
Ejemplo n.º 26
0
 internal DynamicComparer(CompareHandler<T> comparer) {
     ComparingMethod = comparer;
 }
Ejemplo n.º 27
0
 public DelegatedComparer(CompareHandler <T> compareCallback, HashCodeHandler <T> hashCodeHandler)
 {
     _compareCallback = compareCallback;
     _hashCodeHandler = hashCodeHandler;
 }
Ejemplo n.º 28
0
 public PriorityQueue(CompareHandler compare)
 {
     compareHandler = compare;
     heap           = new List <HeapNode <T> >();
     heap.Add(null);
 }
Ejemplo n.º 29
0
        public void AssertDeserialize <T>(string json, T expected, CompareHandler <T> comparer)
        {
            var cmp = new DelegatedComparer <T>(comparer);

            AssertDeserialize(json, expected, cmp);
        }