Fixed inherited test-methods in SetOperationTest. Inherited test-methods don't work in MSTest.

--- Expressions/Tests/Expressions.Linq.Tests/SetOperationTest.cs
+++ Expressions/Tests/Expressions.Linq.Tests/SetOperationTest.cs
@@ -13,9 +13,8 @@
         protected abstract INotifyEnumerable<T> Operate<T>(INotifyEnumerable<T> source, IEnumerable<T> source2);

         protected abstract INotifyEnumerable<T> Operate<T>(INotifyEnumerable<T> source, IEnumerable<T> source2, IEqualityComparer<T> comparer);
-
-        [TestMethod]
-        public void SetOperation_NoObervableSource1ItemAdded_NoUpdate()
+
+        protected void SetOperation_NoObervableSource1ItemAdded_NoUpdate()
         {
             var update = false;
             var coll1 = new List<int>() { 1, 2, 3 };
@@ -35,9 +34,8 @@

             Assert.IsFalse(update);
         }
-
-        [TestMethod]
-        public void SetOperation_ObservableSource1ItemAddedUnrelated_Update()
+
+        protected void SetOperation_ObservableSource1ItemAddedUnrelated_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
@@ -70,8 +68,7 @@
             Assert.AreEqual(test.Contains(5), shouldUpdate);
         }

-        [TestMethod]
-        public void SetOperation_ObservableSource1ItemAddedFromSource2_Update()
+        protected void SetOperation_ObservableSource1ItemAddedFromSource2_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
@@ -112,15 +109,14 @@
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(3));
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(4));
         }
-
-        [TestMethod]
-        public void SetOperation_ObservableSource2ItemAddedFromSource1_Update()
+
+        protected void SetOperation_ObservableSource2ItemAddedFromSource1_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { 2, 3, 4 };

-            var test = Operate(coll1.WithUpdates(), coll2);
+            var test = Operate(coll1.WithUpdates(), coll2.WithUpdates());

             var shouldBeContainedBefore = ShouldBeInResult(true, false);
             var shouldBeContainedAfter = ShouldBeInResult(true, true);
@@ -156,14 +152,13 @@
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4));
         }

-        [TestMethod]
-        public void SetOperation_ObservableSource2ItemAddedUnrelated_Update()
+        protected void SetOperation_ObservableSource2ItemAddedUnrelated_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { 2, 3, 4 };

-            var test = Operate(coll1.WithUpdates(), coll2);
+            var test = Operate(coll1.WithUpdates(), coll2.WithUpdates());

             var shouldUpdate = ShouldBeInResult(false, true);

@@ -189,9 +184,8 @@
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4));
             Assert.AreEqual(shouldUpdate, test.Contains(5));
         }
-
-        [TestMethod]
-        public void SetOperation_NoObervableSource1ItemRemoved_NoUpdate()
+
+        protected void SetOperation_NoObervableSource1ItemRemoved_NoUpdate()
         {
             var update = false;
             var coll1 = new List<int>() { 1, 2, 3 };
@@ -211,9 +205,8 @@

             Assert.IsFalse(update);
         }
-
-        [TestMethod]
-        public void SetOperation_ObservableSource1ItemRemovedUnrelated_Update()
+
+        protected void SetOperation_ObservableSource1ItemRemovedUnrelated_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
@@ -243,9 +236,8 @@
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(3));
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4));
         }
-
-        [TestMethod]
-        public void SetOperation_ObservableSource1ItemRemovedFromSource2_Update()
+
+        protected void SetOperation_ObservableSource1ItemRemovedFromSource2_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
@@ -273,15 +265,14 @@
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(3));
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4));
         }
-
-        [TestMethod]
-        public void SetOperation_ObservableSource2ItemRemovedFromSource1_Update()
+
+        protected void SetOperation_ObservableSource2ItemRemovedFromSource1_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { 2, 3, 4 };

-            var test = Operate(coll1.WithUpdates(), coll2);
+            var test = Operate(coll1.WithUpdates(), coll2.WithUpdates());

             var shouldBeContainedBefore = ShouldBeInResult(true, true);
             var shouldBeContainedAfter = ShouldBeInResult(true, false);
@@ -316,15 +307,14 @@
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(3));
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4));
         }
-
-        [TestMethod]
-        public void SetOperation_ObservableSource2ItemRemovedUnrelated_Update()
+
+        protected void SetOperation_ObservableSource2ItemRemovedUnrelated_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { 2, 3, 4 };

-            var test = Operate(coll1.WithUpdates(), coll2);
+            var test = Operate(coll1.WithUpdates(), coll2.WithUpdates());

             var shouldUpdate = ShouldBeInResult(false, true);

@@ -348,9 +338,8 @@
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(2));
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(3));
         }
-
-        [TestMethod]
-        public void SetOperationEqualityComparer_NoObervableSource1ItemAdded_NoUpdate()
+
+        protected void SetOperationEqualityComparer_NoObervableSource1ItemAdded_NoUpdate()
         {
             var update = false;
             var coll1 = new List<int>() { 1, 2, 3 };
@@ -370,9 +359,8 @@

             Assert.IsFalse(update);
         }
-
-        [TestMethod]
-        public void SetOperationEqualityComparer_ObservableSource1ItemAddedUnrelated_Update()
+
+        protected void SetOperationEqualityComparer_ObservableSource1ItemAddedUnrelated_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
@@ -404,9 +392,8 @@
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4, new AbsoluteValueComparer()));
             Assert.AreEqual(test.Contains(5, new AbsoluteValueComparer()), shouldUpdate);
         }
-
-        [TestMethod]
-        public void SetOperationEqualityComparer_ObservableSource1ItemAddedFromSource2_Update()
+
+        protected void SetOperationEqualityComparer_ObservableSource1ItemAddedFromSource2_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
@@ -447,15 +434,14 @@
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(3, new AbsoluteValueComparer()));
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(4, new AbsoluteValueComparer()));
         }
-
-        [TestMethod]
-        public void SetOperationEqualityComparer_ObservableSource2ItemAddedFromSource1_Update()
+
+        protected void SetOperationEqualityComparer_ObservableSource2ItemAddedFromSource1_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { -2, -3, -4 };

-            var test = Operate(coll1.WithUpdates(), coll2, new AbsoluteValueComparer());
+            var test = Operate(coll1.WithUpdates(), coll2.WithUpdates(), new AbsoluteValueComparer());

             var shouldBeContainedBefore = ShouldBeInResult(true, false);
             var shouldBeContainedAfter = ShouldBeInResult(true, true);
@@ -490,15 +476,14 @@
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(3, new AbsoluteValueComparer()));
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4, new AbsoluteValueComparer()));
         }
-
-        [TestMethod]
-        public void SetOperationEqualityComparer_ObservableSource2ItemAddedUnrelated_Update()
+
+        protected void SetOperationEqualityComparer_ObservableSource2ItemAddedUnrelated_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { -2, -3, -4 };

-            var test = Operate(coll1.WithUpdates(), coll2, new AbsoluteValueComparer());
+            var test = Operate(coll1.WithUpdates(), coll2.WithUpdates(), new AbsoluteValueComparer());

             var shouldUpdate = ShouldBeInResult(false, true);

@@ -524,9 +509,8 @@
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4, new AbsoluteValueComparer()));
             Assert.AreEqual(shouldUpdate, test.Contains(5));
         }
-
-        [TestMethod]
-        public void SetOperationEqualityComparer_NoObervableSource1ItemRemoved_NoUpdate()
+
+        protected void SetOperationEqualityComparer_NoObervableSource1ItemRemoved_NoUpdate()
         {
             var update = false;
             var coll1 = new List<int>() { 1, 2, 3 };
@@ -546,9 +530,8 @@

             Assert.IsFalse(update);
         }
-
-        [TestMethod]
-        public void SetOperationEqualityComparer_ObservableSource1ItemRemovedUnrelated_Update()
+
+        protected void SetOperationEqualityComparer_ObservableSource1ItemRemovedUnrelated_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
@@ -578,9 +561,8 @@
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(3, new AbsoluteValueComparer()));
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4, new AbsoluteValueComparer()));
         }
-
-        [TestMethod]
-        public void SetOperationEqualityComparer_ObservableSource1ItemRemovedFromSource2_Update()
+
+        protected void SetOperationEqualityComparer_ObservableSource1ItemRemovedFromSource2_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
@@ -608,15 +590,14 @@
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(3, new AbsoluteValueComparer()));
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4, new AbsoluteValueComparer()));
         }
-
-        [TestMethod]
-        public void SetOperationEqualityComparer_ObservableSource2ItemRemovedFromSource1_Update()
+
+        protected void SetOperationEqualityComparer_ObservableSource2ItemRemovedFromSource1_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { -2, -3, -4 };

-            var test = Operate(coll1.WithUpdates(), coll2, new AbsoluteValueComparer());
+            var test = Operate(coll1.WithUpdates(), coll2.WithUpdates(), new AbsoluteValueComparer());

             var shouldBeContainedBefore = ShouldBeInResult(true, true);
             var shouldBeContainedAfter = ShouldBeInResult(true, false);
@@ -651,15 +632,14 @@
             Assert.AreEqual(ShouldBeInResult(true, true), test.Contains(3, new AbsoluteValueComparer()));
             Assert.AreEqual(ShouldBeInResult(false, true), test.Contains(4, new AbsoluteValueComparer()));
         }
-
-        [TestMethod]
-        public void SetOperationEqualityComparer_ObservableSource2ItemRemovedUnrelated_Update()
+
+        protected void SetOperationEqualityComparer_ObservableSource2ItemRemovedUnrelated_Update()
         {
             var update = false;
             var coll1 = new ObservableCollection<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { -2, -3, -4 };

-            var test = Operate(coll1.WithUpdates(), coll2, new AbsoluteValueComparer());
+            var test = Operate(coll1.WithUpdates(), coll2.WithUpdates(), new AbsoluteValueComparer());

             var shouldUpdate = ShouldBeInResult(false, true);

@@ -701,6 +681,126 @@
         protected override INotifyEnumerable<T> Operate<T>(INotifyEnumerable<T> source, IEnumerable<T> source2, IEqualityComparer<T> comparer)
         {
             return source.Union(source2, comparer);
+        }
+
+        [TestMethod]
+        public void Union_NoObervableSource1ItemAdded_NoUpdate()
+        {
+            SetOperation_NoObervableSource1ItemAdded_NoUpdate();
+        }
+
+        [TestMethod]
+        public void Union_ObservableSource1ItemAddedUnrelated_Update()
+        {
+            SetOperation_ObservableSource1ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void Union_ObservableSource1ItemAddedFromSource2_Update()
+        {
+            SetOperation_ObservableSource1ItemAddedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void Union_ObservableSource2ItemAddedFromSource1_Update()
+        {
+            SetOperation_ObservableSource2ItemAddedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void Union_ObservableSource2ItemAddedUnrelated_Update()
+        {
+            SetOperation_ObservableSource2ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void Union_NoObervableSource1ItemRemoved_NoUpdate()
+        {
+            SetOperation_NoObervableSource1ItemRemoved_NoUpdate();
+        }
+
+        [TestMethod]
+        public void Union_ObservableSource1ItemRemovedUnrelated_Update()
+        {
+            SetOperation_ObservableSource1ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void Union_ObservableSource1ItemRemovedFromSource2_Update()
+        {
+            SetOperation_ObservableSource1ItemRemovedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void Union_ObservableSource2ItemRemovedFromSource1_Update()
+        {
+            SetOperation_ObservableSource2ItemRemovedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void Union_ObservableSource2ItemRemovedUnrelated_Update()
+        {
+            SetOperation_ObservableSource2ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void UnionEqualityComparer_NoObervableSource1ItemAdded_NoUpdate()
+        {
+            SetOperationEqualityComparer_NoObervableSource1ItemAdded_NoUpdate();
+        }
+
+        [TestMethod]
+        public void UnionEqualityComparer_ObservableSource1ItemAddedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void UnionEqualityComparer_ObservableSource1ItemAddedFromSource2_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemAddedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void UnionEqualityComparer_ObservableSource2ItemAddedFromSource1_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemAddedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void UnionEqualityComparer_ObservableSource2ItemAddedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void UnionEqualityComparer_NoObervableSource1ItemRemoved_NoUpdate()
+        {
+            SetOperationEqualityComparer_NoObervableSource1ItemRemoved_NoUpdate();
+        }
+
+        [TestMethod]
+        public void UnionEqualityComparer_ObservableSource1ItemRemovedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void UnionEqualityComparer_ObservableSource1ItemRemovedFromSource2_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemRemovedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void UnionEqualityComparer_ObservableSource2ItemRemovedFromSource1_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemRemovedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void UnionEqualityComparer_ObservableSource2ItemRemovedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemRemovedUnrelated_Update();
         }

         [TestMethod]
@@ -772,7 +872,7 @@
             var coll1 = new List<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { 2, 3, 4 };

-            var test = coll1.WithUpdates().Union(coll2);
+            var test = coll1.WithUpdates().Union(coll2.WithUpdates());

             test.CollectionChanged += (o, e) =>
             {
@@ -811,6 +911,126 @@
         }

         [TestMethod]
+        public void Except_NoObervableSource1ItemAdded_NoUpdate()
+        {
+            SetOperation_NoObervableSource1ItemAdded_NoUpdate();
+        }
+
+        [TestMethod]
+        public void Except_ObservableSource1ItemAddedUnrelated_Update()
+        {
+            SetOperation_ObservableSource1ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void Except_ObservableSource1ItemAddedFromSource2_Update()
+        {
+            SetOperation_ObservableSource1ItemAddedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void Except_ObservableSource2ItemAddedFromSource1_Update()
+        {
+            SetOperation_ObservableSource2ItemAddedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void Except_ObservableSource2ItemAddedUnrelated_Update()
+        {
+            SetOperation_ObservableSource2ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void Except_NoObervableSource1ItemRemoved_NoUpdate()
+        {
+            SetOperation_NoObervableSource1ItemRemoved_NoUpdate();
+        }
+
+        [TestMethod]
+        public void Except_ObservableSource1ItemRemovedUnrelated_Update()
+        {
+            SetOperation_ObservableSource1ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void Except_ObservableSource1ItemRemovedFromSource2_Update()
+        {
+            SetOperation_ObservableSource1ItemRemovedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void Except_ObservableSource2ItemRemovedFromSource1_Update()
+        {
+            SetOperation_ObservableSource2ItemRemovedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void Except_ObservableSource2ItemRemovedUnrelated_Update()
+        {
+            SetOperation_ObservableSource2ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void ExceptEqualityComparer_NoObervableSource1ItemAdded_NoUpdate()
+        {
+            SetOperationEqualityComparer_NoObervableSource1ItemAdded_NoUpdate();
+        }
+
+        [TestMethod]
+        public void ExceptEqualityComparer_ObservableSource1ItemAddedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void ExceptEqualityComparer_ObservableSource1ItemAddedFromSource2_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemAddedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void ExceptEqualityComparer_ObservableSource2ItemAddedFromSource1_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemAddedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void ExceptEqualityComparer_ObservableSource2ItemAddedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void ExceptEqualityComparer_NoObervableSource1ItemRemoved_NoUpdate()
+        {
+            SetOperationEqualityComparer_NoObervableSource1ItemRemoved_NoUpdate();
+        }
+
+        [TestMethod]
+        public void ExceptEqualityComparer_ObservableSource1ItemRemovedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void ExceptEqualityComparer_ObservableSource1ItemRemovedFromSource2_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemRemovedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void ExceptEqualityComparer_ObservableSource2ItemRemovedFromSource1_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemRemovedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void ExceptEqualityComparer_ObservableSource2ItemRemovedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
         public void Except_NoObservableSource2Reset_NoUpdate()
         {
             var update = false;
@@ -835,7 +1055,7 @@
             var coll1 = new List<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { 2, 3, 4 };

-            var test = coll1.WithUpdates().Except(coll2);
+            var test = coll1.WithUpdates().Except(coll2.WithUpdates());

             test.CollectionChanged += (o, e) =>
             {
@@ -910,6 +1130,126 @@
         }

         [TestMethod]
+        public void Intersect_NoObervableSource1ItemAdded_NoUpdate()
+        {
+            SetOperation_NoObervableSource1ItemAdded_NoUpdate();
+        }
+
+        [TestMethod]
+        public void Intersect_ObservableSource1ItemAddedUnrelated_Update()
+        {
+            SetOperation_ObservableSource1ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void Intersect_ObservableSource1ItemAddedFromSource2_Update()
+        {
+            SetOperation_ObservableSource1ItemAddedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void Intersect_ObservableSource2ItemAddedFromSource1_Update()
+        {
+            SetOperation_ObservableSource2ItemAddedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void Intersect_ObservableSource2ItemAddedUnrelated_Update()
+        {
+            SetOperation_ObservableSource2ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void Intersect_NoObervableSource1ItemRemoved_NoUpdate()
+        {
+            SetOperation_NoObervableSource1ItemRemoved_NoUpdate();
+        }
+
+        [TestMethod]
+        public void Intersect_ObservableSource1ItemRemovedUnrelated_Update()
+        {
+            SetOperation_ObservableSource1ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void Intersect_ObservableSource1ItemRemovedFromSource2_Update()
+        {
+            SetOperation_ObservableSource1ItemRemovedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void Intersect_ObservableSource2ItemRemovedFromSource1_Update()
+        {
+            SetOperation_ObservableSource2ItemRemovedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void Intersect_ObservableSource2ItemRemovedUnrelated_Update()
+        {
+            SetOperation_ObservableSource2ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void IntersectEqualityComparer_NoObervableSource1ItemAdded_NoUpdate()
+        {
+            SetOperationEqualityComparer_NoObervableSource1ItemAdded_NoUpdate();
+        }
+
+        [TestMethod]
+        public void IntersectEqualityComparer_ObservableSource1ItemAddedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void IntersectEqualityComparer_ObservableSource1ItemAddedFromSource2_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemAddedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void IntersectEqualityComparer_ObservableSource2ItemAddedFromSource1_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemAddedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void IntersectEqualityComparer_ObservableSource2ItemAddedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemAddedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void IntersectEqualityComparer_NoObervableSource1ItemRemoved_NoUpdate()
+        {
+            SetOperationEqualityComparer_NoObervableSource1ItemRemoved_NoUpdate();
+        }
+
+        [TestMethod]
+        public void IntersectEqualityComparer_ObservableSource1ItemRemovedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
+        public void IntersectEqualityComparer_ObservableSource1ItemRemovedFromSource2_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource1ItemRemovedFromSource2_Update();
+        }
+
+        [TestMethod]
+        public void IntersectEqualityComparer_ObservableSource2ItemRemovedFromSource1_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemRemovedFromSource1_Update();
+        }
+
+        [TestMethod]
+        public void IntersectEqualityComparer_ObservableSource2ItemRemovedUnrelated_Update()
+        {
+            SetOperationEqualityComparer_ObservableSource2ItemRemovedUnrelated_Update();
+        }
+
+        [TestMethod]
         public void Intersect_NoObservableSource2Reset_NoUpdate()
         {
             var update = false;
@@ -934,7 +1274,7 @@
             var coll1 = new List<int>() { 1, 2, 3 };
             var coll2 = new ObservableCollection<int>() { 2, 3, 4 };

-            var test = coll1.WithUpdates().Intersect(coll2);
+            var test = coll1.WithUpdates().Intersect(coll2.WithUpdates());

             test.CollectionChanged += (o, e) =>
             {


TestPass：Episode_CastSpell_手下加強B_TestMethod1

--- HearthStone/HearthStone.Library.Test/GameSystemTest/Test3.cs
+++ HearthStone/HearthStone.Library.Test/GameSystemTest/Test3.cs
@@ -397,7 +397,72 @@
             //玩家1出"手下加強B" 對象為敵方的手下
             //確認手牌與法力水晶變化
             //確認場上手下的攻擊與血量
-            Assert.Fail();
+            #region initial
+            Game game = GameSystemTestEnvironment.EmptyGame(1, 1);
+            var spellCards = GameSystemTestEnvironment.GameWithSpellCardRecordState(game, new List<int>
+            { 28, 28 });
+            var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List<int>
+            { 1, 1 });
+            GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, spellCards.Select(x => x.CardRecordID).ToList());
+            GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10);
+            GameSystemTestEnvironment.GameWithFieldState(game, new List<int> { servantCards[0].CardRecordID }, new List<int> { servantCards[1].CardRecordID });
+            #endregion
+
+            #region game
+            Assert.AreEqual(1, game.CurrentGamePlayerID);
+            Assert.AreEqual(1, servantCards[0].Attack);
+            Assert.AreEqual(2, servantCards[0].RemainedHealth);
+            Assert.AreEqual(2, servantCards[0].Health);
+            Assert.AreEqual(1, servantCards[1].Attack);
+            Assert.AreEqual(2, servantCards[1].RemainedHealth);
+            Assert.AreEqual(2, servantCards[1].Health);
+            #endregion
+
+            #region player1
+            Assert.AreEqual(2, game.GamePlayer1.HandCardIDs.Count());
+            Assert.AreEqual(10, game.GamePlayer1.ManaCrystal);
+            Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal);
+            #endregion
+
+            #region operations 玩家1出"手下加強B" 對象為我方的手下
+            Assert.IsTrue(game.TargetCastSpell(1, spellCards[0].CardRecordID, servantCards[0].CardRecordID, true));
+            #endregion
+
+            #region game
+            Assert.AreEqual(1, game.CurrentGamePlayerID);
+            Assert.AreEqual(5, servantCards[0].Attack);
+            Assert.AreEqual(6, servantCards[0].RemainedHealth);
+            Assert.AreEqual(6, servantCards[0].Health);
+            Assert.AreEqual(1, servantCards[1].Attack);
+            Assert.AreEqual(2, servantCards[1].RemainedHealth);
+            Assert.AreEqual(2, servantCards[1].Health);
+            #endregion
+
+            #region player1
+            Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count());
+            Assert.AreEqual(10, game.GamePlayer1.ManaCrystal);
+            Assert.AreEqual(6, game.GamePlayer1.RemainedManaCrystal);
+            #endregion
+
+            #region operations 玩家1出"手下加強B" 對象為敵方的手下
+            Assert.IsTrue(game.TargetCastSpell(1, spellCards[1].CardRecordID, servantCards[1].CardRecordID, true));
+            #endregion
+
+            #region game
+            Assert.AreEqual(1, game.CurrentGamePlayerID);
+            Assert.AreEqual(5, servantCards[0].Attack);
+            Assert.AreEqual(6, servantCards[0].RemainedHealth);
+            Assert.AreEqual(6, servantCards[0].Health);
+            Assert.AreEqual(5, servantCards[1].Attack);
+            Assert.AreEqual(6, servantCards[1].RemainedHealth);
+            Assert.AreEqual(6, servantCards[1].Health);
+            #endregion
+
+            #region player1
+            Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count());
+            Assert.AreEqual(10, game.GamePlayer1.ManaCrystal);
+            Assert.AreEqual(2, game.GamePlayer1.RemainedManaCrystal);
+            #endregion
         }
         [TestMethod]
         public void Episode_CastSpell_回血A_TestMethod1()


Removed test code

Removed test code

--- HiPMobile/HiPMobile.Droid/Activities/SplashScreenActivity.cs
+++ HiPMobile/HiPMobile.Droid/Activities/SplashScreenActivity.cs
@@ -43,11 +43,6 @@

             action = new Action(startMainActivity);

-            IoCManager.UnityContainer.RegisterType<IDataAccess, RealmDataAccess> ();
-
-            Image audio = BusinessEntitiyFactory.CreateBusinessObject<Image> ();
-            audio.Data = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 };
-
             Handler handler = new Handler();
             handler.PostDelayed (action, MStartupDelay);
         }


correct indent

correct indent

--- CoAP.Client/CoAPClient.cs
+++ CoAP.Client/CoAPClient.cs
@@ -13,6 +13,8 @@
             Boolean loop = false;
             Boolean byEvent = true;

+            args = new String[] { "GET", "coap://127.0.0.1" };
+
             if (args.Length == 0)
                 PrintUsage();

@@ -73,9 +75,9 @@
                 loop = true;
             }

-            if ("DISCOVER".Equals(method) &&
+            if ("DISCOVER".Equals(method) &&
                 (String.IsNullOrEmpty(uri.AbsolutePath) || uri.AbsolutePath.Equals("/")))
-            {
+            {
                 uri = new Uri(uri, "/.well-known/core");
             }

@@ -179,17 +181,17 @@
         private static void PrintUsage()
         {
             Console.WriteLine("CoAP.NET Example Client");
-		    Console.WriteLine();
+            Console.WriteLine();
             Console.WriteLine("Usage: CoAPClient [-e] [-l] method uri [payload]");
-		    Console.WriteLine("  method  : { GET, POST, PUT, DELETE, DISCOVER, OBSERVE }");
+            Console.WriteLine("  method  : { GET, POST, PUT, DELETE, DISCOVER, OBSERVE }");
             Console.WriteLine("  uri     : The CoAP URI of the remote endpoint or resource.");
             Console.WriteLine("  payload : The data to send with the request.");
             Console.WriteLine("Options:");
             Console.WriteLine("  -e      : Receives responses by the Responded event.");
-		    Console.WriteLine("  -l      : Loops for multiple responses.");
-		    Console.WriteLine("            (automatic for OBSERVE and separate responses)");
-		    Console.WriteLine();
-		    Console.WriteLine("Examples:");
+            Console.WriteLine("  -l      : Loops for multiple responses.");
+            Console.WriteLine("            (automatic for OBSERVE and separate responses)");
+            Console.WriteLine();
+            Console.WriteLine("Examples:");
             Console.WriteLine("  CoAPClient DISCOVER coap://localhost");
             Console.WriteLine("  CoAPClient POST coap://localhost/storage data");
             Environment.Exit(0);


Support for opening uiniversally in GTK

Support for opening uiniversally in GTK

--- Colours.Gtk/MainWindow.cs
+++ Colours.Gtk/MainWindow.cs
@@ -385,7 +385,20 @@

 	public void OpenPalette(string filename)
 	{
-		appPal.NewFromPalette (new Palette (File.ReadAllText (filename)), filename);
+		if (filename.EndsWith(".aco")) {
+			var p = AcoConverter.FromPhotoshopPalette(
+				File.ReadAllBytes(filename));
+			p.Name = System.IO.Path.GetFileNameWithoutExtension(filename);
+			appPal.NewFromPalette(p);
+		}
+		else if (filename.EndsWith(".act")) {
+			var p = ActConverter.FromTable(
+				File.ReadAllBytes(filename));
+			p.Name = System.IO.Path.GetFileNameWithoutExtension(filename);
+			appPal.NewFromPalette(p);
+		} else {
+			appPal.NewFromPalette(new Palette(File.ReadAllText(filename)), filename);
+		}
 	}

 	public bool SavePalette(bool forceDialog)


PS export dialog should use PS format

PS export dialog should use PS format

--- Colours.Gtk/MainWindow.cs
+++ Colours.Gtk/MainWindow.cs
@@ -536,8 +536,8 @@
 		FileChooserDialog fd = new FileChooserDialog ("Save palette as", this,
 			FileChooserAction.Save, "Cancel", ResponseType.Cancel, "OK", ResponseType.Ok);
 		FileFilter ff = new FileFilter ();
-		ff.Name = "GIMP Palette";
-		ff.AddPattern ("*.gpl");
+		ff.Name = "Photoshop Palette";
+		ff.AddPattern ("*.aco");
 		fd.AddFilter (ff);
 		if (fd.Run () == (int)ResponseType.Ok) {
 			File.WriteAllBytes (fd.Filename,


Guard against IP address causing infinite recursive exceptions from WCF error handler

--- Mindscape.Raygun4Net/Builders/RaygunRequestMessageBuilder.cs
+++ Mindscape.Raygun4Net/Builders/RaygunRequestMessageBuilder.cs
@@ -15,6 +15,8 @@
   {
     private static readonly Regex IpAddressRegex = new Regex(@"\A(?:\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b)(:[1-9][0-9]{0,4})?\z", RegexOptions.Compiled);

+    private static bool _accessIPAddress = true;
+
     public static RaygunRequestMessage Build(HttpRequest request, RaygunRequestMessageOptions options)
     {
       RaygunRequestMessage message = new RaygunRequestMessage();
@@ -67,38 +69,50 @@

     private static string GetIpAddress(HttpRequest request)
     {
-      var strIp = request.ServerVariables["HTTP_X_FORWARDED_FOR"];
-
-      if (strIp != null && strIp.Trim().Length > 0)
-      {
-        string[] addresses = strIp.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
-        if (addresses.Length > 0)
-        {
-          // first one = client IP per http://en.wikipedia.org/wiki/X-Forwarded-For
-          strIp = addresses[0];
-        }
-      }
-
-      if (!IsValidIpAddress(strIp))
-      {
-        strIp = string.Empty;
-      }
-
-      // if that's empty, get their ip via server vars
-      if (strIp == null || strIp.Trim().Length == 0)
-      {
-        strIp = request.ServerVariables["REMOTE_ADDR"];
-      }
-
-      if (!IsValidIpAddress(strIp))
-      {
-        strIp = string.Empty;
-      }
-
-      // if that's still empty, get their ip via .net's built-in method
-      if (strIp == null || strIp.Trim().Length == 0)
-      {
-        strIp = request.UserHostAddress;
+      string strIp = null;
+
+      if (_accessIPAddress)
+      {
+        try
+        {
+          strIp = request.ServerVariables["HTTP_X_FORWARDED_FOR"];
+
+          if (strIp != null && strIp.Trim().Length > 0)
+          {
+            string[] addresses = strIp.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
+            if (addresses.Length > 0)
+            {
+              // first one = client IP per http://en.wikipedia.org/wiki/X-Forwarded-For
+              strIp = addresses[0];
+            }
+          }
+
+          if (!IsValidIpAddress(strIp))
+          {
+            strIp = string.Empty;
+          }
+
+          // if that's empty, get their ip via server vars
+          if (strIp == null || strIp.Trim().Length == 0)
+          {
+            strIp = request.ServerVariables["REMOTE_ADDR"];
+          }
+
+          if (!IsValidIpAddress(strIp))
+          {
+            strIp = string.Empty;
+          }
+
+          // if that's still empty, get their ip via .net's built-in method
+          if (strIp == null || strIp.Trim().Length == 0)
+          {
+            strIp = request.UserHostAddress;
+          }
+        }
+        catch (Exception)
+        {
+          _accessIPAddress = false;
+        }
       }

       return strIp;


Cache DatabaseConfiguration

Cache DatabaseConfiguration

--- NezaboodkaToSql/Source/ToSqlConnector/MySqlDatabaseClient.cs
+++ NezaboodkaToSql/Source/ToSqlConnector/MySqlDatabaseClient.cs
@@ -17,6 +17,8 @@

         private readonly Dictionary<System.Type, Func<DatabaseRequest, MySqlCommand, DatabaseResponse>> _requestExec =
             new Dictionary<System.Type, Func<DatabaseRequest, MySqlCommand, DatabaseResponse>>();
+
+        private DatabaseConfiguration _currentConfiguration = null;

         // Public

@@ -740,9 +742,7 @@
             cmd.CommandType = CommandType.Text;
             cmd.CommandText = DbQueryBuilder.GetDatabaseConfigurationQuery(DatabaseName);

-            MySqlDataReader reader = cmd.ExecuteReader();
-            DatabaseConfiguration dbConfig = ReadDatabaseConfiguration(reader);
-            reader.Close();
+            DatabaseConfiguration dbConfig = CachingReadDatabaseConfigurationCmd(cmd);

             GetDatabaseConfigurationResponse result = new GetDatabaseConfigurationResponse(dbConfig);
             return result;
@@ -751,20 +751,22 @@
         private DatabaseResponse AlterDatabaseConfigurationExec(DatabaseRequest request, MySqlCommand cmd)
         {
             AlterDatabaseConfigurationRequest realRequest = request as AlterDatabaseConfigurationRequest;
+            var newConfig = realRequest.DatabaseConfiguration;

             cmd.CommandType = CommandType.Text;
-            cmd.CommandText = string.Empty;
-
-            var newConfig = realRequest.DatabaseConfiguration;
+
+            if (_currentConfiguration == null)
+            {
+                cmd.CommandText = DbQueryBuilder.GetDatabaseConfigurationQuery(DatabaseName);
+                CachingReadDatabaseConfigurationCmd(cmd);
+            }

             // !!! only writes schema --> NO MERGE
             // TODO: merge existing schema with new
-            cmd.CommandText = DbQueryBuilder.AlterDatabaseConfigurationQuery(DatabaseName, newConfig);
-            cmd.CommandText += DbQueryBuilder.GetDatabaseConfigurationQuery(DatabaseName);
-
-            MySqlDataReader reader = cmd.ExecuteReader();
-            newConfig = ReadDatabaseConfiguration(reader);
-            reader.Close();
+            cmd.CommandText = DbQueryBuilder.AlterDatabaseConfigurationQuery(DatabaseName, newConfig)
+                + DbQueryBuilder.GetDatabaseConfigurationQuery(DatabaseName);
+
+            newConfig = CachingReadDatabaseConfigurationCmd(cmd);

             var result = new AlterDatabaseConfigurationResponse()
             {
@@ -795,6 +797,17 @@
                 reader.Read();
                 result = reader.GetInt32(AdminDatabaseConst.AccessField);
             }
+            return result;
+        }
+
+        private DatabaseConfiguration CachingReadDatabaseConfigurationCmd(MySqlCommand cmd)
+        {
+            MySqlDataReader reader = cmd.ExecuteReader();
+            DatabaseConfiguration result = ReadDatabaseConfiguration(reader);
+            reader.Close();
+
+            _currentConfiguration = DatabaseConfiguration.CreateFromNdefText(result.ToNdefText());
+
             return result;
         }

@@ -855,6 +868,11 @@
                             BackReferenceFieldName = backRefName
                         };

+                        if (string.IsNullOrEmpty(fieldDef.BackReferenceFieldName))
+                        {
+                            fieldDef.BackReferenceFieldName = null;
+                        }
+
                         string ownerType = reader.GetString(SchemaFieldConst.FieldOwnerTypeName);
                         typeNameMap[ownerType].FieldDefinitions.Add(fieldDef);
                         // TODO: Catch KeyNotFoundException


debug n tags

debug n tags

--- Nodes/VVVV.DX11.Nodes/Nodes/Devices/DX11RenderContextNode.cs
+++ Nodes/VVVV.DX11.Nodes/Nodes/Devices/DX11RenderContextNode.cs
@@ -16,7 +16,7 @@

 namespace VVVV.DX11.Nodes
 {
-    [PluginInfo(Name = "Info", Category = "DX11",Version="Debug", Author = "vux", AutoEvaluate=true)]
+    [PluginInfo(Name = "Info", Category = "DX11",Version="", Author = "vux",Tags= "debug", AutoEvaluate=true)]
     public class DX11RenderContextNode : IPluginEvaluate, IDX11Queryable
     {
         [Input("Refresh",IsBang=true)]


AddKnownDataProviderTypes now uses IdentifyableName() rather than FullName

--- PART/Source/Core/Installers/Utilities/Installation.Config.cs
+++ PART/Source/Core/Installers/Utilities/Installation.Config.cs
@@ -324,7 +324,7 @@
                 type =>
                 {
                     var dic = new Dictionary<string, string>();
-                    dic["type"] = string.Format("{0}, {1}", type.FullName, type.Assembly.GetName().Name);
+                    dic["type"] = type.IdentifyableName();
                     CprBroker.Installers.Installation.AddSectionNode("add", dic, String.Format("add[contains(@type,'{0}')]", type.Name), configFilePath, "//dataProviders/knownTypes");
                 }
             );


PackageName Hashcode Bugfix #FIX: Fixed null reference exception in PackageName.GetHashCode for version-invariant names.

--- Source/Editor/DualityEditor/PackageManagement/PackageName.cs
+++ Source/Editor/DualityEditor/PackageManagement/PackageName.cs
@@ -45,9 +45,15 @@
 		{
 			unchecked
 			{
-				return
-					92357 * this.Id.GetHashCode() +
-					this.Version.GetHashCode();
+				int hashCode = (this.Id ?? string.Empty).GetHashCode();
+				if (this.Version != null)
+				{
+					hashCode = 1019 * hashCode + this.Version.Major;
+					hashCode = 1021 * hashCode + this.Version.Minor;
+					hashCode = 1031 * hashCode + this.Version.Revision;
+					hashCode = 1033 * hashCode + this.Version.Build;
+				}
+				return hashCode;
 			}
 		}
 		public override string ToString()


Updated unit tests.

Updated unit tests.

--- Source/MVVM_DialogsTest/ViewModel/MainWindowViewModelTest.cs
+++ Source/MVVM_DialogsTest/ViewModel/MainWindowViewModelTest.cs
@@ -14,9 +14,10 @@
 	[TestFixture]
 	public class MainWindowViewModelTest
 	{
-		Mock<IPersonService> personServiceMock;
-		Mock<IDialogService> dialogServiceMock;
 		private MainWindowViewModel viewModel;
+		private Mock<IDialogService> dialogServiceMock;
+		private Mock<IPersonService> personServiceMock;
+		private Mock<IOpenFileDialog> openFileDialogMock;
 		private Person person1;
 		private Person person2;

@@ -27,35 +28,35 @@
 			person1 = new Person { Name = "Some name 1", Gender = Gender.Female };
 			person2 = new Person { Name = "Some name 2", Gender = Gender.Male };

+			dialogServiceMock = new Mock<IDialogService>();
+			openFileDialogMock = new Mock<IOpenFileDialog>();
 			personServiceMock = new Mock<IPersonService>();
 			personServiceMock
 				.Setup(m => m.Load(It.IsAny<string>()))
 				.Returns(new List<Person> { person1, person2 });
-
-			dialogServiceMock = new Mock<IDialogService>();
-
-			ServiceLocator.Add<IPersonService>(personServiceMock.Object);
-			ServiceLocator.Add<IDialogService>(dialogServiceMock.Object);
 		}

 		[SetUp]
 		public void SetUp()
 		{
-			viewModel = new MainWindowViewModel();
+			viewModel = new MainWindowViewModel(
+				dialogServiceMock.Object,
+				personServiceMock.Object,
+				() => openFileDialogMock.Object);
 		}

 		[Test]
 		public void CanLoadPersonsTest()
 		{
-			// Make sure list is empty
+			// Make sure list is empty, thus making it possible to load the persons from start
 			Assert.That(viewModel.Persons, Is.Empty);
 			Assert.That(viewModel.LoadPersonsCommand.CanExecute(null), Is.True);

 			// Load persons but cancel
 			dialogServiceMock
-				.Setup(m => m.ShowOpenFileDialog(viewModel, It.IsAny<OpenFileDialogViewModel>()))
+				.Setup(m => m.ShowOpenFileDialog(viewModel, It.IsAny<IOpenFileDialog>()))
 				.Returns(DialogResult.Cancel);
 			viewModel.LoadPersonsCommand.Execute(null);
 			Assert.That(viewModel.LoadPersonsCommand.CanExecute(null), Is.True);
@@ -71,12 +72,16 @@
 		{
 			// Make sure list is empty
 			Assert.That(viewModel.Persons, Is.Empty);
-
+
 			// Loading person
 			LoadPersons();
 			Assert.That(viewModel.Persons.Count, Is.EqualTo(2));
 			Assert.That(viewModel.Persons[0].Person, Is.EqualTo(person1));
 			Assert.That(viewModel.Persons[1].Person, Is.EqualTo(person2));
+			openFileDialogMock.VerifySet(m => m.FileName);
+			openFileDialogMock.VerifySet(m => m.Filter);
+			openFileDialogMock.VerifySet(m => m.InitialDirectory);
+			openFileDialogMock.VerifySet(m => m.Title);
 		}

@@ -112,6 +117,8 @@
 				.Setup(m => m.ShowDialog<PersonDialog>(viewModel, It.IsAny<object>()))
 				.Returns(false);
 			viewModel.ShowInformationCommand.Execute(null);
+			dialogServiceMock
+				.Verify(m => m.ShowDialog<PersonDialog>(viewModel, It.IsAny<PersonDialogViewModel>()));
 		}

@@ -178,7 +185,7 @@
 		{
 			// Simulte loading persons
 			dialogServiceMock
-				.Setup(m => m.ShowOpenFileDialog(viewModel, It.IsAny<OpenFileDialogViewModel>()))
+				.Setup(m => m.ShowOpenFileDialog(viewModel, It.IsAny<IOpenFileDialog>()))
 				.Returns(DialogResult.OK);
 			viewModel.LoadPersonsCommand.Execute(null);
 		}


Added SelectIndex

Added SelectIndex

--- Sources/Silphid.Showzup/Sources/Controls/SelectionControl.cs
+++ Sources/Silphid.Showzup/Sources/Controls/SelectionControl.cs
@@ -123,6 +123,18 @@
             SelectedView.Value = view;
         }

+        public bool SelectIndex(int index)
+        {
+            var viewAtIndex = GetViewAtIndex(index);
+
+            if (viewAtIndex == null)
+                return false;
+
+            SelectedView.Value = viewAtIndex;
+
+            return true;
+        }
+
         public bool SelectFirst()
         {
             if (!HasItems)


Fix             public void AddsItselfToTelemetryInitializersToSetSessionIdForAllTelemetryTypes() unit test.

--- Src/Extensibility.Shared.Tests/SessionTelemetryModuleTest.cs
+++ Src/Extensibility.Shared.Tests/SessionTelemetryModuleTest.cs
@@ -189,7 +189,7 @@
             {
                 var module = new SessionTelemetryModule(new StubPlatform(), new StubClock());
                 var configuration = new TelemetryConfiguration();
-
+                configuration.TelemetryChannel = new InMemoryChannel();
                 module.Initialize(configuration);

                 Assert.Contains(module, configuration.TelemetryInitializers);


Update IAzureTableStorageRepository.cs

Update IAzureTableStorageRepository.cs

--- TIKSN.Core/Data/AzureStorage/IAzureTableStorageRepository.cs
+++ TIKSN.Core/Data/AzureStorage/IAzureTableStorageRepository.cs
@@ -1,4 +1,4 @@
-using Microsoft.WindowsAzure.Storage.Table;
+using Microsoft.Azure.Cosmos.Table;
 using System.Threading;
 using System.Threading.Tasks;


bugfix fpr cfd

bugfix fpr cfd

--- Utility/GlobalUtilities_Utility.cs
+++ Utility/GlobalUtilities_Utility.cs
@@ -18,7 +18,7 @@
 using System.Windows.Forms;

 /// <summary>
-/// Version: 1.5.4
+/// Version: 1.5.5
 /// -------------------------------------------------------------------------
 /// Simon Pucher 2016
 /// Christian Kovar 2016
@@ -214,7 +214,7 @@
             {
                 return (int)Math.Floor(decimal.ToDouble(MoneyExchange(maxpositionsizeincash, account.Currency, instrument.Currency)) / lastprice);
             }
-            else if (instrument.InstrumentType == InstrumentType.Stock)
+            else if (instrument.InstrumentType == InstrumentType.CFD)
             {
                 return instrument.GetDefaultQuantity();
             }


added Enum Ot3

added Enum Ot3

--- VS/CSHARP/asm-tools/OperandType.cs
+++ VS/CSHARP/asm-tools/OperandType.cs
@@ -42,6 +42,93 @@
         UNKNOWN_imm = Ot.UNKNOWN | (Ot.imm << 4),
         UNKNOWN_UNKNOWN = Ot.UNKNOWN | (Ot.UNKNOWN << 4),
     }
+    /// <summary>
+    ///  Operand Type tuple (OperandType x OperandType x OperandType)
+    /// </summary>
+    [Flags]
+    public enum Ot3 : short {
+        reg_reg_reg = Ot.reg | (Ot.reg << 4) | (Ot.reg << 8),
+        reg_mem_reg = Ot.reg | (Ot.mem << 4) | (Ot.reg << 8),
+        reg_imm_reg = Ot.reg | (Ot.imm << 4) | (Ot.reg << 8),
+        reg_UNKNOWN_reg = Ot.reg | (Ot.UNKNOWN << 4) | (Ot.reg << 8),
+
+        mem_reg_reg = Ot.mem | (Ot.reg << 4) | (Ot.reg << 8),
+        mem_mem_reg = Ot.mem | (Ot.mem << 4) | (Ot.reg << 8),
+        mem_imm_reg = Ot.mem | (Ot.imm << 4) | (Ot.reg << 8),
+        mem_UNKNOWN_reg = Ot.mem | (Ot.UNKNOWN << 4) | (Ot.reg << 8),
+
+        imm_reg_reg = Ot.imm | (Ot.reg << 4) | (Ot.reg << 8),
+        imm_mem_reg = Ot.imm | (Ot.mem << 4) | (Ot.reg << 8),
+        imm_imm_reg = Ot.imm | (Ot.imm << 4) | (Ot.reg << 8),
+        imm_UNKNOWN_reg = Ot.imm | (Ot.UNKNOWN << 4) | (Ot.reg << 8),
+
+        UNKNOWN_reg_reg = Ot.UNKNOWN | (Ot.reg << 4) | (Ot.reg << 8),
+        UNKNOWN_mem_reg = Ot.UNKNOWN | (Ot.mem << 4) | (Ot.reg << 8),
+        UNKNOWN_imm_reg = Ot.UNKNOWN | (Ot.imm << 4) | (Ot.reg << 8),
+        UNKNOWN_UNKNOWN_reg = Ot.UNKNOWN | (Ot.UNKNOWN << 4) | (Ot.reg << 8),
+        ///
+        reg_rem_mem = Ot.reg | (Ot.reg << 4) | (Ot.mem << 8),
+        reg_mem_mem = Ot.reg | (Ot.mem << 4) | (Ot.mem << 8),
+        reg_imm_mem = Ot.reg | (Ot.imm << 4) | (Ot.mem << 8),
+        reg_UNKNOWN_mem = Ot.reg | (Ot.UNKNOWN << 4) | (Ot.mem << 8),
+
+        mem_reg_mem = Ot.mem | (Ot.reg << 4) | (Ot.mem << 8),
+        mem_mem_mem = Ot.mem | (Ot.mem << 4) | (Ot.mem << 8),
+        mem_imm_mem = Ot.mem | (Ot.imm << 4) | (Ot.mem << 8),
+        mem_UNKNOWN_mem = Ot.mem | (Ot.UNKNOWN << 4) | (Ot.mem << 8),
+
+        imm_reg_mem = Ot.imm | (Ot.reg << 4) | (Ot.mem << 8),
+        imm_mem_mem = Ot.imm | (Ot.mem << 4) | (Ot.mem << 8),
+        imm_imm_mem = Ot.imm | (Ot.imm << 4) | (Ot.mem << 8),
+        imm_UNKNOWN_mem = Ot.imm | (Ot.UNKNOWN << 4) | (Ot.mem << 8),
+
+        UNKNOWN_reg_mem = Ot.UNKNOWN | (Ot.reg << 4) | (Ot.mem << 8),
+        UNKNOWN_mem_mem = Ot.UNKNOWN | (Ot.mem << 4) | (Ot.mem << 8),
+        UNKNOWN_imm_mem = Ot.UNKNOWN | (Ot.imm << 4) | (Ot.mem << 8),
+        UNKNOWN_UNKNOWN_mem = Ot.UNKNOWN | (Ot.UNKNOWN << 4) | (Ot.mem << 8),
+        ///
+        reg_reg_imm = Ot.reg | (Ot.reg << 4) | (Ot.imm << 8),
+        reg_mem_imm = Ot.reg | (Ot.mem << 4) | (Ot.imm << 8),
+        reg_imm_imm = Ot.reg | (Ot.imm << 4) | (Ot.imm << 8),
+        reg_UNKNOWN_imm = Ot.reg | (Ot.UNKNOWN << 4) | (Ot.imm << 8),
+
+        mem_reg_imm = Ot.mem | (Ot.reg << 4) | (Ot.imm << 8),
+        mem_mem_imm = Ot.mem | (Ot.mem << 4) | (Ot.imm << 8),
+        mem_imm_imm = Ot.mem | (Ot.imm << 4) | (Ot.imm << 8),
+        mem_UNKNOWN_imm = Ot.mem | (Ot.UNKNOWN << 4) | (Ot.imm << 8),
+
+        imm_reg_imm = Ot.imm | (Ot.reg << 4) | (Ot.imm << 8),
+        imm_mem_imm = Ot.imm | (Ot.mem << 4) | (Ot.imm << 8),
+        imm_imm_imm = Ot.imm | (Ot.imm << 4) | (Ot.imm << 8),
+        imm_UNKNOWN_imm = Ot.imm | (Ot.UNKNOWN << 4) | (Ot.imm << 8),
+
+        UNKNOWN_reg_imm = Ot.UNKNOWN | (Ot.reg << 4) | (Ot.imm << 8),
+        UNKNOWN_mem_imm = Ot.UNKNOWN | (Ot.mem << 4) | (Ot.imm << 8),
+        UNKNOWN_imm_imm = Ot.UNKNOWN | (Ot.imm << 4) | (Ot.imm << 8),
+        UNKNOWN_UNKNOWN_imm = Ot.UNKNOWN | (Ot.UNKNOWN << 4) | (Ot.imm << 8),
+        ///
+        reg_reg_UNKNOWN = Ot.reg | (Ot.reg << 4) | (Ot.UNKNOWN << 8),
+        reg_mem_UNKNOWN = Ot.reg | (Ot.mem << 4) | (Ot.UNKNOWN << 8),
+        reg_imm_UNKNOWN = Ot.reg | (Ot.imm << 4) | (Ot.UNKNOWN << 8),
+        reg_UNKNOWN_UNKNOWN = Ot.reg | (Ot.UNKNOWN << 4) | (Ot.UNKNOWN << 8),
+
+        mem_reg_UNKNOWN = Ot.mem | (Ot.reg << 4) | (Ot.UNKNOWN << 8),
+        mem_mem_UNKNOWN = Ot.mem | (Ot.mem << 4) | (Ot.UNKNOWN << 8),
+        mem_imm_UNKNOWN = Ot.mem | (Ot.imm << 4) | (Ot.UNKNOWN << 8),
+        mem_UNKNOWN_UNKNOWN = Ot.mem | (Ot.UNKNOWN << 4) | (Ot.UNKNOWN << 8),
+
+        imm_reg_UNKNOWN = Ot.imm | (Ot.reg << 4) | (Ot.UNKNOWN << 8),
+        imm_mem_UNKNOWN = Ot.imm | (Ot.mem << 4) | (Ot.UNKNOWN << 8),
+        imm_imm_UNKNOWN = Ot.imm | (Ot.imm << 4) | (Ot.UNKNOWN << 8),
+        imm_UNKNOWN_UNKNOWN = Ot.imm | (Ot.UNKNOWN << 4) | (Ot.UNKNOWN << 8),
+
+        UNKNOWN_reg_UNKNOWN = Ot.UNKNOWN | (Ot.reg << 4) | (Ot.UNKNOWN << 8),
+        UNKNOWN_mem_UNKNOWN = Ot.UNKNOWN | (Ot.mem << 4) | (Ot.UNKNOWN << 8),
+        UNKNOWN_imm_UNKNOWN = Ot.UNKNOWN | (Ot.imm << 4) | (Ot.UNKNOWN << 8),
+        UNKNOWN_UNKNOWN_UNKNOWN = Ot.UNKNOWN | (Ot.UNKNOWN << 4) | (Ot.UNKNOWN << 8),
+
+    }
+

     public static partial class AsmSourceTools {
         public static Tuple<Ot, Ot> splitOt(Ot2 operandTuple) {
@@ -69,5 +156,8 @@
         public static Ot2 mergeOt(Ot ot1, Ot ot2) {
             return (Ot2)(((byte)ot1) | (((byte)ot2) << 4));
         }
+        public static Ot2 mergeOt(Ot ot1, Ot ot2, Ot ot3) {
+            return (Ot2)(((byte)ot1) | (((byte)ot2) << 4) | (((byte)ot3) << 8));
+        }
     }
 }


Tests for "WebAssemblyValueType 7 not recognized" (#35)

Added a test that fails fails with the following error (to be fixed in
the next commit):
```
WebAssembly.ModuleLoadException: At offset 45: WebAssemblyValueType 7 not recognized. (Parameter 'valueType') ---> System.ArgumentOutOfRangeException: WebAssemblyValueType 7 not recognized. (Parameter 'valueType')
  Stack Trace:
      at WebAssembly.ValueTypeExtensions.ToSystemType(WebAssemblyValueType valueType) in D:\projects\dotnet-webassembly\WebAssembly\WebAsssemblyValueType.cs:line 36
   at WebAssembly.Runtime.Compile.FromBinary(Reader reader, CompilerConfiguration configuration, Type instanceContainer, Type exportContainer) in D:\projects\dotnet-webassembly\WebAssembly\Runtime\Compile.cs:line 743
   at WebAssembly.Runtime.Compile.FromBinary[TExports](Stream input, CompilerConfiguration configuration) in D:\projects\dotnet-webassembly\WebAssembly\Runtime\Compile.cs:line 105
--- End of inner exception stack trace ---
    at WebAssembly.Runtime.Compile.FromBinary[TExports](Stream input, CompilerConfiguration configuration) in D:\projects\dotnet-webassembly\WebAssembly\Runtime\Compile.cs:line 134
   at WebAssembly.Runtime.Compile.FromBinary[TExports](Stream input) in D:\projects\dotnet-webassembly\WebAssembly\Runtime\Compile.cs:line 83
   at WebAssembly.CompilerTests.Compiler_ReadGlobalSectionWhenGlobalImport() in D:\projects\dotnet-webassembly\WebAssembly.Tests\CompilerTests.cs:line 692
```

--- WebAssembly.Tests/CompilerTests.cs
+++ WebAssembly.Tests/CompilerTests.cs
@@ -1,5 +1,8 @@
 using Microsoft.VisualStudio.TestTools.UnitTesting;
 using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
 using System.Reflection;
 using System.Runtime.InteropServices;
 using WebAssembly.Instructions;
@@ -639,5 +642,60 @@
             Assert.IsNotNull(roundMemory);
             Assert.AreSame(memory, roundMemory);
         }
+
+        /// <summary>
+        /// Verifies that during compilation we read the number of globals
+        /// exactly as defined in the global section, even when there is a
+        /// global import.
+        /// See https://github.com/RyanLamansky/dotnet-webassembly/issues/35
+        /// </summary>
+        [TestMethod]
+        public void Compiler_ReadGlobalSectionWhenGlobalImport()
+        {
+            // Set up a module with a global import and a global
+            var module = new Module();
+            module.Imports.Add(new WebAssembly.Import.Global("mod", "field"));
+            module.Globals.Add(new Global
+            {
+                ContentType = WebAssemblyValueType.Int32,
+                IsMutable = false,
+                InitializerExpression = new Instruction[] { new Int32Constant(1), new End() }.ToList()
+            });
+            module.Types.Add(new WebAssemblyType
+            {
+                Returns = new[]
+                {
+                    WebAssemblyValueType.Int32,
+                },
+            });
+            module.Functions.Add(new Function { Type = 0 });
+            module.Codes.Add(new FunctionBody
+            {
+                Code = new Instruction[]
+                {
+                    new GlobalGet(0),
+                    new GlobalGet(1),
+                    new Int32Add(),
+                    new End(),
+                },
+            });
+            module.Exports.Add(new Export
+            {
+                Kind = ExternalKind.Function,
+                Index = 0,
+                Name = "fn",
+            });
+
+            using var memoryStream = new MemoryStream();
+            module.WriteToBinary(memoryStream);
+            memoryStream.Seek(0L, SeekOrigin.Begin);
+
+            var compilationResult = Compile.FromBinary<dynamic>(memoryStream);
+            var result = compilationResult.Invoke(new Dictionary<string, IDictionary<string, RuntimeImport>>
+            {
+                { "mod", new Dictionary<string, RuntimeImport> { { "field", new GlobalImport(() => 2) } } },
+            }).Exports.fn();
+            Assert.AreEqual(3, result);
+        }
     }
 }


no message

no message

--- Core/Signals/IDispatch.cs
+++ Core/Signals/IDispatch.cs
@@ -1,10 +1,5 @@
 namespace Atlas.Core.Signals
 {
-	interface IDispatchDynamic
-	{
-		bool Dispatch(params object[] items);
-	}
-
 	interface IDispatch
 	{
 		bool Dispatch();


Fix toolbar Z-order

Fix toolbar Z-order

--- osu.Framework/Testing/TestBrowser.cs
+++ osu.Framework/Testing/TestBrowser.cs
@@ -144,11 +144,6 @@
                     Padding = new MarginPadding { Left = test_list_width },
                     Children = new Drawable[]
                     {
-                        toolbar = new TestBrowserToolbar
-                        {
-                            RelativeSizeAxes = Axes.X,
-                            Height = 50,
-                        },
                         new EdgeSnappingContainer
                         {
                             SnappedEdges = Edges.Right | Edges.Bottom,
@@ -182,6 +177,11 @@
                                     },
                                 }
                             }
+                        },
+                        toolbar = new TestBrowserToolbar
+                        {
+                            RelativeSizeAxes = Axes.X,
+                            Height = 50,
                         },
                     }
                 },


Adjust icon scale of play button.

Adjust icon scale of play button.

--- osu.Game/Overlays/MusicController.cs
+++ osu.Game/Overlays/MusicController.cs
@@ -48,7 +48,7 @@

         private const float progress_height = 10;

-        private const float bottom_black_area_height = 50;
+        private const float bottom_black_area_height = 55;

         public MusicController()
         {
@@ -144,7 +144,8 @@
                                         },
                                         playButton = new Button
                                         {
-                                            Scale = new Vector2(1.3f),
+                                            Scale = new Vector2(1.4f),
+                                            IconScale = new Vector2(1.4f),
                                             Action = () =>
                                             {
                                                 if (current?.Track == null) return;
@@ -423,6 +424,12 @@

             private const float button_size = 30;

+            public Vector2 IconScale
+            {
+                get { return icon.Scale; }
+                set { icon.Scale = value; }
+            }
+
             public Button()
             {
                 AutoSizeAxes = Axes.Both;


Expose as IBindableList

Expose as IBindableList

--- osu.Game/Overlays/MusicController.cs
+++ osu.Game/Overlays/MusicController.cs
@@ -25,7 +25,9 @@
         [Resolved]
         private BeatmapManager beatmaps { get; set; }

-        public readonly BindableList<BeatmapSetInfo> BeatmapSets = new BindableList<BeatmapSetInfo>();
+        public IBindableList<BeatmapSetInfo> BeatmapSets => beatmapSets;
+
+        private readonly BindableList<BeatmapSetInfo> beatmapSets = new BindableList<BeatmapSetInfo>();

         public bool IsUserPaused { get; private set; }

@@ -47,7 +49,7 @@
         [BackgroundDependencyLoader]
         private void load()
         {
-            BeatmapSets.AddRange(beatmaps.GetAllUsableBeatmapSets().OrderBy(_ => RNG.Next()));
+            beatmapSets.AddRange(beatmaps.GetAllUsableBeatmapSets().OrderBy(_ => RNG.Next()));
             beatmaps.ItemAdded += handleBeatmapAdded;
             beatmaps.ItemRemoved += handleBeatmapRemoved;
         }
@@ -66,8 +68,8 @@
         /// <param name="index">The new position.</param>
         public void ChangeBeatmapSetPosition(BeatmapSetInfo beatmapSetInfo, int index)
         {
-            BeatmapSets.Remove(beatmapSetInfo);
-            BeatmapSets.Insert(index, beatmapSetInfo);
+            beatmapSets.Remove(beatmapSetInfo);
+            beatmapSets.Insert(index, beatmapSetInfo);
         }

         /// <summary>
@@ -76,10 +78,10 @@
         public bool IsPlaying => beatmap.Value.Track.IsRunning;

         private void handleBeatmapAdded(BeatmapSetInfo set) =>
-            Schedule(() => BeatmapSets.Add(set));
+            Schedule(() => beatmapSets.Add(set));

         private void handleBeatmapRemoved(BeatmapSetInfo set) =>
-            Schedule(() => BeatmapSets.RemoveAll(s => s.ID == set.ID));
+            Schedule(() => beatmapSets.RemoveAll(s => s.ID == set.ID));

         private ScheduledDelegate seekDelegate;


Simplify and fix incorrect seeking

Simplify and fix incorrect seeking

--- osu.Game/Screens/Edit/EditorClock.cs
+++ osu.Game/Screens/Edit/EditorClock.cs
@@ -87,15 +87,7 @@

         private void seek(int direction, bool snapped, double amount = 1)
         {
-            double current = CurrentTime;
-
-            // if a seek transform is active, use its end time instead of the reported current time.
-            var existingTransform = Transforms.OfType<TransformSeek>().FirstOrDefault();
-
-            // but only if the requested direction is in the same direction as the transform.
-            // this allows quick pivoting rather than resetting the transform for the first opposite direction movement.
-            if (existingTransform != null && Math.Sign(existingTransform.EndValue - current) == Math.Sign(direction))
-                current = existingTransform.EndValue;
+            double current = CurrentTimeAccurate;

             if (amount <= 0) throw new ArgumentException("Value should be greater than zero", nameof(amount));


Added a log line for each plan while indexing.

--- MainForm.cs
+++ MainForm.cs
@@ -197,6 +197,7 @@
                 {
                     currentRunningPlan_ = plan;
                     Invoke(new FormDelegate(PlanListViewSelectedIndexChanged), null, null);
+                    AddLogEntry(string.Format("*** Indexing {0}...", plan.FolderToBackup));
                     var result = plan.RunBackup();
                     Invoke(new PlanDelegate(SetRunResult), plan, result);
                     if (haltRun_)


Change order of statements

Change order of statements

--- MainForm.cs
+++ MainForm.cs
@@ -668,6 +668,16 @@
 				presence.Assets.LargeImageKey = type == StreamType.Jpop ? "jpop" : "kpop";
 			}

+			if (songInfo.song.albums.Length != 0 && songInfo.song.albums[0].image != null)
+			{
+				coverImage.Load(CDN_COVER + songInfo.song.albums[0].image);
+				coverImage.Visible = true;
+			}
+			else
+			{
+				coverImage.Visible = false;
+			}
+
 			if (User.LoggedIn)
 			{
 				if (heartFav)
@@ -677,16 +687,6 @@
 			else
 			{
 				picFavourite.Visible = false;
-			}
-
-			if (songInfo.song.albums.Length != 0 && songInfo.song.albums[0].image != null)
-			{
-				coverImage.Load(CDN_COVER + songInfo.song.albums[0].image);
-				coverImage.Visible = true;
-			}
-			else
-			{
-				coverImage.Visible = false;
 			}

 			if (Settings.Get<bool>(Setting.DiscordPresence))


Added Trigger event.

Added Trigger event.

--- RTPacket.cs
+++ RTPacket.cs
@@ -82,6 +82,9 @@
         EventCameraSettingsChanged,
         EventQTMShuttingDown,
         EventCaptureSaved,
+        EventReserved1,
+        EventReserved2,
+        EventTrigger,
         EventNone
     }


Updated version for NuGet

Updated version for NuGet

--- Radius/Properties/AssemblyInfo.cs
+++ Radius/Properties/AssemblyInfo.cs
@@ -32,6 +32,6 @@
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.2.0")]
-[assembly: AssemblyFileVersion("1.0.2.0")]
-[assembly: AssemblyInformationalVersion("1.0.2-alpha")]
+[assembly: AssemblyVersion("1.0.3.0")]
+[assembly: AssemblyFileVersion("1.0.3.0")]
+[assembly: AssemblyInformationalVersion("1.0.3-alpha")]


Show text and image in the designer toolbar.

--- RdlDesign/RdlDesigner.Designer.cs
+++ RdlDesign/RdlDesigner.Designer.cs
@@ -35,6 +35,7 @@
             this.tIFFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.cSVToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.excelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.dOCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.rTFDOCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.xMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.webPageHTMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -185,15 +186,14 @@
             this.label1 = new System.Windows.Forms.Label();
             this.label2 = new System.Windows.Forms.Label();
             this.panel1 = new System.Windows.Forms.Panel();
-            this.foreColorPicker1 = new fyiReporting.RdlDesign.ColorPicker();
-            this.backColorPicker1 = new fyiReporting.RdlDesign.ColorPicker();
             this.statusStrip1 = new System.Windows.Forms.StatusStrip();
             this.statusSelected = new System.Windows.Forms.ToolStripStatusLabel();
             this.toolStripStatusLabel2 = new System.Windows.Forms.ToolStripStatusLabel();
             this.statusPosition = new System.Windows.Forms.ToolStripStatusLabel();
             this.mainSP = new System.Windows.Forms.Splitter();
             this.mainProperties = new fyiReporting.RdlDesign.PropertyCtl();
-            this.dOCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.foreColorPicker1 = new fyiReporting.RdlDesign.ColorPicker();
+            this.backColorPicker1 = new fyiReporting.RdlDesign.ColorPicker();
             this.menuStrip1.SuspendLayout();
             this.mainTB.SuspendLayout();
             this.toolStrip1.SuspendLayout();
@@ -215,7 +215,7 @@
             this.helpToolStripMenuItem});
             this.menuStrip1.Location = new System.Drawing.Point(0, 0);
             this.menuStrip1.Name = "menuStrip1";
-            this.menuStrip1.Size = new System.Drawing.Size(712, 24);
+            this.menuStrip1.Size = new System.Drawing.Size(1019, 24);
             this.menuStrip1.TabIndex = 29;
             this.menuStrip1.Text = "menuStrip1";
             //
@@ -346,6 +346,13 @@
             this.excelToolStripMenuItem.Size = new System.Drawing.Size(236, 22);
             this.excelToolStripMenuItem.Text = "Excel";
             this.excelToolStripMenuItem.Click += new System.EventHandler(this.excelToolStripMenuItem_Click);
+            //
+            // dOCToolStripMenuItem
+            //
+            this.dOCToolStripMenuItem.Name = "dOCToolStripMenuItem";
+            this.dOCToolStripMenuItem.Size = new System.Drawing.Size(236, 22);
+            this.dOCToolStripMenuItem.Text = "DOC";
+            this.dOCToolStripMenuItem.Click += new System.EventHandler(this.dOCToolStripMenuItem_Click);
             //
             // rTFDOCToolStripMenuItem
             //
@@ -1224,7 +1231,7 @@
             this.ctlEditTextbox});
             this.mainTB.Location = new System.Drawing.Point(0, 24);
             this.mainTB.Name = "mainTB";
-            this.mainTB.Size = new System.Drawing.Size(712, 25);
+            this.mainTB.Size = new System.Drawing.Size(1019, 25);
             this.mainTB.TabIndex = 30;
             this.mainTB.Text = "toolStrip1";
             //
@@ -1308,23 +1315,21 @@
             // textboxToolStripButton1
             //
             this.textboxToolStripButton1.CheckOnClick = true;
-            this.textboxToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
             this.textboxToolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("textboxToolStripButton1.Image")));
             this.textboxToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.textboxToolStripButton1.Name = "textboxToolStripButton1";
-            this.textboxToolStripButton1.Size = new System.Drawing.Size(23, 22);
+            this.textboxToolStripButton1.Size = new System.Drawing.Size(71, 22);
             this.textboxToolStripButton1.Tag = "Textbox";
-            this.textboxToolStripButton1.Text = "Textbox";
+            this.textboxToolStripButton1.Text = "Text Box";
             this.textboxToolStripButton1.Click += new System.EventHandler(this.Insert_Click);
             //
             // chartToolStripButton1
             //
             this.chartToolStripButton1.CheckOnClick = true;
-            this.chartToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
             this.chartToolStripButton1.Image = global::fyiReporting.RdlDesign.Properties.Resources.chart;
             this.chartToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.chartToolStripButton1.Name = "chartToolStripButton1";
-            this.chartToolStripButton1.Size = new System.Drawing.Size(23, 22);
+            this.chartToolStripButton1.Size = new System.Drawing.Size(56, 22);
             this.chartToolStripButton1.Tag = "Chart";
             this.chartToolStripButton1.Text = "Chart";
             this.chartToolStripButton1.Click += new System.EventHandler(this.Insert_Click);
@@ -1332,11 +1337,10 @@
             // tableToolStripButton1
             //
             this.tableToolStripButton1.CheckOnClick = true;
-            this.tableToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
             this.tableToolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("tableToolStripButton1.Image")));
             this.tableToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.tableToolStripButton1.Name = "tableToolStripButton1";
-            this.tableToolStripButton1.Size = new System.Drawing.Size(23, 22);
+            this.tableToolStripButton1.Size = new System.Drawing.Size(56, 22);
             this.tableToolStripButton1.Tag = "Table";
             this.tableToolStripButton1.Text = "Table";
             this.tableToolStripButton1.Click += new System.EventHandler(this.Insert_Click);
@@ -1344,11 +1348,10 @@
             // listToolStripButton1
             //
             this.listToolStripButton1.CheckOnClick = true;
-            this.listToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
             this.listToolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("listToolStripButton1.Image")));
             this.listToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.listToolStripButton1.Name = "listToolStripButton1";
-            this.listToolStripButton1.Size = new System.Drawing.Size(23, 22);
+            this.listToolStripButton1.Size = new System.Drawing.Size(45, 22);
             this.listToolStripButton1.Tag = "List";
             this.listToolStripButton1.Text = "List";
             this.listToolStripButton1.Click += new System.EventHandler(this.Insert_Click);
@@ -1356,11 +1359,10 @@
             // imageToolStripButton1
             //
             this.imageToolStripButton1.CheckOnClick = true;
-            this.imageToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
             this.imageToolStripButton1.Image = global::fyiReporting.RdlDesign.Properties.Resources.Image;
             this.imageToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.imageToolStripButton1.Name = "imageToolStripButton1";
-            this.imageToolStripButton1.Size = new System.Drawing.Size(23, 22);
+            this.imageToolStripButton1.Size = new System.Drawing.Size(60, 22);
             this.imageToolStripButton1.Tag = "Image";
             this.imageToolStripButton1.Text = "Image";
             this.imageToolStripButton1.Click += new System.EventHandler(this.Insert_Click);
@@ -1368,11 +1370,10 @@
             // matrixToolStripButton1
             //
             this.matrixToolStripButton1.CheckOnClick = true;
-            this.matrixToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
             this.matrixToolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("matrixToolStripButton1.Image")));
             this.matrixToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.matrixToolStripButton1.Name = "matrixToolStripButton1";
-            this.matrixToolStripButton1.Size = new System.Drawing.Size(23, 22);
+            this.matrixToolStripButton1.Size = new System.Drawing.Size(60, 22);
             this.matrixToolStripButton1.Tag = "Matrix";
             this.matrixToolStripButton1.Text = "Matrix";
             this.matrixToolStripButton1.Click += new System.EventHandler(this.Insert_Click);
@@ -1380,11 +1381,10 @@
             // subreportToolStripButton1
             //
             this.subreportToolStripButton1.CheckOnClick = true;
-            this.subreportToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
             this.subreportToolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("subreportToolStripButton1.Image")));
             this.subreportToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.subreportToolStripButton1.Name = "subreportToolStripButton1";
-            this.subreportToolStripButton1.Size = new System.Drawing.Size(23, 22);
+            this.subreportToolStripButton1.Size = new System.Drawing.Size(79, 22);
             this.subreportToolStripButton1.Tag = "Subreport";
             this.subreportToolStripButton1.Text = "Subreport";
             this.subreportToolStripButton1.Click += new System.EventHandler(this.Insert_Click);
@@ -1392,11 +1392,10 @@
             // rectangleToolStripButton1
             //
             this.rectangleToolStripButton1.CheckOnClick = true;
-            this.rectangleToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
             this.rectangleToolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("rectangleToolStripButton1.Image")));
             this.rectangleToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.rectangleToolStripButton1.Name = "rectangleToolStripButton1";
-            this.rectangleToolStripButton1.Size = new System.Drawing.Size(23, 22);
+            this.rectangleToolStripButton1.Size = new System.Drawing.Size(79, 22);
             this.rectangleToolStripButton1.Tag = "Rectangle";
             this.rectangleToolStripButton1.Text = "Rectangle";
             this.rectangleToolStripButton1.Click += new System.EventHandler(this.Insert_Click);
@@ -1404,11 +1403,10 @@
             // lineToolStripButton1
             //
             this.lineToolStripButton1.CheckOnClick = true;
-            this.lineToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
             this.lineToolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("lineToolStripButton1.Image")));
             this.lineToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.lineToolStripButton1.Name = "lineToolStripButton1";
-            this.lineToolStripButton1.Size = new System.Drawing.Size(23, 22);
+            this.lineToolStripButton1.Size = new System.Drawing.Size(49, 22);
             this.lineToolStripButton1.Tag = "Line";
             this.lineToolStripButton1.Text = "Line";
             this.lineToolStripButton1.Click += new System.EventHandler(this.Insert_Click);
@@ -1456,7 +1454,7 @@
             this.TifToolStripButton2});
             this.toolStrip1.Location = new System.Drawing.Point(0, 49);
             this.toolStrip1.Name = "toolStrip1";
-            this.toolStrip1.Size = new System.Drawing.Size(712, 25);
+            this.toolStrip1.Size = new System.Drawing.Size(1019, 25);
             this.toolStrip1.TabIndex = 31;
             this.toolStrip1.Text = "toolStrip1";
             //
@@ -1709,8 +1707,58 @@
             this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
             this.panel1.Location = new System.Drawing.Point(0, 74);
             this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(712, 66);
+            this.panel1.Size = new System.Drawing.Size(1019, 66);
             this.panel1.TabIndex = 36;
+            //
+            // statusStrip1
+            //
+            this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.statusSelected,
+            this.toolStripStatusLabel2,
+            this.statusPosition});
+            this.statusStrip1.Location = new System.Drawing.Point(0, 448);
+            this.statusStrip1.Name = "statusStrip1";
+            this.statusStrip1.Size = new System.Drawing.Size(1019, 22);
+            this.statusStrip1.TabIndex = 40;
+            this.statusStrip1.Text = "statusStrip1";
+            //
+            // statusSelected
+            //
+            this.statusSelected.Name = "statusSelected";
+            this.statusSelected.Size = new System.Drawing.Size(31, 17);
+            this.statusSelected.Text = "        ";
+            this.statusSelected.ToolTipText = "Name of selected ReportItem";
+            //
+            // toolStripStatusLabel2
+            //
+            this.toolStripStatusLabel2.ForeColor = System.Drawing.Color.Gray;
+            this.toolStripStatusLabel2.Name = "toolStripStatusLabel2";
+            this.toolStripStatusLabel2.Size = new System.Drawing.Size(10, 17);
+            this.toolStripStatusLabel2.Text = "|";
+            //
+            // statusPosition
+            //
+            this.statusPosition.Name = "statusPosition";
+            this.statusPosition.Size = new System.Drawing.Size(31, 17);
+            this.statusPosition.Text = "        ";
+            this.statusPosition.ToolTipText = "Position of selected ReportItem";
+            //
+            // mainSP
+            //
+            this.mainSP.Dock = System.Windows.Forms.DockStyle.Right;
+            this.mainSP.Location = new System.Drawing.Point(776, 140);
+            this.mainSP.Name = "mainSP";
+            this.mainSP.Size = new System.Drawing.Size(3, 308);
+            this.mainSP.TabIndex = 42;
+            this.mainSP.TabStop = false;
+            //
+            // mainProperties
+            //
+            this.mainProperties.Dock = System.Windows.Forms.DockStyle.Right;
+            this.mainProperties.Location = new System.Drawing.Point(779, 140);
+            this.mainProperties.Name = "mainProperties";
+            this.mainProperties.Size = new System.Drawing.Size(240, 308);
+            this.mainProperties.TabIndex = 41;
             //
             // foreColorPicker1
             //
@@ -1721,6 +1769,146 @@
             this.foreColorPicker1.FormattingEnabled = true;
             this.foreColorPicker1.IntegralHeight = false;
             this.foreColorPicker1.Items.AddRange(new object[] {
+            "Aliceblue",
+            "Antiquewhite",
+            "Aqua",
+            "Aquamarine",
+            "Azure",
+            "Beige",
+            "Bisque",
+            "Black",
+            "Blanchedalmond",
+            "Blue",
+            "Blueviolet",
+            "Brown",
+            "Burlywood",
+            "Cadetblue",
+            "Chartreuse",
+            "Chocolate",
+            "Coral",
+            "Cornflowerblue",
+            "Cornsilk",
+            "Crimson",
+            "Cyan",
+            "Darkblue",
+            "Darkcyan",
+            "Darkgoldenrod",
+            "Darkgray",
+            "Darkgreen",
+            "Darkkhaki",
+            "Darkmagenta",
+            "Darkolivegreen",
+            "Darkorange",
+            "Darkorchid",
+            "Darkred",
+            "Darksalmon",
+            "Darkseagreen",
+            "Darkslateblue",
+            "Darkslategray",
+            "Darkturquoise",
+            "Darkviolet",
+            "Deeppink",
+            "Deepskyblue",
+            "Dimgray",
+            "Dodgerblue",
+            "Firebrick",
+            "Floralwhite",
+            "Forestgreen",
+            "Fuchsia",
+            "Gainsboro",
+            "Ghostwhite",
+            "Gold",
+            "Goldenrod",
+            "Gray",
+            "Green",
+            "Greenyellow",
+            "Honeydew",
+            "Hotpink",
+            "Indianred",
+            "Indigo",
+            "Ivory",
+            "Khaki",
+            "Lavender",
+            "Lavenderblush",
+            "Lawngreen",
+            "Lemonchiffon",
+            "Lightblue",
+            "Lightcoral",
+            "Lightcyan",
+            "Lightgoldenrodyellow",
+            "Lightgreen",
+            "Lightgrey",
+            "Lightpink",
+            "Lightsalmon",
+            "Lightseagreen",
+            "Lightskyblue",
+            "Lightslategrey",
+            "Lightsteelblue",
+            "Lightyellow",
+            "Lime",
+            "Limegreen",
+            "Linen",
+            "Magenta",
+            "Maroon",
+            "Mediumaquamarine",
+            "Mediumblue",
+            "Mediumorchid",
+            "Mediumpurple",
+            "Mediumseagreen",
+            "Mediumslateblue",
+            "Mediumspringgreen",
+            "Mediumturquoise",
+            "Mediumvioletred",
+            "Midnightblue",
+            "Mintcream",
+            "Mistyrose",
+            "Moccasin",
+            "Navajowhite",
+            "Navy",
+            "Oldlace",
+            "Olive",
+            "Olivedrab",
+            "Orange",
+            "Orangered",
+            "Orchid",
+            "Palegoldenrod",
+            "Palegreen",
+            "Paleturquoise",
+            "Palevioletred",
+            "Papayawhip",
+            "Peachpuff",
+            "Peru",
+            "Pink",
+            "Plum",
+            "Powderblue",
+            "Purple",
+            "Red",
+            "Rosybrown",
+            "Royalblue",
+            "Saddlebrown",
+            "Salmon",
+            "Sandybrown",
+            "Seagreen",
+            "Seashell",
+            "Sienna",
+            "Silver",
+            "Skyblue",
+            "Slateblue",
+            "Slategray",
+            "Snow",
+            "Springgreen",
+            "Steelblue",
+            "Tan",
+            "Teal",
+            "Thistle",
+            "Tomato",
+            "Turquoise",
+            "Violet",
+            "Wheat",
+            "White",
+            "Whitesmoke",
+            "Yellow",
+            "Yellowgreen",
             "Aliceblue",
             "Antiquewhite",
             "Aqua",
@@ -10980,6 +11168,146 @@
             this.backColorPicker1.FormattingEnabled = true;
             this.backColorPicker1.IntegralHeight = false;
             this.backColorPicker1.Items.AddRange(new object[] {
+            "Aliceblue",
+            "Antiquewhite",
+            "Aqua",
+            "Aquamarine",
+            "Azure",
+            "Beige",
+            "Bisque",
+            "Black",
+            "Blanchedalmond",
+            "Blue",
+            "Blueviolet",
+            "Brown",
+            "Burlywood",
+            "Cadetblue",
+            "Chartreuse",
+            "Chocolate",
+            "Coral",
+            "Cornflowerblue",
+            "Cornsilk",
+            "Crimson",
+            "Cyan",
+            "Darkblue",
+            "Darkcyan",
+            "Darkgoldenrod",
+            "Darkgray",
+            "Darkgreen",
+            "Darkkhaki",
+            "Darkmagenta",
+            "Darkolivegreen",
+            "Darkorange",
+            "Darkorchid",
+            "Darkred",
+            "Darksalmon",
+            "Darkseagreen",
+            "Darkslateblue",
+            "Darkslategray",
+            "Darkturquoise",
+            "Darkviolet",
+            "Deeppink",
+            "Deepskyblue",
+            "Dimgray",
+            "Dodgerblue",
+            "Firebrick",
+            "Floralwhite",
+            "Forestgreen",
+            "Fuchsia",
+            "Gainsboro",
+            "Ghostwhite",
+            "Gold",
+            "Goldenrod",
+            "Gray",
+            "Green",
+            "Greenyellow",
+            "Honeydew",
+            "Hotpink",
+            "Indianred",
+            "Indigo",
+            "Ivory",
+            "Khaki",
+            "Lavender",
+            "Lavenderblush",
+            "Lawngreen",
+            "Lemonchiffon",
+            "Lightblue",
+            "Lightcoral",
+            "Lightcyan",
+            "Lightgoldenrodyellow",
+            "Lightgreen",
+            "Lightgrey",
+            "Lightpink",
+            "Lightsalmon",
+            "Lightseagreen",
+            "Lightskyblue",
+            "Lightslategrey",
+            "Lightsteelblue",
+            "Lightyellow",
+            "Lime",
+            "Limegreen",
+            "Linen",
+            "Magenta",
+            "Maroon",
+            "Mediumaquamarine",
+            "Mediumblue",
+            "Mediumorchid",
+            "Mediumpurple",
+            "Mediumseagreen",
+            "Mediumslateblue",
+            "Mediumspringgreen",
+            "Mediumturquoise",
+            "Mediumvioletred",
+            "Midnightblue",
+            "Mintcream",
+            "Mistyrose",
+            "Moccasin",
+            "Navajowhite",
+            "Navy",
+            "Oldlace",
+            "Olive",
+            "Olivedrab",
+            "Orange",
+            "Orangered",
+            "Orchid",
+            "Palegoldenrod",
+            "Palegreen",
+            "Paleturquoise",
+            "Palevioletred",
+            "Papayawhip",
+            "Peachpuff",
+            "Peru",
+            "Pink",
+            "Plum",
+            "Powderblue",
+            "Purple",
+            "Red",
+            "Rosybrown",
+            "Royalblue",
+            "Saddlebrown",
+            "Salmon",
+            "Sandybrown",
+            "Seagreen",
+            "Seashell",
+            "Sienna",
+            "Silver",
+            "Skyblue",
+            "Slateblue",
+            "Slategray",
+            "Snow",
+            "Springgreen",
+            "Steelblue",
+            "Tan",
+            "Teal",
+            "Thistle",
+            "Tomato",
+            "Turquoise",
+            "Violet",
+            "Wheat",
+            "White",
+            "Whitesmoke",
+            "Yellow",
+            "Yellowgreen",
             "Aliceblue",
             "Antiquewhite",
             "Aqua",
@@ -20370,68 +20698,11 @@
             this.backColorPicker1.SelectedValueChanged += new System.EventHandler(this.ctlBackColor_Change);
             this.backColorPicker1.Validated += new System.EventHandler(this.ctlBackColor_Change);
             //
-            // statusStrip1
-            //
-            this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.statusSelected,
-            this.toolStripStatusLabel2,
-            this.statusPosition});
-            this.statusStrip1.Location = new System.Drawing.Point(0, 448);
-            this.statusStrip1.Name = "statusStrip1";
-            this.statusStrip1.Size = new System.Drawing.Size(712, 22);
-            this.statusStrip1.TabIndex = 40;
-            this.statusStrip1.Text = "statusStrip1";
-            //
-            // statusSelected
-            //
-            this.statusSelected.Name = "statusSelected";
-            this.statusSelected.Size = new System.Drawing.Size(31, 17);
-            this.statusSelected.Text = "        ";
-            this.statusSelected.ToolTipText = "Name of selected ReportItem";
-            //
-            // toolStripStatusLabel2
-            //
-            this.toolStripStatusLabel2.ForeColor = System.Drawing.Color.Gray;
-            this.toolStripStatusLabel2.Name = "toolStripStatusLabel2";
-            this.toolStripStatusLabel2.Size = new System.Drawing.Size(10, 17);
-            this.toolStripStatusLabel2.Text = "|";
-            //
-            // statusPosition
-            //
-            this.statusPosition.Name = "statusPosition";
-            this.statusPosition.Size = new System.Drawing.Size(31, 17);
-            this.statusPosition.Text = "        ";
-            this.statusPosition.ToolTipText = "Position of selected ReportItem";
-            //
-            // mainSP
-            //
-            this.mainSP.Dock = System.Windows.Forms.DockStyle.Right;
-            this.mainSP.Location = new System.Drawing.Point(469, 140);
-            this.mainSP.Name = "mainSP";
-            this.mainSP.Size = new System.Drawing.Size(3, 308);
-            this.mainSP.TabIndex = 42;
-            this.mainSP.TabStop = false;
-            //
-            // mainProperties
-            //
-            this.mainProperties.Dock = System.Windows.Forms.DockStyle.Right;
-            this.mainProperties.Location = new System.Drawing.Point(472, 140);
-            this.mainProperties.Name = "mainProperties";
-            this.mainProperties.Size = new System.Drawing.Size(240, 308);
-            this.mainProperties.TabIndex = 41;
-            //
-            // dOCToolStripMenuItem
-            //
-            this.dOCToolStripMenuItem.Name = "dOCToolStripMenuItem";
-            this.dOCToolStripMenuItem.Size = new System.Drawing.Size(236, 22);
-            this.dOCToolStripMenuItem.Text = "DOC";
-            this.dOCToolStripMenuItem.Click += new System.EventHandler(this.dOCToolStripMenuItem_Click);
-            //
             // RdlDesigner
             //
             this.AllowDrop = true;
             this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
-            this.ClientSize = new System.Drawing.Size(712, 470);
+            this.ClientSize = new System.Drawing.Size(1019, 470);
             this.Controls.Add(this.mainSP);
             this.Controls.Add(this.mainProperties);
             this.Controls.Add(this.statusStrip1);


made NormalizeName and DenormalizeName public

--- Core/OfficeDevPnP.Core/Extensions/TaxonomyExtensions.cs
+++ Core/OfficeDevPnP.Core/Extensions/TaxonomyExtensions.cs
@@ -1424,7 +1424,12 @@
             return items;
         }

-        private static string NormalizeName(string name)
+        /// <summary>
+        /// Normalizes a Taxonomy name
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public static string NormalizeName(string name)
         {
             if (name == null) return (string)null;
             name = TrimSpacesRegex.Replace(name, " ").Replace('&', '＆');
@@ -1436,7 +1441,12 @@
             return name;
         }

-        private static string DenormalizeName(string name)
+        /// <summary>
+        /// Denormalizes a Taxonomy name
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public static string DenormalizeName(string name)
         {
             if (name == null)
                 return (string)null;


updated the validation for moving a student to a different ceremony or chanign major.

git-tfs-id: [https://tfs.caes.ucdavis.edu:8088/tfs]$/Commencement/Trunk/Commencement;C8229

--- Commencement/Controllers/AdminController.cs
+++ Commencement/Controllers/AdminController.cs
@@ -194,8 +194,8 @@
             }
             registration.Major = major;

-            var message = ValidateMajorChange(registration, major);
-            if (!string.IsNullOrEmpty(message)) ModelState.AddModelError("Major Code", message);
+            var ceremony = Repository.OfType<Ceremony>().Queryable.Where(a => a.TermCode == TermService.GetCurrent() && a.Majors.Contains(major)).FirstOrDefault();
+            if (!CeremonyHasAvailability(ceremony, registration)) ModelState.AddModelError("Major Code", ValidateMajorChange(registration, major));

             registration.TransferValidationMessagesTo(ModelState);

@@ -231,8 +231,7 @@
             }
             registration.Ceremony = ceremony;

-            var message = ValidateAvailabilityAtCeremony(ceremony, registration);
-            if (!string.IsNullOrEmpty(message)) ModelState.AddModelError("Ceremony", message);
+            if (!CeremonyHasAvailability(ceremony, registration)) ModelState.AddModelError("Major Code", ValidateAvailabilityAtCeremony(ceremony, registration));

             registration.TransferValidationMessagesTo(ModelState);

@@ -293,10 +292,24 @@
                 if (ceremony.AvailableTickets - registration.TotalTickets > 0) message.Append("There are enough tickets to move this students major.");
                 else message.Append("There are not enough tickets to move this student to the ceremony.");

-                message.Append("Student is being moved into a different ceremony");
+                message.Append("Student will be moved into a different ceremony if you proceed.");
             }

             return message.ToString();
+        }
+
+        private bool CeremonyHasAvailability(Ceremony ceremony, Registration registration)
+        {
+            Check.Require(ceremony != null, "Ceremony is required.");
+            Check.Require(registration != null, "Registration is required.");
+
+            if (ceremony != registration.Ceremony)
+            {
+                if (ceremony.AvailableTickets - registration.TotalTickets > 0) return true;
+                return false;
+            }
+
+            return true;
         }
         #endregion


Fix for iOS

Fix for iOS

--- Realm.Shared/linq/RealmResults.cs
+++ Realm.Shared/linq/RealmResults.cs
@@ -296,7 +296,7 @@
         }

         #if __IOS__
-        [ObjCRuntime.MonoPInvokeCallback(typeof(NativeResults.NotificationCallback))]
+        [ObjCRuntime.MonoPInvokeCallback(typeof(ResultsHandle.NotificationCallback))]
         #endif
         internal static void NotificationCallback(IntPtr managedResultsHandle, PtrTo<ResultsHandle.CollectionChangeSet> changes, PtrTo<NativeException> exception)
         {


Wait at testsetup

Wait at testsetup

--- src/DotNetTor.Tests/SharedFixture.cs
+++ src/DotNetTor.Tests/SharedFixture.cs
@@ -55,6 +55,7 @@
 				while (!established)
 				{
 					established = torControl.IsCircuitEstablishedAsync().GetAwaiter().GetResult();
+					Task.Delay(1000).GetAwaiter().GetResult();
 				}
 			}
 		}


Possible small optimization

Possible small optimization

--- ComputerAlgebra/Extensions/Differentiate.cs
+++ ComputerAlgebra/Extensions/Differentiate.cs
@@ -67,7 +67,7 @@
                 return base.Visit(E);
         }

-        protected override Expression VisitSum(Sum A) { return Sum.New(A.Terms.Select(i => Visit(i)).Where(i => !i.EqualsZero())); }
+        protected override Expression VisitSum(Sum A) { return Sum.New(A.Terms.Where(i => i.DependsOn(x)).Select(i => Visit(i))); }

         protected Expression ProductRule(Expression L, IEnumerable<Expression> R)
         {


System works with bars right at the right edge of the screen

--- DaybarWPF/DaybarWPF/View/Control/EventPopupView.xaml.cs
+++ DaybarWPF/DaybarWPF/View/Control/EventPopupView.xaml.cs
@@ -12,6 +12,7 @@
 using System.Windows.Media.Animation;
 using System.Windows.Media.Imaging;
 using System.Windows.Shapes;
+using DayBar.Contract.Service;
 using DayBar.Entity.Calendars;

 namespace DaybarWPF.View.Control
@@ -22,10 +23,12 @@
     public partial class EventPopupView : Window
     {
         private EventPopupViewModel _vm;
+        private readonly IDeviceService _deviceService;
         private CalendarEntry _entry;
-        public EventPopupView(EventPopupViewModel vm)
+        public EventPopupView(EventPopupViewModel vm, IDeviceService deviceService)
         {
             _vm = vm;
+            _deviceService = deviceService;
             DataContext = _vm;

             InitializeComponent();
@@ -60,6 +63,13 @@
             this.Left = offset;
             this.Top = 15;

+            var screenWidth = _deviceService.WindowWidth;
+
+            if (offset + this.Width > screenWidth)
+            {
+                this.Left = screenWidth - this.Width - 30;
+            }
+
             var sb = this.Resources["Fader"] as Storyboard;

             sb.Begin();


database documentation

database documentation

--- src/DroneSafetyApi/Data/DbOptions.cs
+++ src/DroneSafetyApi/Data/DbOptions.cs
@@ -10,11 +10,17 @@
     /// </summary>
     public class DbOptions
     {
-
+        /// <summary>
+        /// The EndpointUri property represents the the endpoint URI of the DocumentDB database
+        /// </summary>
         public string EndpointUri { get; set; }
-
+        /// <summary>
+        /// The Key property represents the the key of the DocumentDB database
+        /// </summary>
         public string Key { get; set; }
-
+        /// <summary>
+        /// The DbName property represents the the name of the DocumentDB database
+        /// </summary>
         public string DbName { get; set; }
     }
 }