//test - removed

//test - removed

--- ExamPreparation/84.WormsWorldParty/WormsWorldParty.cs
+++ ExamPreparation/84.WormsWorldParty/WormsWorldParty.cs
@@ -3,7 +3,7 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-//test
+
 namespace _84.WormsWorldParty
 {
     class WormsWorldParty


Changed WindowsSqliteConnectionFactory to support platforms different from Windows (e.g. dotNet console application on OS X).

--- SQLite-PCL/MvvmCross.Plugins.Sqlite.Wpf/WindowsSqliteConnectionFactory.cs
+++ SQLite-PCL/MvvmCross.Plugins.Sqlite.Wpf/WindowsSqliteConnectionFactory.cs
@@ -1,17 +1,17 @@
 using SQLite.Net.Interop;
-using SQLite.Net.Platform.Win32;
+using SQLite.Net.Platform.Generic;
 using System;
 using System.IO;

 namespace MvvmCross.Plugins.Sqlite.Wpf
-{
-    public class WindowsSqliteConnectionFactory : MvxSqliteConnectionFactoryBase
-    {
-        public override ISQLitePlatform CurrentPlattform => new SQLitePlatformWin32();
+{
+    public class WindowsSqliteConnectionFactory : MvxSqliteConnectionFactoryBase
+    {
+		public override ISQLitePlatform CurrentPlattform => new SQLitePlatformGeneric();

-        public override string GetPlattformDatabasePath(string databaseName)
-        {
-            return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), databaseName);
-        }
+        public override string GetPlattformDatabasePath(string databaseName)
+        {
+            return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), databaseName);
+        }
     }
 }


adjusted Internal native domain names fo several PGSQL type mappings

git-svn-id: 1b52f0a7ed2a8098cb721f3b9b4408691a7bfc16@1009 c93b7781-d36b-0e4d-be4f-9d94f2a838be

--- Libraries/PGSQLDevice/Source/Device.PGSQL/PostgreSQLTypes.cs
+++ Libraries/PGSQLDevice/Source/Device.PGSQL/PostgreSQLTypes.cs
@@ -54,7 +54,7 @@

 		protected override string InternalNativeDomainName(MetaData AMetaData)
 		{
-			return "bit";
+			return "boolean";
 		}
 	}

@@ -88,7 +88,7 @@

 		protected override string InternalNativeDomainName(MetaData AMetaData)
 		{
-			return "tinyint";
+            return "smallint";
 		}
 	}

@@ -302,7 +302,7 @@

 		protected override string InternalNativeDomainName(MetaData AMetaData)
 		{
-			return "uniqueidentifier";
+			return "uuid";
 		}
 	}

@@ -353,7 +353,7 @@

 		protected override string InternalNativeDomainName(MetaData AMetaData)
 		{
-			return "image";
+            return "oid";
 		}
 	}

@@ -395,7 +395,7 @@

 		protected override string InternalNativeDomainName(MetaData AMetaData)
 		{
-            return String.Format("BYTEA({0})", GetLength(AMetaData)); // todo: what about varbiniary?
+            return String.Format("bytea({0})", GetLength(AMetaData));
 		}
 	}


fix: Null Annotation

fix: Null Annotation

--- samples/RenderDemo/Pages/TextFormatterPage.axaml.cs
+++ samples/RenderDemo/Pages/TextFormatterPage.axaml.cs
@@ -78,7 +78,7 @@
                 _defaultProperties = defaultProperties;
             }

-            public TextRun? GetTextRun(int textSourceIndex)
+            public TextRun GetTextRun(int textSourceIndex)
             {
                 if (textSourceIndex >= _text.Length * 2 + TextRun.DefaultTextSourceLength)
                 {
@@ -107,7 +107,7 @@
             public Control Control => _control;
             public override Size Size => _control.DesiredSize;
             public override double Baseline => 0;
-            public override TextRunProperties? Properties { get; }
+            public override TextRunProperties Properties { get; }

             public override void Draw(DrawingContext drawingContext, Point origin)
             {


Updated ViewModel to dynamic page title, meta description based on selected product family app name e.g conversion

--- LiveDemos/src/Aspose.Words.Live.Demos.UI/Models/ViewModel.cs
+++ LiveDemos/src/Aspose.Words.Live.Demos.UI/Models/ViewModel.cs
@@ -292,11 +292,11 @@

 		private void SetTitles()
 		{
-			PageTitle = Resources[Product + AppName + "PageTitle"];
-			MetaDescription = Resources[Product + AppName + "MetaDescription"];
+			PageTitle = Resources[ProductAppName + "PageTitle"];
+			MetaDescription = Resources[ProductAppName + "MetaDescription"];
 			MetaKeywords = "";
-			Title = Resources[Product + AppName + "Title"];
-			TitleSub = Resources[Product + AppName + "SubTitle"];
+			Title = Resources[ProductAppName + "Title"];
+			TitleSub = Resources[ProductAppName + "SubTitle"];
 			Controller.ViewBag.CanonicalTag = null;
 		}


XMLRunFactory: Mark GetImageFromElement as static

--- LiveSplit/LiveSplit.Core/Model/RunFactories/XMLRunFactory.cs
+++ LiveSplit/LiveSplit.Core/Model/RunFactories/XMLRunFactory.cs
@@ -18,7 +18,7 @@
             FilePath = filePath;
         }

-        private Image GetImageFromElement(XmlElement element)
+        private static Image GetImageFromElement(XmlElement element)
         {
             if (!element.IsEmpty)
             {


Fix rotation in TeleportToPosition handling

--- src/Booma.Proxy.Client.Unity.GladMMO/Interop/Handlers/Incoming/Command/Movement/InteropSub60TeleportToPositionCommandHandler.cs
+++ src/Booma.Proxy.Client.Unity.GladMMO/Interop/Handlers/Incoming/Command/Movement/InteropSub60TeleportToPositionCommandHandler.cs
@@ -32,7 +32,7 @@
 			Vector3 position = UnitScaler.Scale(command.Position);

 			//TODO: Set position in GladMMO
-			WorldTransformMappable[entityGuid] = new GladMMO.WorldTransform(position.x, position.y, position.z, UnitScaler.ScaleYRotation(command.Identifier));
+			WorldTransformMappable[entityGuid] = new GladMMO.WorldTransform(position.x, position.y, position.z, UnitScaler.ScaleYRotation(180));
 		}
 	}
 }


removed old code

removed old code

--- XPlat/Google.Grpc/build.cake
+++ XPlat/Google.Grpc/build.cake
@@ -42,90 +42,6 @@
 string ARTIFACT_FILE = "";
 string NUGET_VERSION=$"{ARTIFACT_VERSION}";

-
-BuildSpec buildSpec = new BuildSpec ()
-{
-	Libs = new ISolutionBuilder []
-	{
-		new DefaultSolutionBuilder
-		{
-			SolutionPath = "./source/Xamarin.Grpc.sln",
-			OutputFiles = new []
-			{
-				new OutputFileCopy
-				{
-					FromFile = "./source/Xamarin.Grpc.Core.Bindings.XamarinAndroid/bin/Release/monoandroid81/Xamarin.Grpc.Core.dll"
-				},
-				new OutputFileCopy
-				{
-					FromFile = $"source/Xamarin.Grpc.Core.Bindings.XamarinAndroid/bin/Release/Xamarin.Grpc.Core.{NUGET_VERSION}.nupkg"
-				},
-
-				new OutputFileCopy
-				{
-					FromFile = "./source/Xamarin.Grpc.Api.Bindings.XamarinAndroid/bin/Release/monoandroid81/Xamarin.Grpc.Api.dll"
-				},
-				new OutputFileCopy
-				{
-					FromFile = $"source/Xamarin.Grpc.Api.Bindings.XamarinAndroid/bin/Release/Xamarin.Grpc.Api.{NUGET_VERSION}.nupkg"
-				},
-
-				new OutputFileCopy
-				{
-					FromFile = "./source/Xamarin.Grpc.Android.Bindings.XamarinAndroid/bin/Release/monoandroid81/Xamarin.Grpc.Android.dll"
-				},
-				new OutputFileCopy
-				{
-					FromFile = $"source/Xamarin.Grpc.Android.Bindings.XamarinAndroid/bin/Release/Xamarin.Grpc.Android.{NUGET_VERSION}.nupkg"
-				},
-
-				new OutputFileCopy
-				{
-					FromFile = "./source/Xamarin.Grpc.Stub.Bindings.XamarinAndroid/bin/Release/monoandroid81/Xamarin.Grpc.Stub.dll"
-				},
-				new OutputFileCopy
-				{
-					FromFile = $"source/Xamarin.Grpc.Stub.Bindings.XamarinAndroid/bin/Release/Xamarin.Grpc.Stub.{NUGET_VERSION}.nupkg"
-				},
-
-				new OutputFileCopy
-				{
-					FromFile = "./source/Xamarin.Grpc.Protobuf.Lite.Bindings.XamarinAndroid/bin/Release/monoandroid81/Xamarin.Grpc.Protobuf.Lite.dll"
-				},
-				new OutputFileCopy
-				{
-					FromFile = $"source/Xamarin.Grpc.Protobuf.Lite.Bindings.XamarinAndroid/bin/Release/Xamarin.Grpc.Protobuf.Lite.{NUGET_VERSION}.nupkg"
-				},
-
-				new OutputFileCopy
-				{
-					FromFile = "./source/Xamarin.Grpc.OkHttp.Bindings.XamarinAndroid/bin/Release/monoandroid81/Xamarin.Grpc.OkHttp.dll"
-				},
-				new OutputFileCopy
-				{
-					FromFile = $"source/Xamarin.Grpc.OkHttp.Bindings.XamarinAndroid/bin/Release/Xamarin.Grpc.OkHttp.{NUGET_VERSION}.nupkg"
-				},
-
-				new OutputFileCopy
-				{
-					FromFile = "./source/Xamarin.Grpc.Context.Bindings.XamarinAndroid/bin/Release/monoandroid81/Xamarin.Grpc.Context.dll"
-				},
-				new OutputFileCopy
-				{
-					FromFile = $"source/Xamarin.Grpc.Context.Bindings.XamarinAndroid/bin/Release/Xamarin.Grpc.Context.{NUGET_VERSION}.nupkg"
-				},
-			}
-		}
-	},
-
-	Samples = new ISolutionBuilder []
-	{
-		new DefaultSolutionBuilder
-		{
-			SolutionPath = "./samples/Xamarin.Grpc.sln"
-		},
-	},
-};

 Task ("externals")
 	.Does


Changed root address.

Changed root address.

--- Source/Jekov.Nevix/Desktop/Jekov.Nevix.Desktop.Common/PersisterManager.cs
+++ Source/Jekov.Nevix/Desktop/Jekov.Nevix.Desktop.Common/PersisterManager.cs
@@ -9,7 +9,7 @@

     public class PersisterManager
     {
-        private const string RootAddress = "http://localhost:53000/api/";
+        private const string RootAddress = "http://localhost:50906/api/";
         private const string HttpPost = "POST";
         private const string HttpPut = "PUT";


Get the test names correct...

Get the test names correct...

--- Source/LibWhipLruTests/Cache/TestAssetLocalStorageLmdb_Ctor3NoLruPurge.cs
+++ Source/LibWhipLruTests/Cache/TestAssetLocalStorageLmdb_Ctor3NoLruPurge.cs
@@ -77,7 +77,7 @@
 		#region Store Asset

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_StoreAsset_AssetOnDiskImmediately() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_StoreAsset_AssetOnDiskImmediately() {
 			var asset = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -87,7 +87,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_StoreAsset_ContainsImmediately() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_StoreAsset_ContainsImmediately() {
 			var asset = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -97,7 +97,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_StoreAsset_DoesntThrow() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_StoreAsset_DoesntThrow() {
 			var asset = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -106,12 +106,12 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_StoreAsset_Null_ArgumentNullException() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_StoreAsset_Null_ArgumentNullException() {
 			Assert.Throws<ArgumentNullException>(() => _localStorage.StoreAsset(null));
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_StoreAsset_EmpyId_ArgumentException() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_StoreAsset_EmpyId_ArgumentException() {
 			var asset = new StratusAsset {
 				Id = Guid.Empty,
 			};
@@ -124,12 +124,12 @@
 		#region PurgeAll

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_Null_EmptyLocalStorage_DoesntThrow() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_Null_EmptyLocalStorage_DoesntThrow() {
 			Assert.DoesNotThrow(() => _localStorage.PurgeAll(null));
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_Null_NonEmptyLocalStorage_DoesntThrow() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_Null_NonEmptyLocalStorage_DoesntThrow() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -139,7 +139,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_Null_NonEmptyLocalStorage_RemovesDiskEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_Null_NonEmptyLocalStorage_RemovesDiskEntry() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -150,7 +150,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_Null_NonEmptyLocalStorage_RemovesMemoryEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_Null_NonEmptyLocalStorage_RemovesMemoryEntry() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -162,12 +162,12 @@

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_EmptyList_EmptyLocalStorage_DoesntThrow() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_EmptyList_EmptyLocalStorage_DoesntThrow() {
 			Assert.DoesNotThrow(() => _localStorage.PurgeAll(new List<AssetFilter>{ }));
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_EmptyList_NonEmptyLocalStorage_DoesntThrow() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_EmptyList_NonEmptyLocalStorage_DoesntThrow() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -177,7 +177,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_EmptyList_NonEmptyLocalStorage_RemovesDiskEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_EmptyList_NonEmptyLocalStorage_RemovesDiskEntry() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -188,7 +188,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_EmptyList_NonEmptyLocalStorage_RemovesMemoryEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_EmptyList_NonEmptyLocalStorage_RemovesMemoryEntry() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -200,7 +200,7 @@

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_SingleFilter_EmptyLocalStorage_DoesntThrow() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_SingleFilter_EmptyLocalStorage_DoesntThrow() {
 			Assert.DoesNotThrow(() => _localStorage.PurgeAll(new List<AssetFilter> {
 				new AssetFilter {
 					LocalFilter = true,
@@ -209,7 +209,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_SingleFilter_Match_NonEmptyLocalStorage_DoesntThrow() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_SingleFilter_Match_NonEmptyLocalStorage_DoesntThrow() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 				Local = true,
@@ -224,7 +224,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_SingleFilter_Match_NonEmptyLocalStorage_RemovesDiskEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_SingleFilter_Match_NonEmptyLocalStorage_RemovesDiskEntry() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 				Local = true,
@@ -241,7 +241,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_SingleFilter_Match_NonEmptyLocalStorage_RemovesMemoryEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_SingleFilter_Match_NonEmptyLocalStorage_RemovesMemoryEntry() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 				Local = true,
@@ -258,7 +258,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_SingleFilter_Nonmatch_NonEmptyLocalStorage_DoesntThrow() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_SingleFilter_Nonmatch_NonEmptyLocalStorage_DoesntThrow() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 				Local = false,
@@ -273,7 +273,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_SingleFilter_Nonmatch_NonEmptyLocalStorage_DoesntRemoveDiskEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_SingleFilter_Nonmatch_NonEmptyLocalStorage_DoesntRemoveDiskEntry() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 				Local = false,
@@ -290,7 +290,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_SingleFilter_Nonmatch_NonEmptyLocalStorage_DoesntRemoveMemoryEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_SingleFilter_Nonmatch_NonEmptyLocalStorage_DoesntRemoveMemoryEntry() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 				Local = false,
@@ -307,7 +307,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_PurgeAll_SingleFilter_OneMatch_OneNonmatch_Correct() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_PurgeAll_SingleFilter_OneMatch_OneNonmatch_Correct() {
 			var assetTest1 = new StratusAsset {
 				Id = Guid.NewGuid(),
 				Local = true,
@@ -334,17 +334,17 @@
 		#region Purge

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_Purge_EmpyId_ArgumentException() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_Purge_EmpyId_ArgumentException() {
 			Assert.Throws<ArgumentException>(() => _localStorage.Purge(Guid.Empty));
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_Purge_Unknown_AssetNotFoundException() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_Purge_Unknown_AssetNotFoundException() {
 			Assert.Throws<AssetNotFoundException>(() => _localStorage.Purge(Guid.NewGuid()));
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_Purge_Known_DoesntThrow() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_Purge_Known_DoesntThrow() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -355,7 +355,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_Purge_NonEmptyLocalStorage_RemovesDiskEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_Purge_NonEmptyLocalStorage_RemovesDiskEntry() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -368,7 +368,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_Purge_NonEmptyLocalStorage_RemovesMemoryEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_Purge_NonEmptyLocalStorage_RemovesMemoryEntry() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -381,7 +381,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_Purge_NonEmptyLocalStorage_LeavesOtherDiskEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_Purge_NonEmptyLocalStorage_LeavesOtherDiskEntry() {
 			var assetTest1 = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -398,7 +398,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_Purge_NonEmptyLocalStorage_LeavesOtherMemoryEntry() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_Purge_NonEmptyLocalStorage_LeavesOtherMemoryEntry() {
 			var assetTest1 = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -419,23 +419,23 @@
 		#region TryGetAsset

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_TryGetAsset_EmpyId_ArgumentException() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_TryGetAsset_EmpyId_ArgumentException() {
 			Assert.Throws<ArgumentException>(() => _localStorage.TryGetAsset(Guid.Empty, out var assetResult));
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_TryGetAsset_Unknown_False() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_TryGetAsset_Unknown_False() {
 			Assert.False(_localStorage.TryGetAsset(Guid.NewGuid(), out var assetResult));
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_TryGetAsset_Unknown_OutNull() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_TryGetAsset_Unknown_OutNull() {
 			_localStorage.TryGetAsset(Guid.NewGuid(), out var assetResult);
 			Assert.Null(assetResult);
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_TryGetAsset_Known_True() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_TryGetAsset_Known_True() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};
@@ -446,7 +446,7 @@
 		}

 		[Test]
-		public static void TestAssetLocalStorageLmdbCtor3AllowLruPurge_TryGetAsset_Known_OutEqual() {
+		public static void TestAssetLocalStorageLmdbCtor3NoLruPurge_TryGetAsset_Known_OutEqual() {
 			var assetTest = new StratusAsset {
 				Id = Guid.NewGuid(),
 			};


BitmapControllerTest#IndexerGetTestメソッド群の実装を変更

ビットマップのフラグをReadOnlyに変更

--- UnitTest/Graphics/BitmapControllerTest.cs
+++ UnitTest/Graphics/BitmapControllerTest.cs
@@ -53,7 +53,7 @@
         {
             Color expected = Color.FromArgb(0);

-            using (BitmapController controller = new BitmapController(this.smallBitmap, ImageLockMode.ReadWrite))
+            using (BitmapController controller = new BitmapController(this.smallBitmap, ImageLockMode.ReadOnly))
             {
                 Assert.AreEqual(controller[0, 0], expected);
                 Assert.AreEqual(controller[31, 0], expected);
@@ -66,7 +66,7 @@
         [ExpectedException(typeof(ArgumentOutOfRangeException))]
         public void IndexerGetTestExeption1()
         {
-            using (BitmapController controller = new BitmapController(this.smallBitmap, ImageLockMode.ReadWrite))
+            using (BitmapController controller = new BitmapController(this.smallBitmap, ImageLockMode.ReadOnly))
                 Assert.AreEqual(controller[-1, 0], Color.Transparent);
         }

@@ -74,7 +74,7 @@
         [ExpectedException(typeof(ArgumentOutOfRangeException))]
         public void IndexerGetTestExeption2()
         {
-            using (BitmapController controller = new BitmapController(this.smallBitmap, ImageLockMode.ReadWrite))
+            using (BitmapController controller = new BitmapController(this.smallBitmap, ImageLockMode.ReadOnly))
                 Assert.AreEqual(controller[0, -1], Color.Transparent);
         }

@@ -82,7 +82,7 @@
         [ExpectedException(typeof(ArgumentOutOfRangeException))]
         public void IndexerGetTestExeption3()
         {
-            using (BitmapController controller = new BitmapController(this.smallBitmap, ImageLockMode.ReadWrite))
+            using (BitmapController controller = new BitmapController(this.smallBitmap, ImageLockMode.ReadOnly))
                 Assert.AreEqual(controller[32, 0], Color.Transparent);
         }

@@ -90,7 +90,7 @@
         [ExpectedException(typeof(ArgumentOutOfRangeException))]
         public void IndexerGetTestExeption4()
         {
-            using (BitmapController controller = new BitmapController(this.smallBitmap, ImageLockMode.ReadWrite))
+            using (BitmapController controller = new BitmapController(this.smallBitmap, ImageLockMode.ReadOnly))
                 Assert.AreEqual(controller[0, 32], Color.Transparent);
         }
         #endregion


show the base_url on bottom of the scene

--- UnityPersistGame/Assets/src/GUI/Panels.cs
+++ UnityPersistGame/Assets/src/GUI/Panels.cs
@@ -11,12 +11,16 @@

     public static Panels Instance { get; private set; }

+    public Text lblServer;
+
     public void Awake()
     {
         Instance = this;

         //Initialize with email registration panel
         this.ShowEmail();
+
+        lblServer.text = API.GetServer();
     }

     public void ShowEmail()


Refactored DirectoryMonitor to use DisposableBase.

--- Utilities/InputOutput/DirectoryMonitor.cs
+++ Utilities/InputOutput/DirectoryMonitor.cs
@@ -9,7 +9,7 @@
 	/// Monitors a directory for changes.  Provides
 	/// a higher-level of abstraction over a FileSystemWatcher.
 	/// </summary>
-	public class DirectoryMonitor : IDirectoryMonitor
+	public class DirectoryMonitor : DisposableBase, IDirectoryMonitor
 	{
 		public DirectoryMonitor(IFileSystemWatcher fileSystemWatcher, Func<ITimer> timerFactory)
 		{
@@ -152,59 +152,22 @@
 		/// </summary>
 		public TimeSpan FileCreationWaitTimeout { get; set; }

-		#region IDisposable Members
+		#region DisposableBase Members

-		/// <see cref="IDisposable.Dispose"/>
-		public void Dispose()
+		/// <see cref="DisposableBase.OnDisposing"/>
+		protected override void OnDisposing()
 		{
-			Dispose(true);
-			// This object will be cleaned up by the Dispose method.
-			// Therefore, you should call GC.SupressFinalize to
-			// take this object off the finalization queue
-			// and prevent finalization code for this object
-			// from executing a second time.
-			GC.SuppressFinalize(this);
+			_fileSystemWatcher.Created -= fileSystemWatcher_Created;
+			_fileSystemWatcher.Deleted -= fileSystemWatcher_Deleted;
+			_fileSystemWatcher.Changed -= fileSystemWatcher_Changed;
+			_fileSystemWatcher.Renamed -= fileSystemWatcher_Renamed;
 		}

-		/// <summary>
-		/// Implements the actual disposal logic.  Subclasses should
-		/// override this method to clean up resources.
-		/// </summary>
-		/// <param name="disposing">Whether the class is disposing from the Dispose() method</param>
-		private void Dispose(bool disposing)
+		/// <see cref="DisposableBase.OnDispose"/>
+		protected override void OnDispose()
 		{
-			if (!_disposed)
-			{
-				if (disposing)
-				{
-					_fileSystemWatcher.Created -= fileSystemWatcher_Created;
-					_fileSystemWatcher.Deleted -= fileSystemWatcher_Deleted;
-					_fileSystemWatcher.Changed -= fileSystemWatcher_Changed;
-					_fileSystemWatcher.Renamed -= fileSystemWatcher_Renamed;
-				}
-
-				_fileSystemWatcher.Dispose();
-
-				_disposed = true;
-			}
+			_fileSystemWatcher.Dispose();
 		}
-
-		/// <summary>
-		/// Use C# destructor syntax for finalization code.
-		/// This destructor will run only if the Dispose method
-		/// does not get called.
-		/// It gives your base class the opportunity to finalize.
-		/// Do not provide destructors in types derived from this class.
-		/// </summary>
-		~DirectoryMonitor()
-		{
-			// Do not re-create Dispose clean-up code here.
-			// Calling Dispose(false) is optimal in terms of
-			// readability and maintainability.
-			Dispose(false);
-		}
-
-		private bool _disposed;

 		#endregion


Minor Fix

Minor Fix

--- WFS210.UI/PopoverContentViewController.cs
+++ WFS210.UI/PopoverContentViewController.cs
@@ -12,8 +12,10 @@
 	{
 		private UIEnumPickerViewModel<T> Model;

+		private UIPickerView Picker;
+
 		public RectangleF ContentBounds {
-			get { return new RectangleF (0, 0, 250, 150); }
+			get { return Picker.Bounds; }
 		}

 		public event EventHandler<EnumEventArgs<T>> ValueChanged {
@@ -30,10 +32,9 @@
 		{
 			base.ViewDidLoad ();

-			var pMeasurements = new UIPickerView ();
-			pMeasurements.Frame = ContentBounds;
-			pMeasurements.Model = Model;
-			View.AddSubview (pMeasurements);
+			Picker = new UIPickerView ();
+			Picker.Model = Model;
+			View.AddSubview (Picker);
 		}
 	}
 }


changed handling of builtins without special rules to simply translate to their plain names

--- IIS.SLSharp/Translation/HLSL/HlslVisitor.ShaderDef.cs
+++ IIS.SLSharp/Translation/HLSL/HlslVisitor.ShaderDef.cs
@@ -54,7 +54,9 @@
         // Dispatcher
         private StringBuilder VisitShaderDefCall(MethodDefinition m, InvocationExpression invocationExpression)
         {
-            return _handlers[m.Resolve().MetadataToken.ToInt32()](m, invocationExpression);
+            Func<MethodDefinition, InvocationExpression, StringBuilder> handler;
+            return _handlers.TryGetValue(m.Resolve().MetadataToken.ToInt32(), out handler) ?
+                handler(m, invocationExpression) : PassThrough(m, invocationExpression);
         }
     }
 }


more teamcity integrate syntax fixes

more teamcity integrate syntax fixes

--- WhoTestsTheTesters/RoughRunner/Program.cs
+++ WhoTestsTheTesters/RoughRunner/Program.cs
@@ -87,7 +87,7 @@
                     {
                         _invalid.Add(result);

-                        TeamCity.WriteLine("##teamcity[testFailed name='{0}' message='Result type doesn't match']",result.Test.Name);
+                        TeamCity.WriteLine("##teamcity[testFailed name='{0}' message='Doesn't match expected result' details='didn't expect {1}'",result.Test.Name,result.Kind);

                         Console.WriteLine("xxxx Invalid Output xxxx");
                     }


Clean up matcher test code in `ExtensibilityFixture`

--- tests/Moq.Tests/ExtensibilityFixture.cs
+++ tests/Moq.Tests/ExtensibilityFixture.cs
@@ -4,6 +4,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+
 using Xunit;

 namespace Moq.Tests
@@ -14,7 +15,7 @@
 		public void ShouldExtendMatching()
 		{
 			var mock = new Mock<IOrderRepository>();
-			mock.Setup(repo => repo.Save(OrderIs.Big()))
+			mock.Setup(repo => repo.Save(Order.IsBig()))
 				.Throws(new InvalidOperationException());

 			try
@@ -46,7 +47,7 @@
 		public void ShouldExtendWithPropertyMatchers()
 		{
 			var mock = new Mock<IOrderRepository>();
-			mock.Setup(repo => repo.Save(Orders.IsSmall))
+			mock.Setup(repo => repo.Save(Order.IsSmall))
 				.Throws(new InvalidOperationException());

 			try
@@ -60,24 +61,14 @@
 			}
 		}

-		//[Fact]
-		//public void SetterMatcherRendersNicely()
-		//{
-		//	var mock = new Mock<IOrderRepository>();
+		[Fact]
+		public void SetterMatcherRendersNicely()
+		{
+			var mock = new Mock<IOrderRepository>();

-		//	try
-		//	{
-		//		mock.VerifySet(repo => repo.Value = It.IsAny<int>());
-		//	}
-		//	catch (MockException me)
-		//	{
-		//		Console.WriteLine(me.Message);
-		//	}
-
-		//	mock.Object.Value = 25;
-
-		//	mock.VerifySet(repo => repo.Value = It.IsInRange(10, 25, Range.Inclusive));
-		//}
+			var ex = Record.Exception(() => mock.VerifySet(repo => repo.Value = It.IsAny<int>()));
+			Assert.Contains("repo => repo.Value = It.IsAny<int>()", ex.Message);
+		}
 	}

 	public static class Orders
@@ -86,20 +77,6 @@
 		public static IEnumerable<Order> Contains(Order order)
 		{
 			return Match.Create<IEnumerable<Order>>(orders => orders.Contains(order));
-		}
-
-		public static Order IsBig()
-		{
-			return Match.Create<Order>(o => o.Amount >= 1000);
-		}
-
-		[Matcher]
-		public static Order IsSmall
-		{
-			get
-			{
-				return Match.Create<Order>(o => o.Amount <= 1000);
-			}
 		}
 	}

@@ -110,17 +87,18 @@
 		int Value { get; set; }
 	}

-	public static class OrderIs
+	public class Order
 	{
+		public int Amount { get; set; }
+
 		[Matcher]
-		public static Order Big()
+		public static Order IsBig()
 		{
 			return Match.Create<Order>(o => o.Amount >= 1000);
 		}
-	}

-	public class Order
-	{
-		public int Amount { get; set; }
+
+		[Matcher]
+		public static Order IsSmall => Match.Create<Order>(o => o.Amount <= 1000);
 	}
 }


Fix view bug!

Fix view bug!

--- JustRunnerChat/JustRunnerChat/Views/_ViewStart.cshtml
+++ JustRunnerChat/JustRunnerChat/Views/_ViewStart.cshtml
@@ -1,4 +1,3 @@
 @{
-    //Layout = "~/Views/Shared/_Layout.cshtml";
-    Layout = "~/Views/Chat/_Layout.cshtml";
+    Layout = "~/Views/Shared/_Layout.cshtml";
 }


Fixed issue with filterservice

Fixed issue with filterservice

--- NadekoBot.Core/Modules/Permissions/Services/FilterService.cs
+++ NadekoBot.Core/Modules/Permissions/Services/FilterService.cs
@@ -26,11 +26,6 @@

         public ConcurrentHashSet<ulong> WordFilteringChannels { get; }
         public ConcurrentHashSet<ulong> WordFilteringServers { get; }
-
-        public FilterService(DbService db)
-        {
-            _db = db;
-        }

         public ConcurrentHashSet<string> FilteredWordsForChannel(ulong channelId, ulong guildId)
         {
@@ -72,9 +67,10 @@
             return words;
         }

-        public FilterService(DiscordSocketClient _client, NadekoBot bot)
+        public FilterService(DiscordSocketClient _client, NadekoBot bot, DbService db)
         {
             _log = LogManager.GetCurrentClassLogger();
+            _db = db;

             InviteFilteringServers = new ConcurrentHashSet<ulong>(bot.AllGuildConfigs.Where(gc => gc.FilterInvites).Select(gc => gc.GuildId));
             InviteFilteringChannels = new ConcurrentHashSet<ulong>(bot.AllGuildConfigs.SelectMany(gc => gc.FilterInvitesChannelIds.Select(fci => fci.ChannelId)));


Added new Chunk Layers Right now the upper layers draw over the ground layer and look odd.

--- Navier-Boats/Navier-Boats/Navier-Boats/Engine/Level/Chunk.cs
+++ Navier-Boats/Navier-Boats/Navier-Boats/Engine/Level/Chunk.cs
@@ -17,7 +17,10 @@
         public const int TILE_HEIGHT = 32;

         private string chunkDir;
-        private short[,] chunkData;
+        private short[,] chunkDataGroundLayer;
+        private short[,] chunkDataRoadLayer;
+        private short[,] chunkDataOverLayer;
+        private bool[,] chunkDataCollision;

         public readonly string CHUNK_ID; //format 1(xIndex-sign)1(yIndex-sign)15(xIndex-value)15(yIndex-value)
         public readonly Vector2 Position;
@@ -31,21 +34,69 @@
             //PLEASE FIX LATER - a nice grep friendly comment
             rand = new Random();
             short tileVal = (short)rand.Next(6);
-            chunkData = new short[CHUNK_WIDTH, CHUNK_HEIGHT];
-            for (int yIndex = 0; yIndex < CHUNK_HEIGHT; yIndex++)
-            {
-                for (int xIndex = 0; xIndex < CHUNK_WIDTH; xIndex++)
-                {
-                    chunkData[xIndex, yIndex] = (short)rand.Next(6);
-                }
-            }
+            #region GroundLayer
+
+            chunkDataGroundLayer = new short[CHUNK_WIDTH, CHUNK_HEIGHT];
+            for (int yIndex = 0; yIndex < CHUNK_HEIGHT; yIndex++)
+            {
+                for (int xIndex = 0; xIndex < CHUNK_WIDTH; xIndex++)
+                {
+                    chunkDataGroundLayer[xIndex, yIndex] = (short)(rand.Next(6)+1);
+                }
+            }
+
+            #endregion
+
+            #region RoadLayer
+
+            chunkDataRoadLayer = new short[CHUNK_WIDTH, CHUNK_HEIGHT];
+            for (int yIndex = 0; yIndex < CHUNK_HEIGHT; yIndex++)
+            {
+                for (int xIndex = 0; xIndex < CHUNK_WIDTH; xIndex++)
+                {
+                    chunkDataRoadLayer[xIndex, yIndex] = (short)(rand.Next(6) + 1);
+                }
+            }
+
+            #endregion
+
+            #region OverLayer
+
+            chunkDataOverLayer = new short[CHUNK_WIDTH, CHUNK_HEIGHT];
+            for (int yIndex = 0; yIndex < CHUNK_HEIGHT; yIndex++)
+            {
+                for (int xIndex = 0; xIndex < CHUNK_WIDTH; xIndex++)
+                {
+                    chunkDataOverLayer[xIndex, yIndex] = (short)(rand.Next(6) + 1);
+                }
+            }
+
+            #endregion
+
+            #region CollisionLayer
+
+            chunkDataCollision = new bool[CHUNK_WIDTH, CHUNK_HEIGHT];
+            for (int yIndex = 0; yIndex < CHUNK_HEIGHT; yIndex++)
+            {
+                for (int xIndex = 0; xIndex < CHUNK_WIDTH; xIndex++)
+                {
+                    chunkDataCollision[xIndex, yIndex] = false;
+                }
+            }
+
+            #endregion
+
             Save(chunkDir);
         }

         public Chunk(string fileName, string directory)
         {
             chunkDir = directory;
-            chunkData = new short[CHUNK_WIDTH, CHUNK_HEIGHT];
+
+            chunkDataGroundLayer = new short[CHUNK_WIDTH, CHUNK_HEIGHT];
+            chunkDataRoadLayer = new short[CHUNK_WIDTH, CHUNK_HEIGHT];
+            chunkDataOverLayer = new short[CHUNK_WIDTH, CHUNK_HEIGHT];
+            chunkDataCollision = new bool[CHUNK_WIDTH, CHUNK_HEIGHT];

             //Parse data to position
             CHUNK_ID = fileName.Remove(fileName.Length - 6);
@@ -67,7 +118,10 @@
                     {
                         for (int x = 0; x < CHUNK_WIDTH; x++)
                         {
-                            chunkData[x, y] = br.ReadInt16();
+                            chunkDataGroundLayer[x, y] = br.ReadInt16();
+                            chunkDataRoadLayer[x, y] = br.ReadInt16();
+                            chunkDataOverLayer[x, y] = br.ReadInt16();
+                            chunkDataCollision[x, y] = br.ReadBoolean();
                         }
                     }
                 }
@@ -107,7 +161,10 @@
                     {
                         for (int x = 0; x < CHUNK_WIDTH; x++)
                         {
-                            br.Write(chunkData[x, y]);
+                            br.Write(chunkDataGroundLayer[x, y]);
+                            br.Write(chunkDataRoadLayer[x, y]);
+                            br.Write(chunkDataOverLayer[x, y]);
+                            br.Write(chunkDataCollision[x, y]);
                         }
                     }
                 }
@@ -153,7 +210,18 @@
             {
                 for (int x = 0; x < CHUNK_WIDTH; x++)
                 {
-                    spriteBatch.Draw(tileTextures[chunkData[x, y]], new Vector2(x * TILE_WIDTH, y * TILE_HEIGHT) + new Vector2(TILE_WIDTH, TILE_HEIGHT) * chunkOffset + position, Color.White);
+                    if (chunkDataGroundLayer[x, y] > 0)
+                    {
+                        spriteBatch.Draw(tileTextures[chunkDataGroundLayer[x, y] - 1], new Vector2(x * TILE_WIDTH, y * TILE_HEIGHT) + new Vector2(TILE_WIDTH, TILE_HEIGHT) * chunkOffset + position, Color.White);
+                    }
+                    if (chunkDataRoadLayer[x, y] > 0)
+                    {
+                        spriteBatch.Draw(tileTextures[chunkDataRoadLayer[x, y] - 1], new Vector2(x * TILE_WIDTH, y * TILE_HEIGHT) + new Vector2(TILE_WIDTH, TILE_HEIGHT) * chunkOffset + position, new Color(255,255,255,200));
+                    }
+                    if (chunkDataOverLayer[x, y] > 0)
+                    {
+                        spriteBatch.Draw(tileTextures[chunkDataOverLayer[x, y] - 1], new Vector2(x * TILE_WIDTH, y * TILE_HEIGHT) + new Vector2(TILE_WIDTH, TILE_HEIGHT) * chunkOffset + position, new Color(255, 255, 255, 100));
+                    }
                 }
             }
         }


Fix element order in collection assertions

--- XmlSchemaClassGenerator.Tests/XmlTests.cs
+++ XmlSchemaClassGenerator.Tests/XmlTests.cs
@@ -173,7 +173,7 @@
             Assert.NotNull(myClassType);
             var iListType = typeof(Collection<>);
             var collectionPropertyInfos = myClassType.GetProperties().Where(p => p.PropertyType.IsGenericType && iListType.IsAssignableFrom(p.PropertyType.GetGenericTypeDefinition())).OrderBy(p=>p.Name).ToList();
-            var publicCollectionPropertyInfos = collectionPropertyInfos.Where(p => p.SetMethod.IsPublic).ToList();
+            var publicCollectionPropertyInfos = collectionPropertyInfos.Where(p => p.SetMethod.IsPublic).OrderBy(p=>p.Name).ToList();
             Assert.True(collectionPropertyInfos.Count > 0);
             Assert.Equal(collectionPropertyInfos, publicCollectionPropertyInfos);

@@ -205,7 +205,7 @@
             Assert.NotNull(myClassType);
             var iListType = typeof(Collection<>);
             var collectionPropertyInfos = myClassType.GetProperties().Where(p => p.PropertyType.IsGenericType && iListType.IsAssignableFrom(p.PropertyType.GetGenericTypeDefinition())).OrderBy(p=>p.Name).ToList();
-            var publicCollectionPropertyInfos = collectionPropertyInfos.Where(p => p.SetMethod.IsPublic).ToList();
+            var publicCollectionPropertyInfos = collectionPropertyInfos.Where(p => p.SetMethod.IsPublic).OrderBy(p=>p.Name).ToList();
             Assert.True(collectionPropertyInfos.Count > 0);
             Assert.Equal(collectionPropertyInfos, publicCollectionPropertyInfos);
             var myClassInstance = Activator.CreateInstance(myClassType);


works now

works now

--- Nodes/VVVV.DX11.Nodes.kinect2/KinectColorDepthTextureNode.cs
+++ Nodes/VVVV.DX11.Nodes.kinect2/KinectColorDepthTextureNode.cs
@@ -31,12 +31,9 @@
         private object m_depthlock = new object();

         ushort[] depthData;
-
         private ColorSpacePoint[] colpoints;
-        //private DepthSpacePoint[] colpoints;
         private float[] colorimage;

-        //private SlimDX.DXGI.Format format;
         private int width;
         private int height;

@@ -51,14 +48,12 @@

         private void InitBuffers()
         {
-            //this.format = SlimDX.DXGI.Format.R16_UInt;
             this.width = 512;
             this.height = 424;

             this.depthData = new ushort[width * height];

             this.colpoints = new ColorSpacePoint[this.width * this.height];
-            //this.colpoints = new DepthSpacePoint[this.width * this.height];
             this.colorimage = new float[this.width * this.height * 2];
         }

@@ -74,8 +69,7 @@
                     {
                         frame.CopyFrameDataToArray(depthData);

-                        this.runtime.Runtime.CoordinateMapper.MapDepthFrameToColorSpace(depthData, colpoints);
-                        //this.runtime.Runtime.CoordinateMapper.MapColorFrameToDepthSpace(depthData, colpoints);
+                        this.runtime.Runtime.CoordinateMapper.MapDepthFrameToColorSpace(this.depthData, this.colpoints);
                     }

                     this.FInvalidate = true;
@@ -107,13 +101,14 @@
                 {
                     if (FRelativeLookup[0])
                     {
-                        this.colorimage[i * 2] = (float)VMath.Map(colpoints[i].X - i % this.width, 0, this.width, 0, 1, TMapMode.Float);
-                        this.colorimage[i * 2 + 1] = (float)VMath.Map(colpoints[i].Y - VMath.Abs(i / this.width), 0, this.height, 0, 1, TMapMode.Float);
+                        this.colorimage[i * 2] = (float)VMath.Map(colpoints[i].X - i % 1920, 0, 1920, 0, 1, TMapMode.Float);
+                        this.colorimage[i * 2 + 1] = (float)VMath.Map(colpoints[i].Y - VMath.Abs(i / 1920), 0, 1080, 0, 1, TMapMode.Float);
                     }
                     else
                     {
-                        this.colorimage[i * 2] = (float)VMath.Map(colpoints[i].X, 0, this.width, 0, 1, TMapMode.Clamp);
-                        this.colorimage[i * 2 + 1] = (float)VMath.Map(colpoints[i].Y, 0, this.height, 0, 1, TMapMode.Clamp);
+
+                        this.colorimage[i * 2] = (float)VMath.Map(colpoints[i].X, 0, 1920, 0, 1, TMapMode.Clamp);
+                        this.colorimage[i * 2 + 1] = (float)VMath.Map(colpoints[i].Y, 0, 1080, 0, 1, TMapMode.Clamp);
                     }
                 }

@@ -123,6 +118,7 @@
                     texture.WriteData(ptr, this.width * this.height * 8);
                 }
             }
+
         }

         protected override void OnRuntimeConnected()


Remove RunOnIdle in InventoryTreeView constructor

--- MatterControlLib/Library/Widgets/InventoryTreeView.cs
+++ MatterControlLib/Library/Widgets/InventoryTreeView.cs
@@ -51,107 +51,104 @@
 		public InventoryTreeView(ThemeConfig theme)
 			: base (theme)
 		{
-			UiThread.RunOnIdle(() =>
-			{
-				rootColumn = new FlowLayoutWidget(FlowDirection.TopToBottom)
-				{
-					HAnchor = HAnchor.Stretch,
-					VAnchor = VAnchor.Fit
-				};
-				this.AddChild(rootColumn);
-
-				// Printers
-				printersNode = new TreeNode(theme)
-				{
-					Text = "Printers".Localize(),
-					HAnchor = HAnchor.Stretch,
-					AlwaysExpandable = true,
-					Image = AggContext.StaticData.LoadIcon("printer.png", 16, 16, theme.InvertIcons)
-				};
-				printersNode.TreeView = this;
-
-				var forcedHeight = 20;
-				var mainRow = printersNode.Children.FirstOrDefault();
-				mainRow.HAnchor = HAnchor.Stretch;
-				mainRow.AddChild(new HorizontalSpacer());
-
-				// add in the create printer button
-				var createPrinter = new IconButton(AggContext.StaticData.LoadIcon("md-add-circle_18.png", 18, 18, theme.InvertIcons), theme)
-				{
-					Name = "Create Printer",
-					VAnchor = VAnchor.Center,
-					Margin = theme.ButtonSpacing.Clone(left: theme.ButtonSpacing.Right),
-					ToolTipText = "Create Printer".Localize(),
-					Height = forcedHeight,
-					Width = forcedHeight
-				};
-
-				createPrinter.Click += (s, e) => UiThread.RunOnIdle(() =>
-				{
-					if (ApplicationController.Instance.ActivePrinter.Connection.PrinterIsPrinting
-					|| ApplicationController.Instance.ActivePrinter.Connection.PrinterIsPaused)
-					{
-						StyledMessageBox.ShowMessageBox("Please wait until the print has finished and try again.".Localize(), "Can't add printers while printing".Localize());
-					}
-					else
-					{
-						DialogWindow.Show(PrinterSetup.GetBestStartPage(PrinterSetup.StartPageOptions.ShowMakeModel));
-					}
-				});
-				mainRow.AddChild(createPrinter);
-
-				// add in the import printer button
-				var importPrinter = new IconButton(AggContext.StaticData.LoadIcon("md-import_18.png", 18, 18, theme.InvertIcons), theme)
-				{
-					VAnchor = VAnchor.Center,
-					Margin = theme.ButtonSpacing,
-					ToolTipText = "Import Printer".Localize(),
-					Height = forcedHeight,
-					Width = forcedHeight
-				};
-				importPrinter.Click += (s, e) => UiThread.RunOnIdle(() =>
-				{
-					AggContext.FileDialogs.OpenFileDialog(
-						new OpenFileDialogParams(
-							"settings files|*.ini;*.printer;*.slice"),
-							(result) =>
+			rootColumn = new FlowLayoutWidget(FlowDirection.TopToBottom)
+			{
+				HAnchor = HAnchor.Stretch,
+				VAnchor = VAnchor.Fit
+			};
+			this.AddChild(rootColumn);
+
+			// Printers
+			printersNode = new TreeNode(theme)
+			{
+				Text = "Printers".Localize(),
+				HAnchor = HAnchor.Stretch,
+				AlwaysExpandable = true,
+				Image = AggContext.StaticData.LoadIcon("printer.png", 16, 16, theme.InvertIcons)
+			};
+			printersNode.TreeView = this;
+
+			var forcedHeight = 20;
+			var mainRow = printersNode.Children.FirstOrDefault();
+			mainRow.HAnchor = HAnchor.Stretch;
+			mainRow.AddChild(new HorizontalSpacer());
+
+			// add in the create printer button
+			var createPrinter = new IconButton(AggContext.StaticData.LoadIcon("md-add-circle_18.png", 18, 18, theme.InvertIcons), theme)
+			{
+				Name = "Create Printer",
+				VAnchor = VAnchor.Center,
+				Margin = theme.ButtonSpacing.Clone(left: theme.ButtonSpacing.Right),
+				ToolTipText = "Create Printer".Localize(),
+				Height = forcedHeight,
+				Width = forcedHeight
+			};
+
+			createPrinter.Click += (s, e) => UiThread.RunOnIdle(() =>
+			{
+				if (ApplicationController.Instance.ActivePrinter.Connection.PrinterIsPrinting
+				|| ApplicationController.Instance.ActivePrinter.Connection.PrinterIsPaused)
+				{
+					StyledMessageBox.ShowMessageBox("Please wait until the print has finished and try again.".Localize(), "Can't add printers while printing".Localize());
+				}
+				else
+				{
+					DialogWindow.Show(PrinterSetup.GetBestStartPage(PrinterSetup.StartPageOptions.ShowMakeModel));
+				}
+			});
+			mainRow.AddChild(createPrinter);
+
+			// add in the import printer button
+			var importPrinter = new IconButton(AggContext.StaticData.LoadIcon("md-import_18.png", 18, 18, theme.InvertIcons), theme)
+			{
+				VAnchor = VAnchor.Center,
+				Margin = theme.ButtonSpacing,
+				ToolTipText = "Import Printer".Localize(),
+				Height = forcedHeight,
+				Width = forcedHeight
+			};
+			importPrinter.Click += (s, e) => UiThread.RunOnIdle(() =>
+			{
+				AggContext.FileDialogs.OpenFileDialog(
+					new OpenFileDialogParams(
+						"settings files|*.ini;*.printer;*.slice"),
+						(result) =>
+						{
+							if (!string.IsNullOrEmpty(result.FileName)
+								&& File.Exists(result.FileName))
 							{
-								if (!string.IsNullOrEmpty(result.FileName)
-									&& File.Exists(result.FileName))
+								//simpleTabs.RemoveTab(simpleTabs.ActiveTab);
+								if (ProfileManager.ImportFromExisting(result.FileName))
 								{
-									//simpleTabs.RemoveTab(simpleTabs.ActiveTab);
-									if (ProfileManager.ImportFromExisting(result.FileName))
-									{
-										string importPrinterSuccessMessage = "You have successfully imported a new printer profile. You can find '{0}' in your list of available printers.".Localize();
-										DialogWindow.Show(
-											new ImportSucceeded(
-												importPrinterSuccessMessage.FormatWith(Path.GetFileNameWithoutExtension(result.FileName))));
-									}
-									else
-									{
-										StyledMessageBox.ShowMessageBox("Oops! Settings file '{0}' did not contain any settings we could import.".Localize().FormatWith(Path.GetFileName(result.FileName)), "Unable to Import".Localize());
-									}
+									string importPrinterSuccessMessage = "You have successfully imported a new printer profile. You can find '{0}' in your list of available printers.".Localize();
+									DialogWindow.Show(
+										new ImportSucceeded(
+											importPrinterSuccessMessage.FormatWith(Path.GetFileNameWithoutExtension(result.FileName))));
 								}
-							});
-				});
-				mainRow.AddChild(importPrinter);
-
-				rootColumn.AddChild(printersNode);
-
-				InventoryTreeView.RebuildPrintersList(printersNode, theme);
-				this.Invalidate();
-
-				// Filament
-				var materialsNode = new TreeNode(theme)
-				{
-					Text = "Materials".Localize(),
-					AlwaysExpandable = true,
-					Image = AggContext.StaticData.LoadIcon("filament.png", 16, 16, theme.InvertIcons)
-				};
-				materialsNode.TreeView = this;
-
-				rootColumn.AddChild(materialsNode);
-			}, 1);
+								else
+								{
+									StyledMessageBox.ShowMessageBox("Oops! Settings file '{0}' did not contain any settings we could import.".Localize().FormatWith(Path.GetFileName(result.FileName)), "Unable to Import".Localize());
+								}
+							}
+						});
+			});
+			mainRow.AddChild(importPrinter);
+
+			rootColumn.AddChild(printersNode);
+
+			InventoryTreeView.RebuildPrintersList(printersNode, theme);
+			this.Invalidate();
+
+			// Filament
+			var materialsNode = new TreeNode(theme)
+			{
+				Text = "Materials".Localize(),
+				AlwaysExpandable = true,
+				Image = AggContext.StaticData.LoadIcon("filament.png", 16, 16, theme.InvertIcons)
+			};
+			materialsNode.TreeView = this;
+
+			rootColumn.AddChild(materialsNode);

 			PrinterSettings.SettingChanged.RegisterEvent((s, e) =>
 			{
@@ -169,8 +166,6 @@
 				}
 			}, ref unregisterEvents);

-
-
 			PrinterSettings.SettingChanged.RegisterEvent((s, e) =>
 			{
 				string settingsName = (e as StringEventArgs)?.Data;


Fix a typo in previouis commit: start must not pass the end of the file

--- OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs
+++ OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs
@@ -187,9 +187,9 @@
                 int start, end;
                 if (TryParseRange(range, out start, out end))
                 {
-                    // Before clamping end make sure we can satisfy it in order to avoid
+                    // Before clamping start make sure we can satisfy it in order to avoid
                     // sending back the last byte instead of an error status
-                    if (end >= texture.Data.Length)
+                    if (start >= texture.Data.Length)
                     {
                         response.StatusCode = (int)System.Net.HttpStatusCode.RequestedRangeNotSatisfiable;
                         return;


minor: correct SceneCommunicationService.LogHeader spelling

Relates to http://opensimulator.org/mantis/view.php?id=7337

--- OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -52,7 +52,7 @@
     public class SceneCommunicationService //one instance per region
     {
         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-        private static string LogHeader = "[SCENE COMMUNIATION SERVICE]";
+        private static string LogHeader = "[SCENE COMMUNICATION SERVICE]";

         protected RegionInfo m_regionInfo;
         protected Scene m_scene;


SA1304 - tests for protected fields

SA1304 - tests for protected fields

--- StyleCop.Analyzers/StyleCop.Analyzers.Test/NamingRules/SA1304UnitTests.cs
+++ StyleCop.Analyzers/StyleCop.Analyzers.Test/NamingRules/SA1304UnitTests.cs
@@ -53,6 +53,43 @@
             var testCode = @"public class Foo
 {
     public readonly string Bar = ""baz"";
+}";
+
+            await VerifyCSharpDiagnosticAsync(testCode, EmptyDiagnosticResults, CancellationToken.None);
+        }
+
+        [TestMethod]
+        public async Task TestProtectedReadonlyFieldStartingWithLowerCase()
+        {
+            var testCode = @"public class Foo
+{
+    protected readonly string bar = ""baz"";
+}";
+
+            var expected = new[]
+            {
+                new DiagnosticResult
+                {
+                    Id = DiagnosticId,
+                    Message = "Non-private readonly fields must begin with upper-case letter.",
+                    Severity = DiagnosticSeverity.Warning,
+                    Locations =
+                        new[]
+                        {
+                            new DiagnosticResultLocation("Test0.cs", 3, 31)
+                        }
+                }
+            };
+
+            await VerifyCSharpDiagnosticAsync(testCode, expected, CancellationToken.None);
+        }
+
+        [TestMethod]
+        public async Task TestProtectedReadonlyFieldStartingWithUpperCase()
+        {
+            var testCode = @"public class Foo
+{
+    protected readonly string Bar = ""baz"";
 }";

             await VerifyCSharpDiagnosticAsync(testCode, EmptyDiagnosticResults, CancellationToken.None);


- Enabled Scissor testing on viewports in OpenGL

git-svn-id: ad71a101fa69fb252e58119732bf51384d5dbd95@1579 bb9bf1cf-960d-0410-9a3a-baeba60cf407

--- Projects/Axiom/Source/RenderSystems/OpenGL/GLRenderSystem.cs
+++ Projects/Axiom/Source/RenderSystems/OpenGL/GLRenderSystem.cs
@@ -755,6 +755,9 @@
                     // make up for the fact that GL's origin starts at the bottom left corner
                     y = activeRenderTarget.Height - viewport.ActualTop - height;
                 }
+
+				// enable scissor testing (for viewports)
+				Gl.glEnable( Gl.GL_SCISSOR_TEST );

                 // set the current GL viewport
                 Gl.glViewport( x, y, width, height );


Unittest test discovery misses tests in folder after adding __init__.py Fix #5751 (#5762)

- Now that Test Explorer is no longer thinking every  source has changed, our discovery results are being filtered to just those files that have changed.

- However there are cases like adding a __init__.py file could affect discovery for other files in the same folder (or below). To catch these changes we now force a rebuild of all testcontainers in the solution.

--- Python/Product/TestAdapter/TestContainerDiscovererProject.cs
+++ Python/Product/TestAdapter/TestContainerDiscovererProject.cs
@@ -113,7 +113,7 @@

         public IEnumerable<ITestContainer> TestContainers {
             get {
-                if (IsSolutionMode() &&
+                if (IsSolutionMode() &&
                     (_firstLoad || _isRefresh)) {
                     // The first time through, we don't know about any loaded
                     // projects.
@@ -123,10 +123,10 @@
                             _firstLoad = false;
                             _isRefresh = false;

-                             _projectMap.Clear();
+                            _projectMap.Clear();
                             _packageManagerEventSink.UnwatchAll();

-                             SetupSolution();
+                            SetupSolution();
                         }
                     });
                 }
@@ -241,7 +241,7 @@
             var projInfo = new ProjectInfo(pyProj);
             _projectMap[projInfo.ProjectHome] = projInfo;
             var files = FilteredTestOrSettingsFiles(vsProject);
-            UpdateSolutionTestContainersAndFileWatchers(files, projInfo, isAdd: true);
+            UpdateContainersAndListeners(files, projInfo, isAdd: true);
             return files.Any();
         }

@@ -300,7 +300,7 @@
                 && _projectMap.TryRemove(projectHome, out ProjectInfo projToRemove)) {

                 var testFilesToRemove = projToRemove.GetAllContainers().Select(t => t.Source);
-                UpdateSolutionTestContainersAndFileWatchers(testFilesToRemove, projToRemove, isAdd: false);
+                UpdateContainersAndListeners(testFilesToRemove, projToRemove, isAdd: false);
                 projToRemove.Dispose();
                 return testFilesToRemove.Any();
             }
@@ -309,10 +309,13 @@

         private IEnumerable<string> FilteredTestOrSettingsFiles(IVsProject project) {
             return project.GetProjectItems()
-                .Where(s => IsTestFileOrSetting(s));
-        }
-
-        public void UpdateSolutionTestContainersAndFileWatchers(IEnumerable<string> sources, ProjectInfo projInfo, bool isAdd) {
+                .Where(s => IsTestFile(s) || IsSettingsFile(s));
+        }
+
+        public void UpdateContainersAndListeners(IEnumerable<string> sources, ProjectInfo projInfo, bool isAdd) {
+            if (projInfo == null)
+                return;
+
             foreach (var path in sources) {
                 if (isAdd) {
                     projInfo.AddTestContainer(this, path);
@@ -328,81 +331,101 @@
             return Path.GetExtension(path).Equals(PythonConstants.FileExtension, StringComparison.OrdinalIgnoreCase);
         }

-        private bool IsTestFileOrSetting(string path) {
-            return IsSettingsFile(path) || Path.GetExtension(path).Equals(PythonConstants.FileExtension, StringComparison.OrdinalIgnoreCase);
-        }
-
         private void OnProjectItemChanged(object sender, TestFileChangedEventArgs e) {
             if (String.IsNullOrEmpty(e.File))
                 return;

             if (IsSettingsFile(e.File)) {
-                switch (e.ChangedReason) {
-                    case TestFileChangedReason.None:
-                        break;
-                    case TestFileChangedReason.Renamed:
-                        _testFilesUpdateWatcher.RemoveWatch(e.OldFile);
-                        _testFilesUpdateWatcher.AddWatch(e.File);
-                        break;
-                    case TestFileChangedReason.Added:
-                        _testFilesUpdateWatcher.AddWatch(e.File);
-                        break;
-                    case TestFileChangedReason.Changed:
-                        _testFilesUpdateWatcher.AddWatch(e.File);
-                        break;
-                    case TestFileChangedReason.Removed:
-                        _testFilesUpdateWatcher.RemoveWatch(e.File);
-                        break;
-                }
-
+                HandleSettingsChanged(e);
+            }
+            // VS uses temp files we need to ignore
+            else if (IsTestFile(e.File)) {
+                HandleSourcesChanged(e);
+            }
+            return;
+        }
+
+        private void HandleSourcesChanged(TestFileChangedEventArgs e) {
+            var projectInfo = FindProjectInfo(e.File, e.Project);
+            if (projectInfo == null)
+                return;
+
+            var sources = new List<string>() { e.File };
+            switch (e.ChangedReason) {
+                case TestFileChangedReason.Added:
+                    UpdateContainersAndListeners(sources, projectInfo, isAdd: true);
+                    break;
+                case TestFileChangedReason.Changed:
+                    //Need to increment version number so Test Explorer notices a change
+                    UpdateContainersAndListeners(sources, projectInfo, isAdd: true);
+                    break;
+                case TestFileChangedReason.Removed:
+                    UpdateContainersAndListeners(sources, projectInfo, isAdd: false);
+                    break;
+                case TestFileChangedReason.Renamed:
+                    var oldFileProjectInfo = FindProjectInfo(e.OldFile);
+                    UpdateContainersAndListeners(new List<string>() { e.OldFile }, oldFileProjectInfo, isAdd: false);
+                    UpdateContainersAndListeners(sources, projectInfo, isAdd: true);
+                    break;
+                default:
+                    //In changed case file watcher observed a file changed event
+                    //In this case we just have to fire TestContainerChnaged event
+                    break;
+            }
+
+            if (ShouldRebuild(e.File) || ShouldRebuild(e.OldFile)) {
                 _isRefresh = true;
-                NotifyContainerChanged();
-                return;
-            }
-
-            // VS uses temp files we need to ignore
-            if (!IsTestFile(e.File))
-                return;
-
-            // bschnurr todo: this is only looking at opened files
-            IVsProject vsProject = e.Project;
+            }
+
+            NotifyContainerChanged();
+        }
+
+        private void HandleSettingsChanged(TestFileChangedEventArgs e) {
+            switch (e.ChangedReason) {
+                case TestFileChangedReason.None:
+                    break;
+                case TestFileChangedReason.Renamed:
+                    _testFilesUpdateWatcher.RemoveWatch(e.OldFile);
+                    _testFilesUpdateWatcher.AddWatch(e.File);
+                    break;
+                case TestFileChangedReason.Added:
+                    _testFilesUpdateWatcher.AddWatch(e.File);
+                    break;
+                case TestFileChangedReason.Changed:
+                    _testFilesUpdateWatcher.AddWatch(e.File);
+                    break;
+                case TestFileChangedReason.Removed:
+                    _testFilesUpdateWatcher.RemoveWatch(e.File);
+                    break;
+            }
+            _isRefresh = true;
+            NotifyContainerChanged();
+        }
+
+        private ProjectInfo FindProjectInfo(string file, IVsProject vsProject = null) {
             if (vsProject == null) {
+                // bschnurr todo: this is only looking at opened files
                 var rdt = (IVsRunningDocumentTable)_serviceProvider.GetService(typeof(SVsRunningDocumentTable));
-                vsProject = VsProjectExtensions.PathToProject(e.File, rdt);
-            }
-
-            if (vsProject == null)
-                return;
-
-            string projectHome = vsProject.GetProjectHome();
-            if (projectHome != null &&
-                _projectMap.TryGetValue(projectHome, out ProjectInfo projectInfo)) {
-
-                var sources = new List<string>() { e.File };
-
-                switch (e.ChangedReason) {
-                    case TestFileChangedReason.Added:
-                        UpdateSolutionTestContainersAndFileWatchers(sources, projectInfo, isAdd: true);
-                        break;
-                    case TestFileChangedReason.Changed:
-                        //Need to increment version number so Test Explorer notices a change
-                        UpdateSolutionTestContainersAndFileWatchers(sources, projectInfo, isAdd: true);
-                        break;
-                    case TestFileChangedReason.Removed:
-                        UpdateSolutionTestContainersAndFileWatchers(sources, projectInfo, isAdd: false);
-                        break;
-                    case TestFileChangedReason.Renamed:
-                        UpdateSolutionTestContainersAndFileWatchers(new List<string>() { e.OldFile }, projectInfo, isAdd: false);
-                        UpdateSolutionTestContainersAndFileWatchers(sources, projectInfo, isAdd: true);
-                        break;
-                    default:
-                        //In changed case file watcher observed a file changed event
-                        //In this case we just have to fire TestContainerChnaged event
-                        break;
-                }
-                NotifyContainerChanged();
-            }
-
+                vsProject = VsProjectExtensions.PathToProject(file, rdt);
+            }
+
+            if (vsProject != null) {
+                string projectHome = vsProject.GetProjectHome();
+                if (projectHome != null &&
+                    _projectMap.TryGetValue(projectHome, out ProjectInfo foundProjectInfo)) {
+                    return foundProjectInfo;
+                }
+            }
+
+            //Renamed  old files are no longer in the project so linear search
+            var projectInfo = _projectMap.Values.FirstOrDefault(p => p.TryGetContainer(file, out _));
+            return projectInfo;
+        }
+
+        private bool ShouldRebuild(string file) {
+            // unittest does update additional files in the directory when __init__.py is added
+            // so trigger a full rebuild
+            return (file != null) && file.EndsWith("__init__.py", StringComparison.OrdinalIgnoreCase);
         }

         private bool IsSettingsFile(string file) {


Fixed DSA conversion logic to work more reliably.

--- MimeKit/Cryptography/AsymmetricAlgorithmExtensions.cs
+++ MimeKit/Cryptography/AsymmetricAlgorithmExtensions.cs
@@ -236,9 +236,9 @@
 				parameters.Seed = key.Parameters.ValidationParameters.GetSeed ();
 			}

-			parameters.G = key.Parameters.G.ToByteArrayUnsigned ();
 			parameters.P = key.Parameters.P.ToByteArrayUnsigned ();
 			parameters.Q = key.Parameters.Q.ToByteArrayUnsigned ();
+			parameters.G = GetPaddedByteArray (key.Parameters.G, parameters.P.Length);

 			return parameters;
 		}
@@ -246,10 +246,10 @@
 		static AsymmetricAlgorithm GetAsymmetricAlgorithm (DsaPrivateKeyParameters key, DsaPublicKeyParameters pub)
 		{
 			var parameters = GetDSAParameters (key);
-			parameters.X = key.X.ToByteArrayUnsigned ();
+			parameters.X = GetPaddedByteArray (key.X, parameters.Q.Length);

 			if (pub != null)
-				parameters.Y = pub.Y.ToByteArrayUnsigned ();
+				parameters.Y = GetPaddedByteArray (pub.Y, parameters.P.Length);

 			var dsa = new DSACryptoServiceProvider ();


Fixed #36

Fixed #36

Morningstar service added

--- Tools/Indicator/OpenBrowser_Utility_Tool.cs
+++ Tools/Indicator/OpenBrowser_Utility_Tool.cs
@@ -12,7 +12,7 @@
 using AgenaTrader.Helper;

 /// <summary>
-/// Version: 1.1
+/// Version: 1.1.2
 /// -------------------------------------------------------------------------
 /// Simon Pucher 2016
 /// -------------------------------------------------------------------------
@@ -27,11 +27,14 @@
     {
         #region Variables

-        private IInstrumentsList _list = null;
+
         private RectangleF _rect;
         private RectangleF _rect2;
         //private Pen _pen = Pens.Black;
         private Brush _brush = Brushes.Gray;
+
+        private bool _opengooglefinance = true;
+        private bool _openmorningstar = true;

         #endregion
@@ -152,8 +155,15 @@
             Point cursorPos = new Point(e.X, e.Y);
             if (_rect.Contains(cursorPos))
             {
-                GUIHelper.OpenInBrowser("https://www.google.com/finance?q="+this.Instrument.Symbol);
-                //http://beta.morningstar.com/search.html?q=da
+                if (OpenGoogleFinance)
+                {
+                    GUIHelper.OpenInBrowser("https://www.google.com/finance?q=" + this.Instrument.Symbol);
+                }
+
+                if (OpenMorningstar)
+                {
+                    GUIHelper.OpenInBrowser("http://beta.morningstar.com/search.html?q=" + this.Instrument.ISIN);
+                }

                 //                if (!_list.Contains((Instrument)this.Instrument))
                 //                {
@@ -191,13 +201,29 @@
         //    }

-
         #endregion

         #region Input

-
-
+        [Description("Opens Google Finance with the current symbol displayed in the chart")]
+        [Category("Parameters")]
+        [DisplayName("Google Finance")]
+        public bool OpenGoogleFinance
+        {
+            get { return _opengooglefinance; }
+            set { _opengooglefinance = value; }
+        }
+
+        [Description("Opens Morningstar with the current symbol displayed in the chart")]
+        [Category("Parameters")]
+        [DisplayName("Morningstar")]
+        public bool OpenMorningstar
+        {
+            get { return _openmorningstar; }
+            set { _openmorningstar = value; }
+        }
+
+
         private Color _col_positive = Color.Green;
         /// <summary>
         /// </summary>
@@ -260,17 +286,17 @@
 		/// <summary>
 		/// Opens web browser by clicking on the chart.
 		/// </summary>
-		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool()
-        {
-			return OpenBrowser_Utility_Tool(Input);
-		}
-
-		/// <summary>
-		/// Opens web browser by clicking on the chart.
-		/// </summary>
-		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(IDataSeries input)
-		{
-			var indicator = CachedCalculationUnits.GetCachedIndicator<OpenBrowser_Utility_Tool>(input);
+		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(System.Boolean openGoogleFinance, System.Boolean openMorningstar)
+        {
+			return OpenBrowser_Utility_Tool(Input, openGoogleFinance, openMorningstar);
+		}
+
+		/// <summary>
+		/// Opens web browser by clicking on the chart.
+		/// </summary>
+		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(IDataSeries input, System.Boolean openGoogleFinance, System.Boolean openMorningstar)
+		{
+			var indicator = CachedCalculationUnits.GetCachedIndicator<OpenBrowser_Utility_Tool>(input, i => i.OpenGoogleFinance == openGoogleFinance && i.OpenMorningstar == openMorningstar);

 			if (indicator != null)
 				return indicator;
@@ -279,7 +305,9 @@
 						{
 							BarsRequired = BarsRequired,
 							CalculateOnBarClose = CalculateOnBarClose,
-							Input = input
+							Input = input,
+							OpenGoogleFinance = openGoogleFinance,
+							OpenMorningstar = openMorningstar
 						};
 			indicator.SetUp();

@@ -298,20 +326,20 @@
 		/// <summary>
 		/// Opens web browser by clicking on the chart.
 		/// </summary>
-		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool()
-		{
-			return LeadIndicator.OpenBrowser_Utility_Tool(Input);
-		}
-
-		/// <summary>
-		/// Opens web browser by clicking on the chart.
-		/// </summary>
-		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(IDataSeries input)
+		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(System.Boolean openGoogleFinance, System.Boolean openMorningstar)
+		{
+			return LeadIndicator.OpenBrowser_Utility_Tool(Input, openGoogleFinance, openMorningstar);
+		}
+
+		/// <summary>
+		/// Opens web browser by clicking on the chart.
+		/// </summary>
+		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(IDataSeries input, System.Boolean openGoogleFinance, System.Boolean openMorningstar)
 		{
 			if (InInitialize && input == null)
 				throw new ArgumentException("You only can access an indicator with the default input/bar series from within the 'Initialize()' method");

-			return LeadIndicator.OpenBrowser_Utility_Tool(input);
+			return LeadIndicator.OpenBrowser_Utility_Tool(input, openGoogleFinance, openMorningstar);
 		}
 	}

@@ -324,17 +352,17 @@
 		/// <summary>
 		/// Opens web browser by clicking on the chart.
 		/// </summary>
-		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool()
-		{
-			return LeadIndicator.OpenBrowser_Utility_Tool(Input);
-		}
-
-		/// <summary>
-		/// Opens web browser by clicking on the chart.
-		/// </summary>
-		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(IDataSeries input)
-		{
-			return LeadIndicator.OpenBrowser_Utility_Tool(input);
+		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(System.Boolean openGoogleFinance, System.Boolean openMorningstar)
+		{
+			return LeadIndicator.OpenBrowser_Utility_Tool(Input, openGoogleFinance, openMorningstar);
+		}
+
+		/// <summary>
+		/// Opens web browser by clicking on the chart.
+		/// </summary>
+		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(IDataSeries input, System.Boolean openGoogleFinance, System.Boolean openMorningstar)
+		{
+			return LeadIndicator.OpenBrowser_Utility_Tool(input, openGoogleFinance, openMorningstar);
 		}
 	}

@@ -347,17 +375,17 @@
 		/// <summary>
 		/// Opens web browser by clicking on the chart.
 		/// </summary>
-		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool()
-		{
-			return LeadIndicator.OpenBrowser_Utility_Tool(Input);
-		}
-
-		/// <summary>
-		/// Opens web browser by clicking on the chart.
-		/// </summary>
-		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(IDataSeries input)
-		{
-			return LeadIndicator.OpenBrowser_Utility_Tool(input);
+		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(System.Boolean openGoogleFinance, System.Boolean openMorningstar)
+		{
+			return LeadIndicator.OpenBrowser_Utility_Tool(Input, openGoogleFinance, openMorningstar);
+		}
+
+		/// <summary>
+		/// Opens web browser by clicking on the chart.
+		/// </summary>
+		public OpenBrowser_Utility_Tool OpenBrowser_Utility_Tool(IDataSeries input, System.Boolean openGoogleFinance, System.Boolean openMorningstar)
+		{
+			return LeadIndicator.OpenBrowser_Utility_Tool(input, openGoogleFinance, openMorningstar);
 		}
 	}


update dota2 path

update dota2 path

--- Tup.Dota2Recipe.Spider/FormMain.Designer.cs
+++ Tup.Dota2Recipe.Spider/FormMain.Designer.cs
@@ -160,7 +160,7 @@
             this.TextBoxDota2Itembuilds.Name = "TextBoxDota2Itembuilds";
             this.TextBoxDota2Itembuilds.Size = new System.Drawing.Size(285, 21);
             this.TextBoxDota2Itembuilds.TabIndex = 6;
-            this.TextBoxDota2Itembuilds.Text = "D:\\Program Files (x86)\\Steam\\steamapps\\common\\dota 2 beta\\dota\\itembuilds";
+            this.TextBoxDota2Itembuilds.Text = "F:\\Steam_Dota2\\SteamApps\\common\\dota 2 beta\\dota\\itembuilds";
             //
             // MainForm
             //


Fixed display url in extracted media

Fixed display url in extracted media

--- Twice/ViewModels/Twitter/StatusViewModel.cs
+++ Twice/ViewModels/Twitter/StatusViewModel.cs
@@ -115,7 +115,7 @@
 				var extracted = await MediaExtractor.ExtractMedia( url );
 				if( extracted != null )
 				{
-					var vm = new StatusMediaViewModel( extracted );
+					var vm = new StatusMediaViewModel( extracted, new Uri( url ) );
 					vm.OpenRequested += Image_OpenRequested;
 					_InlineMedias.Add( vm );
 				}


震度を変換するメソッドを追加

震度を変換するメソッドを追加

--- KyoshinMonitorLib/Shindo.cs
+++ KyoshinMonitorLib/Shindo.cs
@@ -1,11 +1,15 @@
 namespace KyoshinMonitorLib
 {
 	/// <summary>
-	/// 気象庁震度階級
+	/// 気象庁震度階級 +α
 	/// </summary>
 	public enum Shindo
 	{
 		/// <summary>
+		/// 震度不明
+		/// </summary>
+		Unknown,
+		/// <summary>
 		/// 震度1以下
 		/// </summary>
 		Int0,
@@ -45,5 +49,166 @@
 		/// 震度7
 		/// </summary>
 		Int7,
+		/// <summary>
+		/// 震度異常
+		/// </summary>
+		Error,
+	}
+
+	/// <summary>
+	/// Shindoの拡張メソッド
+	/// </summary>
+	public static class ShindoExtensions
+	{
+		/// <summary>
+		/// 生の震度の値を気象庁震度階級に変換します。
+		/// </summary>
+		/// <param name="intensity">変換対象の震度</param>
+		/// <returns>変換されたShindo</returns>
+		public static Shindo ToShindo(this float? intensity)
+		{
+			if (intensity == null)
+				return Shindo.Unknown;
+			if (intensity < -3.0)
+				return Shindo.Error;
+			if (intensity < 0.5)
+				return Shindo.Int0;
+			if (intensity < 1.5)
+				return Shindo.Int1;
+			if (intensity < 2.5)
+				return Shindo.Int2;
+			if (intensity < 3.5)
+				return Shindo.Int3;
+			if (intensity < 4.5)
+				return Shindo.Int4;
+			if (intensity < 5.0)
+				return Shindo.Int5Lower;
+			if (intensity < 5.5)
+				return Shindo.Int5Upper;
+			if (intensity < 6.0)
+				return Shindo.Int6Lower;
+			return intensity < 6.5 ? Shindo.Int6Upper : Shindo.Int7;
+		}
+		/// <summary>
+		/// 気象庁震度階級を短い形式の文字列に変換します。
+		/// </summary>
+		/// <param name="shindo">変換するShindo</param>
+		/// <returns>変換された文字列</returns>
+		public static string ToShortString(this Shindo shindo)
+		{
+			switch (shindo)
+			{
+				case Shindo.Error:
+					return "異常";
+				case Shindo.Int0:
+					return "0";
+				case Shindo.Int1:
+					return "1";
+				case Shindo.Int2:
+					return "2";
+				case Shindo.Int3:
+					return "3";
+				case Shindo.Int4:
+					return "4";
+				case Shindo.Int5Lower:
+					return "5-";
+				case Shindo.Int5Upper:
+					return "5+";
+				case Shindo.Int6Lower:
+					return "6-";
+				case Shindo.Int6Upper:
+					return "6+";
+				case Shindo.Int7:
+					return "7";
+				default:
+					return "不明";
+			}
+		}
+		/// <summary>
+		/// 気象庁震度階級を長い形式の文字列に変換します。
+		/// </summary>
+		/// <param name="shindo">変換するShindo</param>
+		/// <returns>変換された文字列</returns>
+		public static string ToLongString(this Shindo shindo)
+		{
+			switch (shindo)
+			{
+				case Shindo.Error:
+					return "震度異常";
+				case Shindo.Int0:
+					return "震度0";
+				case Shindo.Int1:
+					return "震度1";
+				case Shindo.Int2:
+					return "震度2";
+				case Shindo.Int3:
+					return "震度3";
+				case Shindo.Int4:
+					return "震度4";
+				case Shindo.Int5Lower:
+					return "震度5弱";
+				case Shindo.Int5Upper:
+					return "震度5強";
+				case Shindo.Int6Lower:
+					return "震度6弱";
+				case Shindo.Int6Upper:
+					return "震度6強";
+				case Shindo.Int7:
+					return "震度7";
+				default:
+					return "震度不明";
+			}
+		}
+		/// <summary>
+		/// 文字から気象庁震度階級に変換します。
+		/// <para>EewJsonぐらいでしか確認していません。</para>
+		/// </summary>
+		/// <param name="source">変換する文字列</param>
+		/// <returns>変換されたShindo</returns>
+		public static Shindo ToShindo(this string source)
+		{
+			source = source.Replace("震度", "");
+			switch (source)
+			{
+				case "0":
+				case "０":
+					return Shindo.Int0;
+				case "1":
+				case "１":
+					return Shindo.Int1;
+				case "2":
+				case "２":
+					return Shindo.Int2;
+				case "3":
+				case "３":
+					return Shindo.Int3;
+				case "4":
+				case "４":
+					return Shindo.Int4;
+				case "5-":
+				case "5弱":
+				case "５弱":
+					return Shindo.Int5Lower;
+				case "5+":
+				case "5強":
+				case "５強":
+					return Shindo.Int5Upper;
+				case "6-":
+				case "6弱":
+				case "６弱":
+					return Shindo.Int6Lower;
+				case "6+":
+				case "6強":
+				case "６強":
+					return Shindo.Int6Upper;
+				case "7":
+				case "７":
+					return Shindo.Int7;
+				case "-1":
+				case "異常":
+					return Shindo.Error;
+			}
+			return Shindo.Unknown;
+		}
 	}
 }


Adding support for TAGame.GameEvent_Soccar_TA:bClubMatch, I hope

--- RocketLeagueReplayParser/NetworkStream/ActorStateProperty.cs
+++ RocketLeagueReplayParser/NetworkStream/ActorStateProperty.cs
@@ -177,6 +177,7 @@
                 case "TAGame.CarComponent_Boost_TA:bNoBoost":
                 case "TAGame.PRI_TA:PlayerHistoryValid":
                 case "TAGame.GameEvent_Soccar_TA:bUnlimitedTime":
+                case "TAGame.GameEvent_Soccar_TA:bClubMatch":
                     asp.Data = br.ReadBit();
                     break;
                 case "TAGame.CarComponent_TA:ReplicatedActive":
@@ -445,6 +446,7 @@
                 case "TAGame.CarComponent_Boost_TA:bNoBoost":
                 case "TAGame.PRI_TA:PlayerHistoryValid":
                 case "TAGame.GameEvent_Soccar_TA:bUnlimitedTime":
+                case "TAGame.GameEvent_Soccar_TA:bClubMatch":
                     bw.Write((bool)data);
                     break;
                 case "TAGame.CarComponent_TA:ReplicatedActive":


Corrected awstats v7 detection

Corrected awstats v7 detection

--- WebsitePanel/Sources/WebsitePanel.Providers.Statistics.AWStats/AWStats.cs
+++ WebsitePanel/Sources/WebsitePanel.Providers.Statistics.AWStats/AWStats.cs
@@ -343,7 +343,7 @@

             string[] split = versionNumber.Split(new char[] { '.' });

-            return split[0].Equals("6") | split[0].Equals("7");
+            return split[0].Equals("6") || split[0].Equals("7");
         }

     }


Improving brute force

Improving brute force

--- c_sharp/stringology/PatternMatching.cs
+++ c_sharp/stringology/PatternMatching.cs
@@ -23,7 +23,10 @@
                         break;
                 }
                 if (j == pattern.Length)
+                {
                     positions.Add(i);
+                    i += j;
+                }
             }
             return positions;
         }


Adapted unit tests to work

Adapted unit tests to work

--- PART/Source/CprBroker/CPRDirect.Tests/ExtractTests.cs
+++ PART/Source/CprBroker/CPRDirect.Tests/ExtractTests.cs
@@ -62,17 +62,18 @@
             public void Constructor_Parse_CorrectCount()
             {
                 var lines = LineWrapper.ParseBatch(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE);
-
-                var extract = new Extract(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap, Constants.ReversibleRelationshipMap);
-                Assert.AreEqual(lines.Length - 2, extract.ExtractItems.Count);
+                var parseResult = new ExtractParseResult(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap);
+                var extract = parseResult.ToExtract();
+                var extractItems = parseResult.ToExtractItems(extract, Constants.DataObjectMap, Constants.ReversibleRelationshipMap);
+                Assert.AreEqual(lines.Length - 2, extractItems.Count);
             }

             [Test]
             public void Constructor_Parse_CorrectStart()
             {
                 var lines = LineWrapper.ParseBatch(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE);
-
-                var extract = new Extract(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap, Constants.ReversibleRelationshipMap);
+                var parseResult = new ExtractParseResult(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap);
+                var extract = parseResult.ToExtract();
                 Assert.AreEqual(lines.First().Contents, extract.StartRecord);
             }

@@ -80,8 +81,8 @@
             public void Constructor_Parse_CorrectEnd()
             {
                 var lines = LineWrapper.ParseBatch(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE);
-
-                var extract = new Extract(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap, Constants.ReversibleRelationshipMap);
+                var parseResult = new ExtractParseResult(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap);
+                var extract = parseResult.ToExtract();
                 Assert.AreEqual(lines.Last().Contents, extract.EndRecord);
             }

@@ -90,8 +91,10 @@
             {
                 var lines = LineWrapper.ParseBatch(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE);

-                var extract = new Extract(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap, Constants.ReversibleRelationshipMap);
-                var result = extract.ExtractItems.Select(i => i.Contents).ToList();
+                var parseResult = new ExtractParseResult(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap);
+                var extract = parseResult.ToExtract();
+                var extractItems = parseResult.ToExtractItems(extract, Constants.DataObjectMap, Constants.ReversibleRelationshipMap);
+                var result = extractItems.Select(i => i.Contents).ToList();
                 result.Insert(0, extract.StartRecord);
                 result.Add(extract.EndRecord);
                 for (int i = 0; i < lines.Length; i++)
@@ -109,7 +112,10 @@
                 [Range(1, 1098, 20)]int lineNumber)
             {
                 var lines = LineWrapper.ParseBatch(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE);
-                var extract = new Extract(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap, Constants.ReversibleRelationshipMap);
+                var parseResult = new ExtractParseResult(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap);
+
+                var extract = parseResult.ToExtract();
+                var extractItems = parseResult.ToExtractItems(extract, Constants.DataObjectMap, Constants.ReversibleRelationshipMap);

                 var pnr = lines[2].PNR;
                 var person = Extract.GetPerson(pnr, extract.ExtractItems.AsQueryable(), Constants.DataObjectMap);
@@ -122,7 +128,11 @@
                 [ValueSource(typeof(Utilities), "RandomCprNumberStrings5")]string cprNumber)
             {
                 var lines = LineWrapper.ParseBatch(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE);
-                var extract = new Extract(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap, Constants.ReversibleRelationshipMap);
+                var parseResult = new ExtractParseResult(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE, Constants.DataObjectMap);
+
+                var extract = parseResult.ToExtract();
+                var extractItems = parseResult.ToExtractItems(extract, Constants.DataObjectMap, Constants.ReversibleRelationshipMap);
+                extract.ExtractItems.AddRange(extractItems);

                 var person = Extract.GetPerson(cprNumber, extract.ExtractItems.AsQueryable(), Constants.DataObjectMap);
                 Assert.Null(person);


Follow up on previous refactoring

Follow up on previous refactoring

--- PART/Source/CprBroker/PartInterface.Tests/TestBase.cs
+++ PART/Source/CprBroker/PartInterface.Tests/TestBase.cs
@@ -149,24 +149,24 @@
             var section = ConfigManager.Current.TasksSection;
             section.AutoLoaded.Clear();

-            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.BirthdateEventEnqueuer), RunEvery = TimeSpan.FromDays(1), BatchSize = 1000 });
-            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.DataChangeEventPuller), BatchSize = 100 });
-            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.CriteriaSubscriptionPersonPopulator), BatchSize = 200 });
-            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.DataChangeEventEnqueuer), BatchSize = 100 });
-
-            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.NotificationSender), BatchSize = 10 });
-            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.CPRDirectDownloader), RunEvery = TimeSpan.FromHours(1) });
-            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.CPRDirectExtractor), BatchSize = 10000 });
-            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.BudgetChecker), RunEvery = TimeSpan.FromHours(1) });
+            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.BirthdateEventEnqueuer), RunEvery = TimeSpan.FromDays(1).ToString(), BatchSize = "1000" });
+            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.DataChangeEventPuller), BatchSize = "100" });
+            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.CriteriaSubscriptionPersonPopulator), BatchSize = "200" });
+            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.DataChangeEventEnqueuer), BatchSize = "100" });
+
+            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.NotificationSender), BatchSize = "10" });
+            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.CPRDirectDownloader), RunEvery = TimeSpan.FromHours(1).ToString() });
+            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.CPRDirectExtractor), BatchSize = "10000" });
+            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.EventBroker.Notifications.BudgetChecker), RunEvery = TimeSpan.FromHours(1).ToString() });
             section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.Engine.Tasks.QueueExecutionManager) });
             section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.DBR.DprDiversionManager) });
-            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.Providers.DPR.Queues.DprEnqueuer), RunEvery = TimeSpan.FromSeconds(30) });
+            section.AutoLoaded.Add(new TasksConfigurationSection.TaskElement() { Type = typeof(CprBroker.Providers.DPR.Queues.DprEnqueuer), RunEvery = TimeSpan.FromSeconds(30).ToString() });

             if (forceRunEvery.HasValue)
             {
                 foreach (TasksConfigurationSection.TaskElement taskElement in section.AutoLoaded)
                 {
-                    taskElement.RunEvery = forceRunEvery.Value;
+                    taskElement.RunEvery = forceRunEvery.Value.ToString();
                 }
             }


Done UDPPacket api docs

Done UDPPacket api docs

--- source/Cosmos.System2/Network/IPv4/UDP/UDPPacket.cs
+++ source/Cosmos.System2/Network/IPv4/UDP/UDPPacket.cs
@@ -1,10 +1,17 @@
 using System;
 using System.Text;
+using sysIO = System.IO;

 namespace Cosmos.System.Network.IPv4
 {
+    /// <summary>
+    /// UDPPacket class.
+    /// </summary>
     public class UDPPacket : IPPacket
     {
+        /// <summary>
+        /// UDP CRC.
+        /// </summary>
         private ushort udpCRC;

         /// <summary>
@@ -12,6 +19,7 @@
         /// </summary>
         /// <param name="packetData">Packet data.</param>
         /// <exception cref="OverflowException">Thrown if UDP_Data array length is greater than Int32.MaxValue.</exception>
+        /// <exception cref="sysIO.IOException">Thrown on IO error.</exception>
         internal static void UDPHandler(byte[] packetData)
         {
             UDPPacket udp_packet = new UDPPacket(packetData);


[en] Added support for using typed DataSets in distributed Events.
[de] Unterstützung für die Verwendung Typisierter DataSets in verteilten Ereignissen implementiert.

git-tfs-id: [https://tfs.codeplex.com:443/tfs/TFS15]$/cyan;C9821

--- source/Zyan.Communication/Scripting/ScriptEngine.cs
+++ source/Zyan.Communication/Scripting/ScriptEngine.cs
@@ -36,6 +36,12 @@

                 if ((from referenceAssembly in referenceAsseblies where referenceAssembly.Equals("System.Xml.dll",StringComparison.InvariantCultureIgnoreCase) select referenceAssembly).Count()==0)
                     cp.ReferencedAssemblies.Add("System.Xml.dll");
+
+                if ((from referenceAssembly in referenceAsseblies where referenceAssembly.Equals("System.Data.dll", StringComparison.InvariantCultureIgnoreCase) select referenceAssembly).Count() == 0)
+                    cp.ReferencedAssemblies.Add("System.Data.dll");
+
+                if ((from referenceAssembly in referenceAsseblies where referenceAssembly.Equals("System.Data.DataSetExtensions.dll", StringComparison.InvariantCultureIgnoreCase) select referenceAssembly).Count() == 0)
+                    cp.ReferencedAssemblies.Add("System.Data.DataSetExtensions.dll");
             }
             else
                 // Standardverweise anfügen
@@ -43,7 +49,9 @@
                 {
                     "System.dll",
                     "System.Core.dll",
-                    "System.Xml.dll"
+                    "System.Xml.dll",
+                    "System.Data.dll",
+                    "System.Data.DataSetExtensions.dll"
                 });

             // C#-Compiler erzeugen


Fixed Time Update packet

Fixed Time Update packet

--- Pdelvo.Minecraft.Protocol/Packets/TimeUpdatePacket.cs
+++ Pdelvo.Minecraft.Protocol/Packets/TimeUpdatePacket.cs
@@ -27,9 +27,9 @@
         /// <summary>
         /// Gets or sets the time.
         /// </summary>
-        /// <value>The time.</value>
+        /// <value>The date.</value>
         /// <remarks></remarks>
-        public long Day { get; set; }
+        public long DayTime { get; set; }

         /// <summary>
         /// Receives the specified reader.
@@ -41,12 +41,11 @@
         {
             if (reader == null)
                 throw new System.ArgumentNullException("reader");
-            Time = reader.ReadInt64();
             if (version >= 40)
-            {
-                Day = reader.ReadInt64();
-                System.Console.WriteLine(Day);
-            }
+                Time = reader.ReadInt64();
+            DayTime = reader.ReadInt64();
+
+            System.Console.WriteLine(Time + ":" + DayTime);
         }

         /// <summary>
@@ -60,9 +59,9 @@
             if (writer == null)
                 throw new System.ArgumentNullException("writer");
             writer.Write(Code);
-            writer.Write(Time);
             if (version >= 40)
-                writer.Write(Day);
+                writer.Write(Time);
+            writer.Write(DayTime);
         }
     }
 }


AdventureSample - change DI_n to int

AdventureSample - change DI_n to int

--- projects/AdventureSample/src/Adventure/adventure.cs
+++ projects/AdventureSample/src/Adventure/adventure.cs
@@ -38,7 +38,7 @@
     private float I_n;
     private float FL_n;
     private float RO_n;
-    private float DI_n;
+    private int DI_n;
     private float J_n;
     private float A_n;
     public adventure(TextReader input, TextWriter output)
@@ -944,27 +944,27 @@
         int ret = 0;
         if ((((noun.CompareTo("NOR")) == (0)) ? (-1) : (0)) != (0))
         {
-            DI_n = (0);
+            DI_n = 0;
         }
         else if ((((noun.CompareTo("SOU")) == (0)) ? (-1) : (0)) != (0))
         {
-            DI_n = (1);
+            DI_n = 1;
         }
         else if ((((noun.CompareTo("EAS")) == (0)) ? (-1) : (0)) != (0))
         {
-            DI_n = (2);
+            DI_n = 2;
         }
         else if ((((noun.CompareTo("WES")) == (0)) ? (-1) : (0)) != (0))
         {
-            DI_n = (3);
+            DI_n = 3;
         }
         else if ((((noun.CompareTo("UP")) == (0)) ? (-1) : (0)) != (0))
         {
-            DI_n = (4);
+            DI_n = 4;
         }
         else if ((((noun.CompareTo("DOW")) == (0)) ? (-1) : (0)) != (0))
         {
-            DI_n = (5);
+            DI_n = 5;
         }
         else if ((((int)(((noun.CompareTo("BOA")) == (0)) ? (-1) : (0))) & ((int)(((objectRooms[(int)(11)].CompareTo((currentRoom) + (128))) == (0)) ? (-1) : (0)))) != (0))
         {
@@ -997,12 +997,12 @@
     private bool Go()
     {
         bool ret = false;
-        if ((((int)(((map[(int)(currentRoom), (int)(DI_n)].CompareTo(0)) > (0)) ? (-1) : (0))) & ((int)(((map[(int)(currentRoom), (int)(DI_n)].CompareTo(128)) < (0)) ? (-1) : (0)))) != (0))
-        {
-            currentRoom = (map[(int)(currentRoom), (int)(DI_n)]);
+        if ((((int)(((map[(int)(currentRoom), DI_n].CompareTo(0)) > (0)) ? (-1) : (0))) & ((int)(((map[(int)(currentRoom), DI_n].CompareTo(128)) < (0)) ? (-1) : (0)))) != (0))
+        {
+            currentRoom = (map[(int)(currentRoom), DI_n]);
             ret = true;
         }
-        else if ((((map[(int)(currentRoom), (int)(DI_n)].CompareTo(128)) == (0)) ? (-1) : (0)) != (0))
+        else if ((((map[(int)(currentRoom), DI_n].CompareTo(128)) == (0)) ? (-1) : (0)) != (0))
         {
             PRINT(("") + ("THE GUARD WON'T LET YOU!"));
         }


More censoring

More censoring

--- MainForm.Designer.cs
+++ MainForm.Designer.cs
@@ -1225,7 +1225,7 @@
             this.MinimumSize = new System.Drawing.Size(975, 270);
             this.Name = "MainForm";
             this.Padding = new System.Windows.Forms.Padding(3);
-            this.Text = "WebM for***REMOVED***s";
+            this.Text = "WebM for [censored]";
             this.Load += new System.EventHandler(this.MainForm_Load);
             this.tableLayoutPanel1.ResumeLayout(false);
             this.groupBox1.ResumeLayout(false);


Fix assembly reference

Fix assembly reference


Use ConcurrentDictionary for collector registry

--- prometheus-net/Advanced/DefaultCollectorRegistry.cs
+++ prometheus-net/Advanced/DefaultCollectorRegistry.cs
@@ -1,6 +1,6 @@
 using System;
+using System.Collections.Concurrent;
 using System.Collections.Generic;
-using System.Linq;
 using Prometheus.Advanced.DataContracts;

 namespace Prometheus.Advanced
@@ -8,11 +8,8 @@
     public class DefaultCollectorRegistry : ICollectorRegistry
     {
         public readonly static DefaultCollectorRegistry Instance = new DefaultCollectorRegistry();
-
-        /// <summary>
-        /// a list with copy-on-write semantics implemented in-place below. This is to avoid any locks on the read side (ie, CollectAll())
-        /// </summary>
-        private List<ICollector> _collectors = new List<ICollector>();
+
+        private readonly ConcurrentDictionary<string, ICollector> _collectors = new ConcurrentDictionary<string, ICollector>();

         public void RegisterStandardPerfCounters()
         {
@@ -26,45 +23,28 @@
             //return _collectors.Select(value => value.Collect()).Where(c=>c != null);

             //replaced LINQ with code to avoid extra allocations
-            foreach (ICollector value in _collectors)
+            foreach (var value in _collectors.Values)
             {
-                MetricFamily c = value.Collect();
+                var c = value.Collect();
                 if (c != null) yield return c;
             }
         }

         public void Clear()
         {
-            lock (_collectors)
-            {
-                _collectors = new List<ICollector>();
-            }
+            _collectors.Clear();
         }

         public void Register(ICollector collector)
         {
-            if (_collectors.Any(c => c.Name == collector.Name))
-            {
+            if (!_collectors.TryAdd(collector.Name, collector))
                 throw new InvalidOperationException(string.Format("A collector with name '{0}' has already been registered!", collector.Name));
-            }
-
-            lock (_collectors)
-            {
-                var newList = new List<ICollector>(_collectors);
-                newList.Add(collector);
-                _collectors = newList;
-            }
         }

         public bool Remove(ICollector collector)
         {
-            lock (_collectors)
-            {
-                var newList = new List<ICollector>(_collectors);
-                bool removed = newList.Remove(collector);
-                _collectors = newList;
-                return removed;
-            }
+            ICollector dummy;
+            return _collectors.TryRemove(collector.Name, out dummy);
         }
     }
 }