/// <summary>
        /// Compares two <see cref="IRowViewModelBase{Thing}"/> of the same type
        /// </summary>
        /// <param name="x">The First <see cref="IRowViewModelBase{Thing}"/></param>
        /// <param name="y">The second <see cref="IRowViewModelBase{Thing}"/></param>
        /// <param name="type">The actual Type</param>
        /// <returns>
        /// Less than zero : x is "lower" than y
        /// Zero: x "equals" y.
        /// Greater than zero: x is "greater" than y.
        /// </returns>
        private int CompareSameType(IRowViewModelBase <Thing> x, IRowViewModelBase <Thing> y, Type type)
        {
            if (typeof(ParameterOrOverrideBaseRowViewModel).IsAssignableFrom(type))
            {
                var comparer = new ParameterBaseComparer();
                return(comparer.Compare((ParameterBase)x.Thing, (ParameterBase)y.Thing));
            }

            var groupComparer = new ParameterGroupComparer();

            return(groupComparer.Compare((ParameterGroup)x.Thing, (ParameterGroup)y.Thing));
        }
        public void TestComparer()
        {
            var para1 = new ParameterGroup {
                Name = "type1"
            };
            var para2 = new ParameterGroup {
                Name = "type5"
            };

            var comparer = new ParameterGroupComparer();

            Assert.AreEqual(-4, comparer.Compare(para1, para2));
        }
Esempio n. 3
0
        /// <summary>
        /// Compares two <see cref="IRowViewModelBase{Thing}"/> of the same type
        /// </summary>
        /// <param name="x">The First <see cref="IRowViewModelBase{Thing}"/></param>
        /// <param name="y">The second <see cref="IRowViewModelBase{Thing}"/></param>
        /// <param name="type">The actual Type</param>
        /// <returns>
        /// Less than zero : x is "lower" than y
        /// Zero: x "equals" y.
        /// Greater than zero: x is "greater" than y.
        /// </returns>
        private int CompareSameType(IRowViewModelBase <Thing> x, IRowViewModelBase <Thing> y, Type type)
        {
            if (type == typeof(ParameterRowViewModel))
            {
                var comparer = new ParameterBaseComparer();
                return(comparer.Compare((ParameterBase)x.Thing, (ParameterBase)y.Thing));
            }

            if (type == typeof(ParameterGroupRowViewModel))
            {
                var comparer = new ParameterGroupComparer();
                return(comparer.Compare((ParameterGroup)x.Thing, (ParameterGroup)y.Thing));
            }

            var usageComparer = new ElementUsageComparer();

            return(usageComparer.Compare((ElementUsage)x.Thing, (ElementUsage)y.Thing));
        }
Esempio n. 4
0
        /// <summary>
        /// Compares two <see cref="IRowViewModelBase{Thing}"/> of the same type
        /// </summary>
        /// <param name="x">The First <see cref="IRowViewModelBase{Thing}"/></param>
        /// <param name="y">The second <see cref="IRowViewModelBase{Thing}"/></param>
        /// <param name="type">The actual Type</param>
        /// <returns>
        /// Less than zero : x is "lower" than y
        /// Zero: x "equals" y.
        /// Greater than zero: x is "greater" than y.
        /// </returns>
        private int CompareSameType(IRowViewModelBase <Thing> x, IRowViewModelBase <Thing> y, Type type)
        {
            if (typeof(ParameterOrOverrideBaseRowViewModel).IsAssignableFrom(type) || typeof(ParameterSubscriptionRowViewModel).IsAssignableFrom(type))
            {
                var comparer = new ParameterBaseComparer();
                return(comparer.Compare((ParameterBase)x.Thing, (ParameterBase)y.Thing));
            }

            if (typeof(ParameterGroupRowViewModel).IsAssignableFrom(type))
            {
                var comparer = new ParameterGroupComparer();
                return(comparer.Compare((ParameterGroup)x.Thing, (ParameterGroup)y.Thing));
            }

            var usageComparer = new ElementUsageComparer();

            return(usageComparer.Compare((ElementUsage)x.Thing, (ElementUsage)y.Thing));
        }