/// <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)); }
/// <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)); }
/// <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)); }