KeyboardSteering now works without exceptions.

--- Game/SteeringBehaviors/KeyboardSteering.cs
+++ Game/SteeringBehaviors/KeyboardSteering.cs
@@ -1,4 +1,4 @@
-using System.Windows.Input;
+using System.Windows.Forms;
 using ISGPAI.Game.Entities;

 namespace ISGPAI.Game.SteeringBehaviors
@@ -11,19 +11,19 @@
 		public Vector2 Steer(MovingEntity agent)
 		{
 			Vector2 force = new Vector2();
-			if (Keyboard.IsKeyDown(Key.Left))
+			if (Keyboard.IsKeyDown(Keys.Left))
 			{
 				force.X -= 1;
 			}
-			if (Keyboard.IsKeyDown(Key.Right))
+			if (Keyboard.IsKeyDown(Keys.Right))
 			{
 				force.X += 1;
 			}
-			if (Keyboard.IsKeyDown(Key.Down))
+			if (Keyboard.IsKeyDown(Keys.Down))
 			{
 				force.Y -= 1;
 			}
-			if (Keyboard.IsKeyDown(Key.Up))
+			if (Keyboard.IsKeyDown(Keys.Up))
 			{
 				force.Y += 1;
 			}


Added looping.

Added looping.

--- HOTHelper.cs
+++ HOTHelper.cs
@@ -163,6 +163,17 @@
 		}

 		/// <summary>
+		/// Set the number of loops for this tween. Default 1, -1 repeats until stopped.
+		/// </summary>
+		/// <param name="loopCount"></param>
+		/// <returns></returns>
+		public HOTweenHelper Loops(int loopCount = 1)
+		{
+			Params.Loops(loopCount);
+			return this;
+		}
+
+		/// <summary>
 		/// Creates the tween, which starts it. Call this at the end of the sequence.
 		/// </summary>
 		/// <returns></returns>


Changing the canvas sizes now automatically updates all visible elements in the wireframe instead of just the selected one.

--- Gum/Gui/Forms/ProjectPropertyGridWindow.cs
+++ Gum/Gui/Forms/ProjectPropertyGridWindow.cs
@@ -59,8 +59,8 @@
             ProjectCommands.Self.SaveProject();

             GuiCommands.Self.RefreshWireframeDisplay();
-
-            EditingManager.Self.UpdateSelectedObjectsPositionAndDimensions();
+            WireframeObjectManager.Self.RefreshAll(true);
+            //EditingManager.Self.UpdateSelectedObjectsPositionAndDimensions();
         }

         private void AutoSaveCheckBox_CheckedChanged(object sender, EventArgs e)


adjust version and add ci integrate

adjust version and add ci integrate

--- Hangfire.SQLite/Properties/AssemblyInfo.cs
+++ Hangfire.SQLite/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@
 //可以指定所有这些值，也可以使用“生成号”和“修订号”的默认值，
 // 方法是按如下所示使用“*”: :
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.1")]
-[assembly: AssemblyFileVersion("1.1.1")]
+[assembly: AssemblyVersion("1.2.0")]
+[assembly: AssemblyFileVersion("1.2.0")]


I can see my refactoring

I can see my refactoring

--- DefinitelyTypedHubs/DefinitelyTypedHubs/CodeRefactoringProvider.cs
+++ DefinitelyTypedHubs/DefinitelyTypedHubs/CodeRefactoringProvider.cs
@@ -28,20 +28,20 @@
             var node = root.FindNode(context.Span);

             // Only offer a refactoring if the selected node is a type declaration node.
-            var typeDecl = node as TypeDeclarationSyntax;
+            var typeDecl = node as ClassDeclarationSyntax;
             if (typeDecl == null)
             {
                 return;
             }

             // For any type declaration node, create a code action to reverse the identifier text.
-            var action = CodeAction.Create("Reverse type name", c => ReverseTypeNameAsync(context.Document, typeDecl, c));
+            var action = CodeAction.Create("Generate Typescipt Typings", c => GenerateTypings(context.Document, typeDecl, c));

             // Register this code action.
             context.RegisterRefactoring(action);
         }

-        private async Task<Solution> ReverseTypeNameAsync(Document document, TypeDeclarationSyntax typeDecl, CancellationToken cancellationToken)
+        private async Task<Solution> GenerateTypings(Document document, TypeDeclarationSyntax typeDecl, CancellationToken cancellationToken)
         {
             // Produce a reversed version of the type declaration's identifier token.
             var identifierToken = typeDecl.Identifier;


Create method to set health value

Create method to set health value

--- HealthBar.cs
+++ HealthBar.cs
@@ -284,6 +284,14 @@
             previousValue = Health;
         }

+        /// <summary>
+        /// Sets health value.
+        /// </summary>
+        /// <param name="newValue"></param>
+        public void AssignHealthValue(int newValue) {
+            Health = newValue;
+        }
+
         #endregion METHODS
     }


code template for comments added

code template for comments added

--- Indicator/Open_Range_Breakout_Indicator.cs
+++ Indicator/Open_Range_Breakout_Indicator.cs
@@ -12,13 +12,22 @@
 using AgenaTrader.Helper;
 using System.Globalization;

+
+
+/// <summary>
 /// Version: 1.0
+/// -------------------------------------------------------------------------
+/// Simon Pucher 2016
+/// Christian Kovar 2016
+/// -------------------------------------------------------------------------
 /// ToDo
 /// 1)  Customzing für Börsenstart 09.00 oder 15.30
 /// 2)  Drawings in Background bringen, aktuell verdecken sie andere Indikatoren wie zB SMA200 -> erledigt mit Opacity
 /// 3)  automatische Ordererstellung (http://www.tradeescort.com/phpbb_de/viewtopic.php?f=19&t=2401)
 /// 4)  Im 1-Stundenchart wird automatisch das High/Low von dem kompletten Bar genommen. Es wird also die OpenRange von 2 Stunden genommen (120 Mins statt 75) Noch testen!
-
+/// -------------------------------------------------------------------------
+/// Namespace holds all indicators and is required. Do not change it.
+/// </summary>
 namespace AgenaTrader.UserCode
 {


just calling stop here because Stop() happens at some point

--- testOpenRoC/ProcessRunnerUnitTest.cs
+++ testOpenRoC/ProcessRunnerUnitTest.cs
@@ -338,7 +338,7 @@
             options.CrashedIfUnresponsive = true;
             using (ProcessRunner runner = new ProcessRunner(options))
             {
-                runner.Monitor();
+                runner.Stop();
                 Assert.IsNull(runner.Process);
             }


Small fix on EmailWelcomeCustomer page #174

--- web/en-US/Email/EmailWelcomeCustomer.cshtml
+++ web/en-US/Email/EmailWelcomeCustomer.cshtml
@@ -8,8 +8,8 @@
     var thisUserID = Request["UserID"].AsInt();
     var thisUser = LcData.UserInfo.GetUserRow(thisUserID);

-    var confirmationURL = Request["ConfirmationURL"];
-    var confirmationToken = Request["ConfirmationToken"];
+    var confirmationURL = Request["ConfirmationURL"] ?? "";
+    var confirmationToken = Request["ConfirmationToken"] ?? "";

     // Data for the EmailLayout:
     PageData["messageTitle"] = "Welcome to a new kind of marketplace";


Improved tests for deleted file propagation. Remove skipped test.

--- Kudu.FunctionalTests/GitDeploymentTests.cs
+++ Kudu.FunctionalTests/GitDeploymentTests.cs
@@ -63,7 +63,6 @@
             }
         }

-        [Fact(Skip = "Issue #11")]
         public void PushRepoWithProjectAndNoSolutionShouldDeploy()
         {
             // Arrange
@@ -152,16 +151,24 @@

                     // Act
                     appManager.GitDeploy(repositoryName);
+                    var results = appManager.DeploymentManager.GetResults().ToList();
+                    var response = GetResponse(appManager.SiteUrl + "Account/LogOn");
+
+                    // Assert
+                    Assert.Equal(1, results.Count);
+                    Assert.Equal(DeployStatus.Success, results[0].Status);
+                    Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+
                     File.Delete(deletePath);
                     File.WriteAllText(projectPath, File.ReadAllText(projectPath).Replace(@"<Compile Include=""Controllers\AccountController.cs"" />", ""));
                     Git.Commit(repositoryName, "Deleted the filez");
                     appManager.GitDeploy(repositoryName);
-                    var response = GetResponse(appManager.SiteUrl + "Account/LogOn");
-                    var results = appManager.DeploymentManager.GetResults().ToList();
-
-                    // Assert
-                    Assert.Equal(2, results.Count);
-                    Assert.Equal(DeployStatus.Success, results[0].Status);
+                    response = GetResponse(appManager.SiteUrl + "Account/LogOn");
+                    results = appManager.DeploymentManager.GetResults().ToList();
+
+                    // Assert
+                    Assert.Equal(2, results.Count);
+                    Assert.Equal(DeployStatus.Success, results[1].Status);
                     Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
                 });
             }
@@ -171,8 +178,7 @@
         public void DeletesToRepositoryArePropagatedForNonWaps()
         {
             string repositoryName = "Bakery2";
-            string appName = "DeletesToRepositoryArePropagatedForNonWaps";
-            string verificationText = "Welcome to Fourth Coffee!";
+            string appName = "DeletesToRepositoryArePropagatedForNonWaps";
             using (var repo = Git.CreateLocalRepository(repositoryName))
             {
                 ApplicationManager.Run(appName, appManager =>
@@ -181,16 +187,26 @@

                     // Act
                     appManager.GitDeploy(repositoryName);
+
+                    // Assert
+                    HttpResponseMessage response = GetResponse(appManager.SiteUrl + "Styles/Site.css");
+                    var results = appManager.DeploymentManager.GetResults().ToList();
+                    Assert.Equal(1, results.Count);
+                    Assert.Equal(DeployStatus.Success, results[0].Status);
+                    Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+
+
                     Directory.Delete(deletePath, recursive: true);
                     Git.Commit(repositoryName, "Deleted all styles");
-                    appManager.GitDeploy(repositoryName);
-                    string response = GetResponseBody(appManager.SiteUrl);
-                    var results = appManager.DeploymentManager.GetResults().ToList();
-
-                    // Assert
-                    Assert.Equal(2, results.Count);
-                    Assert.Equal(DeployStatus.Success, results[0].Status);
-                    Assert.True(response.Contains(verificationText));
+
+                    appManager.GitDeploy(repositoryName);
+                    response = GetResponse(appManager.SiteUrl + "Styles/Site.css");
+                    results = appManager.DeploymentManager.GetResults().ToList();
+
+                    // Assert
+                    Assert.Equal(2, results.Count);
+                    Assert.Equal(DeployStatus.Success, results[1].Status);
+                    Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
                 });
             }
         }


generic-аргументы берутся из типа и из самого метода

--- Lens.SyntaxTree/Compiler/Context.Lookup.cs
+++ Lens.SyntaxTree/Compiler/Context.Lookup.cs
@@ -254,12 +254,7 @@
 				{
 					var argTypeDefs = method.MethodInfo.GetParameters().Select(p => p.ParameterType).ToArray();
 					var genericDefs = method.MethodInfo.GetGenericArguments();
-					var genericValues = GenericHelper.ResolveMethodGenericsByArgs(
-						argTypeDefs,
-						argTypes,
-						genericDefs,
-						hints
-					);
+					var genericValues = GenericHelper.ResolveMethodGenericsByArgs(argTypeDefs, argTypes, genericDefs, hints);

 					mw.MethodInfo = method.MethodInfo.MakeGenericMethod(genericValues);
 					mw.ArgumentTypes = method.GetArgumentTypes(this).Select(t => GenericHelper.ApplyGenericArguments(t, genericDefs, genericValues)).ToArray();
@@ -336,43 +331,36 @@
 				var mInfoOriginal = genMethod.Item1;
 				var mInfo = TypeBuilder.GetMethod(type, genMethod.Item1);
 				var expectedTypes = genMethod.Item3;
-				Type[] genericValues = null;
-				Type retType = GenericHelper.ApplyGenericArguments(mInfoOriginal.ReturnType, type, false);

 				if (mInfoOriginal.IsGenericMethod)
 				{
 					var genericDefs = mInfoOriginal.GetGenericArguments();
-					genericValues = GenericHelper.ResolveMethodGenericsByArgs(expectedTypes, argTypes, genericDefs, hints);
+					var genericValues = GenericHelper.ResolveMethodGenericsByArgs(expectedTypes, argTypes, genericDefs, hints);

 					mInfo = mInfo.MakeGenericMethod(genericValues);

-					// setting generic argument values unresolved by containing type to values of current method
-
-					if (retType.IsGenericParameter)
-						retType = genericValues[Array.IndexOf(genericDefs, retType)];
-
-					for (var idx = 0; idx < expectedTypes.Length; idx++)
-						if (expectedTypes[idx].IsGenericParameter)
-							expectedTypes[idx] = genericValues[Array.IndexOf(genericDefs, expectedTypes[idx])];
+					var totalGenericDefs = genericDefs.Union(genType.GetGenericTypeDefinition().GetGenericArguments()).ToArray();
+					var totalGenericValues = genericValues.Union(type.GetGenericArguments()).ToArray();
+
+					mw.GenericArguments = genericValues;
+					mw.ReturnType = GenericHelper.ApplyGenericArguments(mInfoOriginal.ReturnType, totalGenericDefs, totalGenericValues);
+					mw.ArgumentTypes = mInfoOriginal.GetParameters().Select(p => GenericHelper.ApplyGenericArguments(p.ParameterType, totalGenericDefs, totalGenericValues)).ToArray();
 				}
-				else if (hints != null)
-				{
-					Error(CompilerMessages.GenericArgsToNonGenericMethod, name);
+				else
+				{
+					if (hints != null)
+						Error(CompilerMessages.GenericArgsToNonGenericMethod, name);
+
+					mw.ArgumentTypes = mInfoOriginal.GetParameters().Select(p => GenericHelper.ApplyGenericArguments(p.ParameterType, type)).ToArray();
+					mw.ReturnType = GenericHelper.ApplyGenericArguments(mInfoOriginal.ReturnType, type, false);
 				}

-				return new MethodWrapper
-				{
-					Name = name,
-					Type = type,
-
-					MethodInfo = mInfo,
-					IsStatic = mInfoOriginal.IsStatic,
-					IsVirtual = mInfoOriginal.IsVirtual,
-					ArgumentTypes = expectedTypes,
-					GenericArguments = genericValues,
-					ReturnType = retType
-				};
-			}
+				mw.MethodInfo = mInfo;
+				mw.IsStatic = mInfoOriginal.IsStatic;
+				mw.IsVirtual = mInfoOriginal.IsVirtual;
+			}
+
+			return mw;
 		}

 		/// <summary>


champion details - champion image included according to current skin selected

--- LoLUniverse/Views/Champions/Details.cshtml
+++ LoLUniverse/Views/Champions/Details.cshtml
@@ -42,8 +42,16 @@

-

-
Lore

-
@Html.Raw(Model.StaticChampionDto.Lore)

+
+

+

+
+

+

+
Lore

+
@Html.Raw(Model.StaticChampionDto.Lore)

+

+
+


RetryMeElse requires that we are able to update the choice point's next clause value, so make it read-write

--- LogicalShift.Reason/Solvers/ChoicePoint.cs
+++ LogicalShift.Reason/Solvers/ChoicePoint.cs
@@ -29,7 +29,7 @@
         /// <summary>
         /// The location of the next clause
         /// </summary>
-        private readonly int _nextClause;
+        private int _nextClause;

         /// <summary>
         /// The environment in use when this choice point was created
@@ -78,6 +78,7 @@
         public int NextClause
         {
             get { return _nextClause; }
+            set { _nextClause = value; }
         }

         /// <summary>


Fix Toggles section scrollbar issue (#1962)

--- MainDemo.Wpf/Domain/MainWindowViewModel.cs
+++ MainDemo.Wpf/Domain/MainWindowViewModel.cs
@@ -129,13 +129,17 @@
                     {
                         VerticalScrollBarVisibilityRequirement = ScrollBarVisibility.Auto
                     },
-                new DemoItem("Toggles", new Toggles(), new []
-                {
-                    DocumentationLink.DemoPageLink<Toggles>(),
-                    DocumentationLink.StyleLink("ToggleButton"),
-                    DocumentationLink.StyleLink("CheckBox"),
-                    DocumentationLink.ApiLink<Toggles>()
-                }),
+                new DemoItem("Toggles", new Toggles(),
+                    new []
+                    {
+                        DocumentationLink.DemoPageLink<Toggles>(),
+                        DocumentationLink.StyleLink("ToggleButton"),
+                        DocumentationLink.StyleLink("CheckBox"),
+                        DocumentationLink.ApiLink<Toggles>()
+                    })
+                    {
+                        VerticalScrollBarVisibilityRequirement = ScrollBarVisibility.Auto
+                    },
                 new DemoItem("Rating Bar", new RatingBar(), new []
                 {
                     DocumentationLink.DemoPageLink<RatingBar>(),


add example for a full text search with multiple fields

--- MicroORM_Dapper/MicroORM_Dapper/Program.cs
+++ MicroORM_Dapper/MicroORM_Dapper/Program.cs
@@ -30,6 +30,8 @@
             OneToOneRelation();

             NToMRelation();
+
+            FullTextSearch();
         }

         private static void ReadData()
@@ -165,6 +167,24 @@

         }

+        private static void FullTextSearch()
+        {
+            using (var connection = Program.GetOpenConnection())
+            {
+                var books =
+                    connection.Query<Book>(
+                        "SELECT * FROM [Book] WHERE CONTAINS((Summary, Title),'\"Ruby on Rails\" or math or Rails')")
+                        .ToList();
+
+                Console.WriteLine("Results from the fulltext search:");
+                foreach (var book in books)
+                {
+                    Console.WriteLine(book);
+                }
+            }
+        }
+
+
         private static SqlConnection GetOpenConnection()
         {
             var cs = ConfigurationManager.ConnectionStrings["OrmConnection"].ConnectionString;


Fixed comment.

Fixed comment.

--- Models/Models/Evolution/CollectionReset.cs
+++ Models/Models/Evolution/CollectionReset.cs
@@ -74,8 +74,7 @@
     public class CollectionResetComposition<T> : CollectionResetBase<T>
     {
         public ICollection<T> NewState { get; set; }
-
-        //Use this only if Invert functionality is necessary
+
         [EditorBrowsable(EditorBrowsableState.Never)]
         public CollectionResetComposition(Uri absoluteUri, string collectionPropertyName)
             : base(absoluteUri, collectionPropertyName)


Added some manual memory management.

Added some manual memory management.

--- Behemoth.TaoUtil/Media.cs
+++ Behemoth.TaoUtil/Media.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Runtime.InteropServices;
 using System.IO;

 using Tao.DevIl;
@@ -222,6 +223,8 @@

       Al.alBufferData(buffer, format, data, size, (int)frequency);

+      FreePfsData(data);
+
       soundBuffers[filename] = buffer;

       return buffer;
@@ -311,6 +314,12 @@
     }

+    public static void FreePfsData(IntPtr data)
+    {
+      Marshal.FreeHGlobal(data);
+    }
+
+
     /// <summary>
     /// Get the data from a PhysFS file as a byte array.
     /// </summary>


If a column starts with a digit, prefix with _.

Patch thanks to jared.m.barboza.

Fixes issue 198.

git-svn-id: 1800f71f313d917366f95485fa960eed04b40598@1311 33146b6e-df29-0410-a1ca-39be37fb9416

--- src/DbLinq/Vendor/Implementation/SchemaLoader.cs
+++ src/DbLinq/Vendor/Implementation/SchemaLoader.cs
@@ -38,6 +38,7 @@
 using DbLinq.Factory;
 using DbLinq.Schema;
 using DbLinq.Schema.Dbml;
+using System.Text.RegularExpressions;

 namespace DbLinq.Vendor.Implementation
 {
@@ -237,6 +238,8 @@
             return CreateTableName(dbTableName, dbSchema, nameAliases, nameFormat, GetExtraction(dbTableName));
         }

+        Regex startsWithNumber = new Regex(@"^\d", RegexOptions.Compiled);
+
         /// <summary>
         /// Creates the name of the column.
         /// </summary>
@@ -265,6 +268,10 @@
             var tableName = CreateTableName(dbTableName, dbSchema, nameAliases, nameFormat);
             if (columnName.PropertyName == tableName.ClassName)
                 columnName.PropertyName = columnName.PropertyName + "1";
+
+            if (startsWithNumber.IsMatch(columnName.PropertyName))
+                columnName.PropertyName = "_" + columnName.PropertyName;
+
             columnName.DbName = dbColumnName;
             return columnName;
         }


fixed issue when resource collection was modified due to json converter with nested resource classes

--- src/DbLocalizationProvider/Json/JsonConverter.cs
+++ src/DbLocalizationProvider/Json/JsonConverter.cs
@@ -39,9 +39,6 @@
             var resources = new GetAllResources.Query().Execute();
             var filteredResources = resources.Where(r => r.ResourceKey.StartsWith(resourceClassName, StringComparison.InvariantCultureIgnoreCase)).ToList();

-            // we need to process key names and supported nested classes with "+" symbols in keys -> so we replace those with dots to have proper object nesting on client side
-            filteredResources.ForEach(r => r.ResourceKey = r.ResourceKey.Replace("+", "."));
-
             return Convert(filteredResources, languageName, ConfigurationContext.Current.EnableInvariantCultureFallback, camelCase);
         }

@@ -51,13 +48,15 @@

             foreach(var resource in resources)
             {
-                if(!resource.ResourceKey.Contains("."))
+                // we need to process key names and supported nested classes with "+" symbols in keys -> so we replace those with dots to have proper object nesting on client side
+                var key = resource.ResourceKey.Replace("+", ".");
+                if(!key.Contains("."))
                     continue;

                 if(!resource.Translations.ExistsLanguage(language) && !invariantCultureFallback)
                     continue;

-                var segments = resource.ResourceKey.Split(new[] { "." }, StringSplitOptions.None).Select(k => camelCase ? CamelCase(k) : k).ToList();
+                var segments = key.Split(new[] { "." }, StringSplitOptions.None).Select(k => camelCase ? CamelCase(k) : k).ToList();
                 var translation = resource.Translations.ByLanguage(language, invariantCultureFallback);

                 Aggregate(result,


added get/set for X, Y, Z for Player

added get/set for X, Y, Z for Player

--- tibiaapi/Objects/Player.cs
+++ tibiaapi/Objects/Player.cs
@@ -352,6 +352,21 @@
             get { return client.ReadInt32(Addresses.Player.Target_BList_Type); }
             set { client.WriteInt32(Addresses.Player.Target_BList_Type, value); }
         }
+        public int Z
+        {
+            get { return client.ReadInt32(Addresses.Player.Z); }
+            set { client.WriteInt32(Addresses.Player.Z, value); }
+        }
+        public int Y
+        {
+            get { return client.ReadInt32(Addresses.Player.Y); }
+            set { client.WriteInt32(Addresses.Player.Y, value); }
+        }
+        public int X
+        {
+            get { return client.ReadInt32(Addresses.Player.X); }
+            set { client.WriteInt32(Addresses.Player.X, value); }
+        }
         #endregion
     }
 }


Removed several old #ifs

Removed several old #ifs

--- src/Discord.Net/Net/WebSockets/VoiceWebSocket.cs
+++ src/Discord.Net/Net/WebSockets/VoiceWebSocket.cs
@@ -1,5 +1,4 @@
-#define USE_THREAD
-using Discord.API;
+using Discord.API;
 using Discord.Audio;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
@@ -36,10 +35,8 @@
 		private byte[] _secretKey, _encodingBuffer;
 		private ushort _sequence;
 		private string _serverId, _channelId, _userId, _sessionId, _token, _encryptionMode;
-
-#if USE_THREAD
+
 		private Thread _sendThread, _receiveThread;
-#endif

 		public string CurrentServerId => _serverId;
 		public string CurrentChannelId => _channelId;
@@ -109,9 +106,6 @@
 		protected override IEnumerable<Task> GetTasks()
 		{
 			_udp = new UdpClient(new IPEndPoint(IPAddress.Any, 0));
-#if !DNX451 && !__MonoCS__
-			_udp.AllowNatTraversal(true);
-#endif

 			VoiceLoginCommand msg = new VoiceLoginCommand();
 			msg.Payload.ServerId = _serverId;
@@ -123,16 +117,11 @@
 			List<Task> tasks = new List<Task>();
 			if ((_client.Config.VoiceMode & DiscordVoiceMode.Outgoing) != 0)
 			{
-#if USE_THREAD
 				_sendThread = new Thread(new ThreadStart(() => SendVoiceAsync(_cancelToken)));
 				_sendThread.IsBackground = true;
                 _sendThread.Start();
-#else
-				tasks.Add(SendVoiceAsync());
-#endif
-			}
-
-#if USE_THREAD
+			}
+
 			//This thread is required to establish a connection even if we're outgoing only
 			if ((_client.Config.VoiceMode & DiscordVoiceMode.Incoming) != 0)
 			{
@@ -142,9 +131,6 @@
 			}
 			else //Dont make an OS thread if we only want to capture one packet...
 				tasks.Add(Task.Run(() => ReceiveVoiceAsync(_cancelToken)));
-#else
-				tasks.Add(ReceiveVoiceAsync());
-#endif

 			tasks.Add(WatcherAsync());
 			if (tasks.Count > 0)
@@ -162,14 +148,12 @@
 		}
 		protected override Task Cleanup()
 		{
-#if USE_THREAD
 			if (_sendThread != null)
 				_sendThread.Join();
 			if (_receiveThread != null)
 				_receiveThread.Join();
 			_sendThread = null;
 			_receiveThread = null;
-#endif

 			OpusDecoder decoder;
 			foreach (var pair in _decoders)
@@ -189,18 +173,9 @@

 			return base.Cleanup();
 		}
-
-#if USE_THREAD
+
 		private void ReceiveVoiceAsync(CancellationToken cancelToken)
 		{
-#else
-		private Task ReceiveVoiceAsync()
-		{
-			var cancelToken = _cancelToken;
-
-			return Task.Run(async () =>
-			{
-#endif
 			try
 			{
 				byte[] packet, decodingBuffer = null, nonce = null, result;
@@ -215,20 +190,10 @@

 				while (!cancelToken.IsCancellationRequested)
 				{
-#if USE_THREAD
 					Thread.Sleep(1);
-#elif DNXCORE50
-					await Task.Delay(1).ConfigureAwait(false);
-#endif
-#if USE_THREAD || DNXCORE50
 					if (_udp.Available > 0)
 					{
 						packet = _udp.Receive(ref endpoint);
-#else
-						var msg = await _udp.ReceiveAsync().ConfigureAwait(false);
-						endpoint = msg.Endpoint;
-						receievedPacket = msg.Buffer;
-#endif
 						packetLength = packet.Length;

                         if (packetLength > 0 && endpoint.Equals(_endpoint))
@@ -304,40 +269,19 @@
 									RaiseOnPacket(userId, _channelId, result, resultOffset, resultLength);
 							}
 						}
-#if USE_THREAD || DNXCORE50
-					}
-#endif
+					}
 				}
 			}
             catch (OperationCanceledException) { }
 			catch (InvalidOperationException) { } //Includes ObjectDisposedException
-#if !USE_THREAD
-			}).ConfigureAwait(false);
-#endif
-		}
-
-#if USE_THREAD
+		}
+
 		private void SendVoiceAsync(CancellationToken cancelToken)
 		{
-#else
-		private Task SendVoiceAsync()
-		{
-			var cancelToken = _cancelToken;
-
-			return Task.Run(async () =>
-			{
-#endif
-
 			try
 			{
 				while (!cancelToken.IsCancellationRequested && _state != (int)WebSocketState.Connected)
-				{
-#if USE_THREAD
 					Thread.Sleep(1);
-#else
-					await Task.Delay(1);
-#endif
-				}

 				if (cancelToken.IsCancellationRequested)
 					return;
@@ -406,11 +350,7 @@
 									Buffer.BlockCopy(encodedFrame, 0, udpPacket, 12, encodedLength);
 									rtpPacketLength = encodedLength + 12;
 								}
-#if USE_THREAD
 								_udp.Send(udpPacket, rtpPacketLength);
-#else
-								await _udp.SendAsync(rtpPacket, rtpPacketLength).ConfigureAwait(false);
-#endif
 							}
 							timestamp = unchecked(timestamp + samplesPerFrame);
 							nextTicks += ticksPerFrame;
@@ -420,29 +360,12 @@
 					else if (ticksToNextFrame > spinLockThreshold)
 					{
 						int time = (int)Math.Ceiling((ticksToNextFrame - spinLockThreshold) / ticksPerMillisecond);
-#if USE_THREAD
 						Thread.Sleep(1);
-#else
-						await Task.Delay(1).ConfigureAwait(false);
-#endif
-					}
-					//Don't spinlock if we're not actually sending audio (or buffer underrunning)
-					/*else if (_sendQueue.Count == 0)
-					{
-						int time = (int)Math.Ceiling(ticksToNextFrame / ticksPerMillisecond);
-#if USE_THREAD
-						Thread.Sleep(1);
-#else
-						await Task.Delay(1).ConfigureAwait(false);
-#endif
-					}*/
+					}
 				}
 			}
 			catch (OperationCanceledException) { }
 			catch (InvalidOperationException) { } //Includes ObjectDisposedException
-#if !USE_THREAD
-			}).ConfigureAwait(false);
-#endif
 		}
 		//Closes the UDP socket when _disconnectToken is triggered, since UDPClient doesn't allow passing a canceltoken
 		private Task WatcherAsync()


Fixed compile error caused by bad interpolation codegen.


Collision relationships created from Gum objects force update dependencies.


Added more informative sublabel to the reload checkbox.


Added some code to the MethodInterceptor and started building out the first line of log info. Now I just need to figure out how to get this info into a logger.

git-svn-id: bab0c2de90ee11a20376049c2cdee62584491f34@734 73e77b4c-caa6-f847-a29a-24ab75ae54b6

--- Facilities/Logging/Castle.Facilities.Logging/LoggingInterceptor.cs
+++ Facilities/Logging/Castle.Facilities.Logging/LoggingInterceptor.cs
@@ -15,6 +15,7 @@
 namespace Castle.Facilities.Logging
 {
 	using System;
+    using System.Text;

 	using Castle.Model;
 	using Castle.Model.Interceptor;
@@ -35,8 +36,27 @@

 		public object Intercept(IMethodInvocation invocation, params object[] args)
 		{
-
-			return invocation.Proceed(args);
+            object result = null;
+            try
+            {
+                StringBuilder loginfo = new StringBuilder();
+                loginfo.Append("Method Name: ");
+                loginfo.Append(invocation.Method.Name);
+                for (int i = 0; i < args.Length; i++)
+                {
+                    loginfo.AppendFormat(", Parameter {0}: {1}", i, args[i]);
+                }
+                //log loginfo.ToString()
+            }
+            catch
+            {
+                //silently fails?
+            }
+            finally
+            {
+                result = invocation.Proceed(args);
+            }
+            return result;
 		}
 	}
 }


Pass setpgid=y to the soft debugger agent.

--- Mono.Debugging.Soft/SoftDebuggerSession.cs
+++ Mono.Debugging.Soft/SoftDebuggerSession.cs
@@ -195,7 +195,7 @@
 			var sdbLog = Environment.GetEnvironmentVariable ("MONODEVELOP_SDB_LOG");
 			if (!string.IsNullOrEmpty (sdbLog)) {
 				options = options ?? new LaunchOptions ();
-				options.AgentArgs = string.Format ("loglevel=1,logfile='{0}'", sdbLog);
+				options.AgentArgs = string.Format ("loglevel=1,logfile='{0}',setpgid=y", sdbLog);
 			}

 			foreach (var env in args.MonoRuntimeEnvironmentVariables)


Fix item placement inside craft window inventory

--- MonoHaven.Client/UI/Widgets/CraftWindow.cs
+++ MonoHaven.Client/UI/Widgets/CraftWindow.cs
@@ -72,6 +72,7 @@
 			var inv = new InventoryWidget(this);
 			inv.SetInventorySize(1, 1);
 			var itemWidget = new ItemWidget(inv, null);
+			itemWidget.Move(1, 1);
 			itemWidget.Item = item;

 			int column = inputLayout.ColumnCount;


Add a donation pool for Groestl

Add a donation pool for Groestl

--- MultiMiner.Engine/Helpers/DonationPools.cs
+++ MultiMiner.Engine/Helpers/DonationPools.cs
@@ -295,6 +295,10 @@

             //YAC
             donationConfiguration = CreateCoinConfiguration("YAC", "stratum+tcp://yac.coinmine.pl", 9088);
+            configurations.Add(donationConfiguration);
+
+            //GRS
+            donationConfiguration = CreateCoinConfiguration("GRS", "stratum+tcp://grs.suprnova.cc", 5544);
             configurations.Add(donationConfiguration);
         }


added date

added date

--- NJetty.Servlet_3_0.Spec/IServletContext.cs
+++ NJetty.Servlet_3_0.Spec/IServletContext.cs
@@ -52,7 +52,7 @@
     ///     Leopoldo Lee Agdeppa III
     /// </author>
     /// <date>
-    /// TODO: date here
+    /// January 2009
     /// </date>
     public interface IServletContext
     {


Fix delimited setting interface

Fix delimited setting interface

--- src/FlatFile.Delimited/DelimitedFieldSettings.cs
+++ src/FlatFile.Delimited/DelimitedFieldSettings.cs
@@ -3,12 +3,16 @@
     using System.Reflection;
     using FlatFile.Core.Base;

-    public interface IDelimitedFieldSettings : IFieldSettingsContainer
+    public interface IDelimitedFieldSettings : IFieldSettings
     {
         string Name { get; set; }
     }

-    public class DelimitedFieldSettings : FieldSettingsBase, IDelimitedFieldSettings
+    public interface IDelimitedFieldSettingsContainer : IDelimitedFieldSettings, IFieldSettingsContainer
+    {
+    }
+
+    public class DelimitedFieldSettings : FieldSettingsBase, IDelimitedFieldSettingsContainer
     {
         public DelimitedFieldSettings(PropertyInfo propertyInfo) : base(propertyInfo)
         {


sfsdf

sfsdf

--- HackManchester2014/HackManchester2014/Account/Views/Account.cshtml
+++ HackManchester2014/HackManchester2014/Account/Views/Account.cshtml
@@ -12,19 +12,13 @@

£@Model.TotalDonated

Donated

-
-

-
@Model.TotalDonations

-
Donations

-

£@Model.TotalRaised

Raised

-

-
@Model.TotalNominated

-
Donations

+
@Model.TotalDonated

+
Nominated


refactor(dir): ♻ lint ChangesController

refactor(dir): ♻ lint ChangesController

--- services/Directory/FilterLists.Directory.Api/Controllers/ChangesController.cs
+++ services/Directory/FilterLists.Directory.Api/Controllers/ChangesController.cs
@@ -20,10 +20,9 @@
     /// <param name="cancellationToken">The cancellation token.</param>
     /// <returns>The changes.</returns>
     [HttpGet]
-    //[ProducesResponseType(typeof(IEnumerable<GetChanges.ChangesVm>), StatusCodes.Status200OK)]
-    public async Task<IActionResult> Get(CancellationToken cancellationToken)
+    [ProducesResponseType(typeof(List<GetChanges.ChangesVm>), StatusCodes.Status200OK)]
+    public Task<IActionResult> Get(CancellationToken cancellationToken)
     {
-        return Ok(await _mediator.Send(new GetChanges.Query(), cancellationToken));
-        //return CacheGetOrCreateAsync(() => _mediator.Send(new GetChanges.Query(), cancellationToken));
+        return CacheGetOrCreateAsync(() => _mediator.Send(new GetChanges.Query(), cancellationToken));
     }
 }


BUGFIX MT-9406 Plug autoredirect doesnt pass on cookies\nCookies from non 2xx responses were being ignored. (cherry picked from commit 5160ccddf40c80dd9cf739ba3ed0734737ab0b20)

--- src/mindtouch.dream/plug/Plug.cs
+++ src/mindtouch.dream/plug/Plug.cs
@@ -241,7 +241,7 @@
         private static DreamMessage PostProcess(string verb, XUri uri, XUri normalizedUri, DreamHeaders headers, DreamCookieJar cookies, DreamMessage message) {

             // check if we received cookies
-            if(message.IsSuccessful && message.HasCookies) {
+            if(message.HasCookies) {
                 DreamContext context = DreamContext.CurrentOrNull;

                 // add matching cookies to service or to global cookie jar


Missed the using directive with previous change

--- IoTCoreDefaultApp/IoTCoreDefaultApp/Utils/DeviceTypeInformation.cs
+++ IoTCoreDefaultApp/IoTCoreDefaultApp/Utils/DeviceTypeInformation.cs
@@ -1,6 +1,7 @@
 // Copyright (c) Microsoft. All rights reserved.

 using Windows.Security.ExchangeActiveSyncProvisioning;
+using System;

 namespace IoTCoreDefaultApp.Utils
 {


Resolve unassigned properties

Resolve unassigned properties

--- osu.Game.Tests/Online/TestAPIModSerialization.cs
+++ osu.Game.Tests/Online/TestAPIModSerialization.cs
@@ -59,8 +59,8 @@

             public override DifficultyCalculator CreateDifficultyCalculator(WorkingBeatmap beatmap) => throw new System.NotImplementedException();

-            public override string Description { get; }
-            public override string ShortName { get; }
+            public override string Description { get; } = string.Empty;
+            public override string ShortName { get; } = string.Empty;
         }

         private class TestMod : Mod


Fix osu!direct global action not being bound to a key

--- osu.Game/Input/Bindings/GlobalActionContainer.cs
+++ osu.Game/Input/Bindings/GlobalActionContainer.cs
@@ -32,6 +32,7 @@
             new KeyBinding(new[] { InputKey.Control, InputKey.Alt, InputKey.R }, GlobalAction.ResetInputSettings),
             new KeyBinding(new[] { InputKey.Control, InputKey.T }, GlobalAction.ToggleToolbar),
             new KeyBinding(new[] { InputKey.Control, InputKey.O }, GlobalAction.ToggleSettings),
+            new KeyBinding(new[] { InputKey.Control, InputKey.D }, GlobalAction.ToggleDirect),

             new KeyBinding(InputKey.Escape, GlobalAction.Back),
             new KeyBinding(InputKey.ExtraMouseButton1, GlobalAction.Back),


Fix recommender's incorrect usage of current ruleset

--- osu.Game/Screens/Select/DifficultyRecommender.cs
+++ osu.Game/Screens/Select/DifficultyRecommender.cs
@@ -51,7 +51,7 @@

             foreach (var r in getBestRulesetOrder())
             {
-                recommendedStarDifficulty.TryGetValue(ruleset.Value, out var stars);
+                recommendedStarDifficulty.TryGetValue(r, out var stars);

                 beatmap = beatmaps.Where(b => b.Ruleset.Equals(r)).OrderBy(b =>
                 {


Added conversion to LazyExpression

Added conversion to LazyExpression

--- Circuit/Utils/Quantity.cs
+++ Circuit/Utils/Quantity.cs
@@ -91,6 +91,7 @@
         }

         public static implicit operator Expression(Quantity x) { return x.x; }
+        public static implicit operator LazyExpression(Quantity x) { return new LazyExpression(x.x); }
         public static explicit operator Real(Quantity x) { return (Real)x.x; }
         public static explicit operator double(Quantity x) { return (double)x.x; }


Adding multi background job server unit test

--- src/Hangfire.Mongo.Tests/MultipleServersFacts.cs
+++ src/Hangfire.Mongo.Tests/MultipleServersFacts.cs
@@ -1,4 +1,5 @@
 using System;
+using System.Linq;
 using System.Threading.Tasks;
 using Hangfire.Common;
 using Hangfire.Mongo.Tests.Utils;
@@ -69,5 +70,53 @@
             }
         }

+
+        [Fact, CleanDatabase]
+        public void MultipleBackgroundJobServers_AddsRecurrentJobs()
+        {
+            // ARRANGE
+            const int serverCount = 15;
+            const int workerCount = 2;
+
+            JobStorage.Current = ConnectionUtils.CreateStorage(new MongoStorageOptions());
+
+            var options = Enumerable.Range(0, serverCount)
+                .Select((_, i) => new BackgroundJobServerOptions
+                {
+                    Queues = new[] { "default", $"queue_{i}" },
+                    WorkerCount = workerCount
+                })
+                .ToList();
+
+            var servers = options.Select(o => new BackgroundJobServer(o)).ToList();
+
+            // let hangfire run for 1 sec
+            Task.Delay(1000).Wait();
+
+            // ACT
+            foreach (var queue in options.SelectMany(o => o.Queues))
+            {
+                for (int i = 0; i < workerCount; i++)
+                {
+                    RecurringJob.AddOrUpdate($@"job_{queue}.{i}-a", () => System.Diagnostics.Debug.WriteLine($@"{queue}.{i}-a"), Cron.Minutely(), null, queue);
+                    RecurringJob.AddOrUpdate($@"job_{queue}.{i}-b", () => System.Diagnostics.Debug.WriteLine($@"{queue}.{i}-b"), Cron.Minutely(), null, queue);
+                }
+            }
+
+            // let hangfire run for 1 sec
+            Task.Delay(1000).Wait();
+
+            // ASSERT
+            servers.ForEach(s =>
+            {
+                s.SendStop();
+            });
+            servers.ForEach(s =>
+            {
+                s.Dispose();
+            });
+
+        }
+
     }
 }


React to HttpContext.Features API changes.

--- src/Microsoft.AspNet.TestHost/WebSocketClient.cs
+++ src/Microsoft.AspNet.TestHost/WebSocketClient.cs
@@ -94,7 +94,7 @@
                 HttpContext = new DefaultHttpContext(FeatureCollection);

                 // Request
-                HttpContext.SetFeature<IHttpRequestFeature>(new RequestFeature());
+                HttpContext.Features.Set<IHttpRequestFeature>(new RequestFeature());
                 var request = HttpContext.Request;
                 request.Protocol = "HTTP/1.1";
                 var scheme = uri.Scheme;
@@ -122,13 +122,13 @@
                 request.Body = Stream.Null;

                 // Response
-                HttpContext.SetFeature<IHttpResponseFeature>(new ResponseFeature());
+                HttpContext.Features.Set<IHttpResponseFeature>(new ResponseFeature());
                 var response = HttpContext.Response;
                 response.Body = Stream.Null;
                 response.StatusCode = 200;

                 // WebSocket
-                HttpContext.SetFeature<IHttpWebSocketFeature>(this);
+                HttpContext.Features.Set<IHttpWebSocketFeature>(this);
             }

             public void PipelineComplete()


Fix #12834: Wrong order of params to ArgumentNullException ctor (#12839)

Fixes #12834

--- src/Mvc/Mvc.Core/src/Routing/UrlHelperFactory.cs
+++ src/Mvc/Mvc.Core/src/Routing/UrlHelperFactory.cs
@@ -21,7 +21,7 @@
         {
             if (context == null)
             {
-                throw new ArgumentNullException(Resources.ArgumentCannotBeNullOrEmpty, (nameof(context)));
+                throw new ArgumentNullException(nameof(context));
             }

             var httpContext = context.HttpContext;
@@ -69,4 +69,4 @@
             return urlHelper;
         }
     }
-}+}


Fixed rosidl_message_type_support struct

--- src/NativeTypes/rosidl_message_type_support_t.cs
+++ src/NativeTypes/rosidl_message_type_support_t.cs
@@ -6,6 +6,7 @@
 	{
 		public IntPtr typesupport_identifier;
 		public IntPtr data;
+		public IntPtr func;
 	}
 }


Fix TzdbDateTimeZoneSource documentation to be saner.

Fixes issue 208.

--- src/NodaTime/TimeZones/TzdbDateTimeZoneSource.cs
+++ src/NodaTime/TimeZones/TzdbDateTimeZoneSource.cs
@@ -17,8 +17,8 @@
 namespace NodaTime.TimeZones
 {
     ///
-    /// Provides an implementation of a <see cref="IDateTimeZoneSource" /> that looks
-    /// for its time zone definitions from a named resource in an assembly.
+    /// Provides an implementation of a <see cref="IDateTimeZoneSource" /> that loads data originating from the
+    /// TZDB (also known as IANA, Olson, or zoneinfo) time zone database.
     ///
     /// <remarks>
     /// All calls to <see cref="ForId"/> for fixed-offset IDs advertised by the source (i.e. "UTC" and "UTC+/-Offset")


build: Incremented patch version,

build: Incremented patch version,

to indicate that this fixes a bug.

--- build/CommonAssemblyInfo.cs
+++ build/CommonAssemblyInfo.cs
@@ -10,13 +10,11 @@
 [assembly: ComVisible(false)]
 [assembly: NeutralResourcesLanguage("en-US")]
 [assembly: AssemblyProduct("")]
-[assembly: AssemblyVersion("2.1.0")]
-[assembly: AssemblyInformationalVersion("2.1.0")]
+[assembly: AssemblyVersion("2.1.1")]
+[assembly: AssemblyInformationalVersion("2.1.1")]

 /*
- * Version 2.1.0
+ * Version 2.1.1
  *
- * - [Minor] Deprecated TestFixtureFactory and the default constructor of
- *   TestFixture to explicitly customize a fixture, so AutoFixture was added to
- *   nuget dependecy.
+ * - [Path] Fixed invalid WithAuto method signature.
  */


Create shader output directory if it doesn't exist. Fixes #9.

--- build/EffectCompilerTask.cs
+++ build/EffectCompilerTask.cs
@@ -65,6 +65,11 @@
                 ProjectDirectory.ItemSpec,
                 IntermediateDirectory.ItemSpec,
                 item.GetMetadata("RelativeDir"));
+
+            if (!Directory.Exists(outputFolder))
+            {
+                Directory.CreateDirectory(outputFolder);
+            }

             var fileName = item.GetMetadata("Filename");


feat: add direct support of UMat in tracker

--- src/OpenCvSharp/Fundamentals/ResourcesTracker.cs
+++ src/OpenCvSharp/Fundamentals/ResourcesTracker.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Collections.Generic;

 namespace OpenCvSharp
@@ -71,6 +71,27 @@
         }

         /// <summary>
+        /// Create a new UMat instance, and trace it
+        /// </summary>
+        /// <returns></returns>
+        public UMat NewUMat()
+        {
+            return T(new UMat());
+        }
+
+        /// <summary>
+        ///  Create a new UMat instance, and trace it
+        /// </summary>
+        /// <param name="size">size</param>
+        /// <param name="matType">matType</param>
+        /// <param name="scalar">scalar</param>
+        /// <returns></returns>
+        public UMat NewUMat(Size size, MatType matType, Scalar scalar)
+        {
+            return T(new UMat(size, matType, scalar));
+        }
+
+        /// <summary>
         /// Dispose all traced objects
         /// </summary>
         public void Dispose()


Fix documentation to fix merge build break

--- src/Orleans/Configuration/GlobalConfiguration.cs
+++ src/Orleans/Configuration/GlobalConfiguration.cs
@@ -690,18 +690,26 @@
         /// <summary>
         /// Registers given type of <typeparamref name="T"/> as bootstrap provider
         /// </summary>
-        /// <typeparam name="T">Non-abstract type which implements <see cref="IBootstrapProvider"/> interface</typeparam>
-        /// <param name="properties">Properties that will be passed to bootstrap provider upon initialization</param>
+        /// <typeparam name="T">
+        ///     Non-abstract type which implements <see cref="IBootstrapProvider"/> interface
+        /// </typeparam>
+        /// <param name="properties">
+        ///     Properties that will be passed to bootstrap provider upon initialization
+        /// </param>
         public void RegisterBootstrapProvider<T>(IDictionary<string, string> properties = null)
         {
             RegisterBootstrapProvider(typeof(T), properties);
         }

         /// <summary>
-        /// Registers given type of <typeparamref name="T"/> as bootstrap provider
-        /// </summary>
-        /// <param name="boostrapProviderType">Non-abstract type which implements <see cref="IBootstrapProvider"/> interface</param>
-        /// <param name="properties">Properties that will be passed to bootstrap provider upon initialization</param>
+        /// Registers given type as bootstrap provider
+        /// </summary>
+        /// <param name="boostrapProviderType">
+        ///     Non-abstract type which implements <see cref="IBootstrapProvider"/> interface
+        /// </param>
+        /// <param name="properties">
+        ///     Properties that will be passed to bootstrap provider upon initialization
+        /// </param>
         public void RegisterBootstrapProvider(Type boostrapProviderType, IDictionary<string, string> properties = null)
         {
             if (boostrapProviderType == null)


PHPDoc type name with &

PHPDoc type name with &

- specifies the variable will be passed as a reference

--- src/Peachpie.CodeAnalysis/FlowAnalysis/PHPDoc.cs
+++ src/Peachpie.CodeAnalysis/FlowAnalysis/PHPDoc.cs
@@ -96,6 +96,10 @@

                     // unknown something // ...
                 }
+                else if (tname[0] == '&')
+                {
+                    return GetTypeMask(typeCtx, tname.Substring(1), naming, fullyQualified).WithRefFlag;
+                }
                 else
                 {
                     var result = GetKnownTypeMask(typeCtx, tname);


enabling

enabling

--- Assets/Spawner.cs
+++ Assets/Spawner.cs
@@ -86,6 +86,11 @@

         while (timeLeft > 0.0f)
         {
+            while (enabled == false)
+            {
+                yield return new WaitForEndOfFrame();
+            }
+
             Voter voter = GameObject.Instantiate(mp_voterPrefabs[0], transform.position, transform.rotation, null).GetComponent<Voter>();
             m_myVoters.Add(voter);
             GameManager.ms_instance.AddVoter(voter);


resolved race condition when disposing PropertyPublications

--- source/Appccelerate.EventBroker/Internals/Publications/PropertyPublication.cs
+++ source/Appccelerate.EventBroker/Internals/Publications/PropertyPublication.cs
@@ -108,10 +108,12 @@
         /// </remarks>
         protected override void Dispose(bool disposing)
         {
+            object publisher = this.Publisher;
+
             if (disposing && this.IsPublisherAlive)
             {
                 this.eventInfo.RemoveEventHandler(
-                    this.Publisher,
+                    publisher,
                     Delegate.CreateDelegate(this.eventInfo.EventHandlerType, this, this.GetType().GetMethod("PublicationHandler")));
             }
         }


Add RenewAsync notes

Add RenewAsync notes

--- src/ASPNETCoreIdentitySample.Services/Identity/DistributedCacheTicketStore.cs
+++ src/ASPNETCoreIdentitySample.Services/Identity/DistributedCacheTicketStore.cs
@@ -30,6 +30,8 @@

         public Task RenewAsync(string key, AuthenticationTicket ticket)
         {
+            // NOTE: Using `services.enableImmediateLogout();` will cause this method to be called per each request.
+
             var options = new DistributedCacheEntryOptions();

             var expiresUtc = ticket.Properties.ExpiresUtc;


Fixed TermFixedLengthLongArrayList so it parses using the invariant culture.

--- src/BoboBrowse.Net/BoboBrowse.Net/Facets/Data/TermFixedLengthLongArrayList.cs
+++ src/BoboBrowse.Net/BoboBrowse.Net/Facets/Data/TermFixedLengthLongArrayList.cs
@@ -6,6 +6,7 @@
     using System;
     using System.Collections;
     using System.Collections.Generic;
+    using System.Globalization;
     using System.Linq;
     using System.Text;

@@ -49,7 +50,7 @@

             for (int i = 0; i < width; ++i)
             {
-                r[i] = long.Parse(a[i]);
+                r[i] = long.Parse(a[i], CultureInfo.InvariantCulture);
                 //if (r[i] < 0)
                 // throw new RuntimeException("We only support non-negative numbers: " + s);
             }


Refactor SourceWatcher so rather than having a single hard-coded FileSystemWatcher, it has a List<T> of them, one for the "main" library then additional ones defined on the Source (for use with music stores saving in non-watched locations)

--- src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher/SourceWatcher.cs
+++ src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher/SourceWatcher.cs
@@ -52,7 +52,7 @@
     {
         private readonly LibraryImportManager import_manager;
         private readonly LibrarySource library;
-        private readonly FileSystemWatcher watcher;
+        private readonly List<FileSystemWatcher> watcher = new List<FileSystemWatcher> ();
         private readonly ManualResetEvent handle;
         private readonly Thread watch_thread;

@@ -83,12 +83,24 @@

             import_manager = ServiceManager.Get<LibraryImportManager> ();

-            watcher = new FileSystemWatcher (path);
-            watcher.IncludeSubdirectories = true;
-            watcher.Changed += OnChanged;
-            watcher.Created += OnChanged;
-            watcher.Deleted += OnChanged;
-            watcher.Renamed += OnChanged;
+            FileSystemWatcher master_watcher = new FileSystemWatcher (path);
+            master_watcher.IncludeSubdirectories = true;
+            master_watcher.Changed += OnChanged;
+            master_watcher.Created += OnChanged;
+            master_watcher.Deleted += OnChanged;
+            master_watcher.Renamed += OnChanged;
+            watcher.Add (master_watcher);
+
+            foreach (string additional_path in ServiceManager.SourceManager.ActiveSource.Properties.Get<string[]> ("AdditionalWatchedDirectories")) {
+                Hyena.Log.DebugFormat ("Watcher: additional LibraryWatcher for {0}", additional_path);
+                FileSystemWatcher additional_watcher = new FileSystemWatcher (additional_path);
+                additional_watcher.IncludeSubdirectories = true;
+                additional_watcher.Changed += OnChanged;
+                additional_watcher.Created += OnChanged;
+                additional_watcher.Deleted += OnChanged;
+                additional_watcher.Renamed += OnChanged;
+                watcher.Add (additional_watcher);
+            }

             active = true;
             watch_thread = new Thread (new ThreadStart (Watch));
@@ -103,16 +115,19 @@
         {
             if (!disposed) {
                 active = false;
-                watcher.Changed -= OnChanged;
-                watcher.Created -= OnChanged;
-                watcher.Deleted -= OnChanged;
-                watcher.Renamed -= OnChanged;
+                foreach (FileSystemWatcher current_watcher in watcher) {
+                    current_watcher.Changed -= OnChanged;
+                    current_watcher.Created -= OnChanged;
+                    current_watcher.Deleted -= OnChanged;
+                    current_watcher.Renamed -= OnChanged;
+                }

                 lock (queue) {
                     queue.Clear ();
                 }

-                watcher.Dispose ();
+                foreach (FileSystemWatcher current_watcher in watcher)
+                    current_watcher.Dispose ();
                 disposed = true;
             }
         }
@@ -143,7 +158,8 @@

         private void Watch ()
         {
-            watcher.EnableRaisingEvents = true;
+            foreach (FileSystemWatcher current_watcher in watcher)
+                current_watcher.EnableRaisingEvents = true;

             while (active) {
                 WatcherChangeTypes change_types = 0;


Make the MagmaManagedTransform class public

--- src/Gost.Security.Cryptography/Security/Cryptography/MagmaManagedTransform.cs
+++ src/Gost.Security.Cryptography/Security/Cryptography/MagmaManagedTransform.cs
@@ -6,7 +6,11 @@
 {
     using static CryptoUtils;

-    internal sealed class MagmaManagedTransform : SymmetricTransform
+    /// <summary>
+    /// Performs a cryptographic transformation of data using the <see cref="Magma"/> algorithm.
+    /// This class cannot be inherited.
+    /// </summary>
+    public sealed class MagmaManagedTransform : SymmetricTransform
     {
         #region Constants

@@ -36,7 +40,7 @@

         private uint[] _keyExpansion;

-        public MagmaManagedTransform(
+        internal MagmaManagedTransform(
             byte[] rgbKey,
             byte[] rgbIV,
             int blockSize,
@@ -46,6 +50,12 @@
             : base(rgbKey, rgbIV, blockSize, cipherMode, paddingMode, transformMode)
         { }

+        /// <summary>
+        /// Initializes the private key expansion.
+        /// </summary>
+        /// <param name="rgbKey">
+        /// The private key to be used for the key expansion.
+        /// </param>
         [SecuritySafeCritical]
         protected unsafe override void GenerateKeyExpansion(byte[] rgbKey)
         {
@@ -56,6 +66,21 @@
                     UInt32FromBigEndian(keyExpansion, 8, key);
         }

+        /// <summary>
+        /// Implements the block cipher encryption function of <see cref="MagmaManaged"/> algorithm.
+        /// </summary>
+        /// <param name="inputBuffer">
+        /// The input to perform the operation on.
+        /// </param>
+        /// <param name="inputOffset">
+        /// The offset into the input byte array to begin using data from.
+        /// </param>
+        /// <param name="outputBuffer">
+        /// The output to write the data to.
+        /// </param>
+        /// <param name="outputOffset">
+        /// The offset into the output byte array to begin writing data to.
+        /// </param>
         [SecuritySafeCritical]
         protected unsafe override void EncryptBlock(byte[] inputBuffer, int inputOffset, byte[] outputBuffer, int outputOffset)
         {
@@ -74,6 +99,21 @@
             FlushRegisters(outputBuffer, outputOffset, a0, a1);
         }

+        /// <summary>
+        /// Implements the block cipher decryption function of <see cref="MagmaManaged"/> algorithm.
+        /// </summary>
+        /// <param name="inputBuffer">
+        /// The input to perform the operation on.
+        /// </param>
+        /// <param name="inputOffset">
+        /// The offset into the input byte array to begin using data from.
+        /// </param>
+        /// <param name="outputBuffer">
+        /// The output to write the data to.
+        /// </param>
+        /// <param name="outputOffset">
+        /// The offset into the output byte array to begin writing data to.
+        /// </param>
         [SecuritySafeCritical]
         protected unsafe override void DecryptBlock(byte[] inputBuffer, int inputOffset, byte[] outputBuffer, int outputOffset)
         {
@@ -118,6 +158,14 @@
             }
         }

+        /// <summary>
+        /// Releases the unmanaged resources used by the <see cref="MagmaManagedTransform" />
+        /// class and optionally releases the managed resources.
+        /// </summary>
+        /// <param name="disposing">
+        /// <c>true</c> to release both managed and unmanaged resources;
+        /// <c>false</c> to release only unmanaged resources.
+        /// </param>
         protected override void Dispose(bool disposing)
         {
             if (disposing)


Ignore tests specific for MsSQL

Ignore tests specific for MsSQL

SVN: 488784591515bd4cdaa016be4ec9b172dc4e7caf@4039

--- src/NHibernate.Test/NHSpecificTest/NH1612/NativeSqlCollectionLoaderFixture.cs
+++ src/NHibernate.Test/NHSpecificTest/NH1612/NativeSqlCollectionLoaderFixture.cs
@@ -1,5 +1,6 @@
 using System.Collections;
 using System.Collections.Generic;
+using NHibernate.Dialect;
 using NUnit.Framework;
 using NUnit.Framework.SyntaxHelpers;

@@ -230,6 +231,10 @@
 		[Test]
 		public void NativeUpdateQueryWithoutResults()
 		{
+			if(!(Dialect is MsSql2000Dialect))
+			{
+				Assert.Ignore("This does not apply to {0}", Dialect);
+			}
 			using (ISession session = OpenSession())
 			{
 				using (ITransaction tx = session.BeginTransaction())
@@ -243,6 +248,10 @@
 		[Test]
 		public void NativeScalarQueryWithoutResults()
 		{
+			if (!(Dialect is MsSql2000Dialect))
+			{
+				Assert.Ignore("This does not apply to {0}", Dialect);
+			}
 			using (ISession session = OpenSession())
 			{
 				using (ITransaction tx = session.BeginTransaction())
@@ -258,6 +267,10 @@
 		[Test]
 		public void NativeScalarQueryWithUndefinedResultset()
 		{
+			if (!(Dialect is MsSql2000Dialect))
+			{
+				Assert.Ignore("This does not apply to {0}", Dialect);
+			}
 			using (ISession session = OpenSession())
 			{
 				using (session.BeginTransaction())
@@ -273,6 +286,10 @@
 		[Test]
 		public void NativeScalarQueryWithDefinedResultset()
 		{
+			if (!(Dialect is MsSql2000Dialect))
+			{
+				Assert.Ignore("This does not apply to {0}", Dialect);
+			}
 			using (ISession session = OpenSession())
 			{
 				using (session.BeginTransaction())


EventsCLientTests use Assert.ThrowsAsync

--- Octokit.Tests/Clients/EventsClientTests.cs
+++ Octokit.Tests/Clients/EventsClientTests.cs
@@ -47,10 +47,10 @@
                 var connection = Substitute.For<IApiConnection>();
                 var client = new EventsClient(connection);

-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllForRepository(null, "name"));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllForRepository("", "name"));
-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllForRepository("owner", null));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllForRepository("owner", ""));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository(null, "name"));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepository("", "name"));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository("owner", null));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepository("owner", ""));
             }
         }

@@ -73,10 +73,10 @@
                 var connection = Substitute.For<IApiConnection>();
                 var client = new EventsClient(connection);

-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllForRepositoryNetwork(null, "name"));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllForRepositoryNetwork("", "name"));
-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllForRepositoryNetwork("owner", null));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllForRepositoryNetwork("owner", ""));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepositoryNetwork(null, "name"));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepositoryNetwork("", "name"));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepositoryNetwork("owner", null));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepositoryNetwork("owner", ""));
             }
         }

@@ -99,8 +99,8 @@
                 var connection = Substitute.For<IApiConnection>();
                 var client = new EventsClient(connection);

-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllForOrganization(null));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllForOrganization(""));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForOrganization(null));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForOrganization(""));
             }
         }

@@ -123,8 +123,8 @@
                 var connection = Substitute.For<IApiConnection>();
                 var client = new EventsClient(connection);

-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllUserReceived(null));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllUserReceived(""));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllUserReceived(null));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllUserReceived(""));
             }
         }

@@ -147,8 +147,8 @@
                 var connection = Substitute.For<IApiConnection>();
                 var client = new EventsClient(connection);

-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllUserReceivedPublic(null));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllUserReceivedPublic(""));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllUserReceivedPublic(null));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllUserReceivedPublic(""));
             }
         }

@@ -171,8 +171,8 @@
                 var connection = Substitute.For<IApiConnection>();
                 var client = new EventsClient(connection);

-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllUserPerformed(null));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllUserPerformed(""));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllUserPerformed(null));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllUserPerformed(""));
             }
         }

@@ -195,8 +195,8 @@
                 var connection = Substitute.For<IApiConnection>();
                 var client = new EventsClient(connection);

-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllUserPerformedPublic(null));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllUserPerformedPublic(""));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllUserPerformedPublic(null));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllUserPerformedPublic(""));
             }
         }

@@ -219,10 +219,10 @@
                 var connection = Substitute.For<IApiConnection>();
                 var client = new EventsClient(connection);

-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllForAnOrganization(null, "org"));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllForAnOrganization("", "org"));
-                await AssertEx.Throws<ArgumentNullException>(async () => await client.GetAllForAnOrganization("fake", null));
-                await AssertEx.Throws<ArgumentException>(async () => await client.GetAllForAnOrganization("fake", ""));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForAnOrganization(null, "org"));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForAnOrganization("", "org"));
+                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForAnOrganization("fake", null));
+                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForAnOrganization("fake", ""));
             }
         }


Encode using the returned Encoding from the server

--- OpenAsset.RestClient.Library/Connection.cs
+++ OpenAsset.RestClient.Library/Connection.cs
@@ -390,7 +390,7 @@
             {
                 HttpWebResponse errorResponse = we.Response as HttpWebResponse;
                 setLastResponseHeaders(errorResponse.Headers);
-                TextReader tr = new StreamReader(errorResponse.GetResponseStream());
+                TextReader tr = this.getReaderFromResponse(errorResponse);
                 string responseText = tr.ReadToEnd();
                 tr.Close();
                 tr.Dispose();
@@ -693,6 +693,20 @@
                 mimeType = regKey.GetValue("Content Type").ToString();
             return mimeType;
         }
+
+        private TextReader getReaderFromResponse(HttpWebResponse response)
+        {
+            Encoding encoding;
+            try
+            {
+                encoding = Encoding.GetEncoding(response.CharacterSet);
+            }
+            catch (ArgumentException)
+            {
+                encoding = Encoding.UTF8;
+            }
+            return new StreamReader(response.GetResponseStream(), encoding);
+        }
         #endregion

         #region Get/Send objects
@@ -721,7 +735,7 @@
                 {
                     response = getRESTResponse(baseUrl + "?" + parameterString, "GET");
                 }
-                TextReader tr = new StreamReader(response.GetResponseStream());
+                TextReader tr = this.getReaderFromResponse(response);
                 responseText = tr.ReadToEnd();
                 tr.Close();
                 tr.Dispose();
@@ -794,7 +808,7 @@

                 response = getRESTResponse(restUrl, method, output, true, contentType);
                 // get response data
-                TextReader tr = new StreamReader(response.GetResponseStream());
+                TextReader tr = this.getReaderFromResponse(response);
                 responseText = tr.ReadToEnd();
                 tr.Close();
                 tr.Dispose();
@@ -938,7 +952,7 @@
                 if (id > 0)
                     restUrl += "/" + id;
                 response = getRESTResponse(restUrl, "OPTIONS");
-                TextReader tr = new StreamReader(response.GetResponseStream());
+                TextReader tr = this.getReaderFromResponse(response);
                 string responseText = tr.ReadToEnd();
                 tr.Close();
                 tr.Dispose();


* Adds error handlers for errors parsing the querystring passed on the OSHttpRequest constructor. * maybe..  it was a key that was null.  Obviously you can't still a null key in a string key'ed collection.

--- OpenSim/Framework/Servers/OSHttpRequest.cs
+++ OpenSim/Framework/Servers/OSHttpRequest.cs
@@ -221,10 +221,25 @@
                  _userAgent = req.Headers["user-agent"];
              _queryString = new NameValueCollection();
              _query = new Hashtable();
-             foreach (KeyValuePair<string, HttpInputItem> q in req.QueryString)
+             try
              {
-                 _queryString.Add(q.Key, q.Value.Value);
-                 _query[q.Key] = q.Value.Value;
+                 foreach (KeyValuePair<string, HttpInputItem> q in req.QueryString)
+                 {
+                     try
+                     {
+                         _queryString.Add(q.Key, q.Value.Value);
+                         _query[q.Key] = q.Value.Value;
+                     }
+                     catch (InvalidCastException)
+                     {
+                         System.Console.WriteLine("[OSHttpRequest]: Errror parsing querystring..  but it was recoverable..  skipping on to the next one");
+                         continue;
+                     }
+                 }
+             }
+             catch (Exception)
+             {
+                 System.Console.WriteLine("[OSHttpRequest]: Errror parsing querystring");
              }
              // TODO: requires change to HttpServer.HttpRequest
              _ipEndPoint = null;


* Primitives are now loaded from Datastore during scene initialisation.

--- OpenSim/Region/Environment/Scenes/Scene.cs
+++ OpenSim/Region/Environment/Scenes/Scene.cs
@@ -146,6 +146,15 @@
             Avatars = new Dictionary<LLUUID, ScenePresence>();
             Prims = new Dictionary<LLUUID, SceneObject>();

+            MainLog.Instance.Verbose("World.cs - loading objects from datastore");
+            List<SceneObject> PrimsFromDB = storageManager.DataStore.LoadObjects();
+            foreach (SceneObject prim in PrimsFromDB)
+            {
+                Prims.Add(prim.uuid, prim);
+            }
+            MainLog.Instance.Verbose("World.cs - loaded " + PrimsFromDB.Count.ToString() + " object(s)");
+
+
             MainLog.Instance.Verbose("World.cs - creating LandMap");
             Terrain = new TerrainEngine();


* redid the AddNewPrim refactoring as that got lost in r2855

--- OpenSim/Region/Environment/Scenes/Scene.cs
+++ OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1009,12 +1009,7 @@
                                         byte bypassRaycast, LLVector3 RayStart, LLUUID RayTargetID,
                                         byte RayEndIsIntersection)
         {
-            // What we're *supposed* to do is raytrace from the camera position given by the client to the nearest collision
-            // in the direction the client supplies (the ground level that we clicked)
-            // This function is pretty crappy right now..  so we're not affecting where the newly rezzed objects go
-            // Test it if you like.  The console will write where it guesses a collision took place. if it thinks one did.
-            // It's wrong many times though.
-
+
             LLVector3 pos = GetNewRezLocation(RayStart, RayEnd, RayTargetID, rot, bypassRaycast, RayEndIsIntersection);

@@ -1022,36 +1017,40 @@

             if (PermissionsMngr.CanRezObject(ownerID, pos))
             {
-
-                    // rez ON the ground, not IN the ground
+                // rez ON the ground, not IN the ground
                     pos.Z += 0.25F;
-
-
-                SceneObjectGroup sceneOb =
-                    new SceneObjectGroup(this, m_regionHandle, ownerID, PrimIDAllocate(), pos, rot, shape);
-                AddEntity(sceneOb);
-                SceneObjectPart rootPart = sceneOb.GetChildPart(sceneOb.UUID);
-                // if grass or tree, make phantom
-                //rootPart.ApplySanePermissions();
-                if ((rootPart.Shape.PCode == 95) || (rootPart.Shape.PCode == 255) || (rootPart.Shape.PCode == 111))
-                {
-                    rootPart.AddFlag(LLObject.ObjectFlags.Phantom);
-                    //rootPart.ObjectFlags += (uint)LLObject.ObjectFlags.Phantom;
-                }
-                // if not phantom, add to physics
-                bool UsePhysics = (((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim);
-                if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0)
-                {
-                    rootPart.PhysActor =
-                        PhysicsScene.AddPrimShape(
-                            rootPart.Name,
-                            rootPart.Shape,
-                            new PhysicsVector(pos.X, pos.Y, pos.Z),
-                            new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z),
-                            new Quaternion(), UsePhysics);
-                    // subscribe to physics events.
-                    rootPart.DoPhysicsPropertyUpdate(UsePhysics, true);
-                }
+
+
+                AddNewPrim(ownerID, pos, rot, shape);
+            }
+        }
+
+        public virtual void AddNewPrim(LLUUID ownerID, LLVector3 pos, LLQuaternion rot, PrimitiveBaseShape shape)
+        {
+            SceneObjectGroup sceneOb =
+                new SceneObjectGroup(this, m_regionHandle, ownerID, PrimIDAllocate(), pos, rot, shape);
+            AddEntity(sceneOb);
+            SceneObjectPart rootPart = sceneOb.GetChildPart(sceneOb.UUID);
+            // if grass or tree, make phantom
+            //rootPart.ApplySanePermissions();
+            if ((rootPart.Shape.PCode == 95) || (rootPart.Shape.PCode == 255) || (rootPart.Shape.PCode == 111))
+            {
+                rootPart.AddFlag(LLObject.ObjectFlags.Phantom);
+                //rootPart.ObjectFlags += (uint)LLObject.ObjectFlags.Phantom;
+            }
+            // if not phantom, add to physics
+            bool UsePhysics = (((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim);
+            if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0)
+            {
+                rootPart.PhysActor =
+                    PhysicsScene.AddPrimShape(
+                        rootPart.Name,
+                        rootPart.Shape,
+                        new PhysicsVector(pos.X, pos.Y, pos.Z),
+                        new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z),
+                        new Quaternion(), UsePhysics);
+                // subscribe to physics events.
+                rootPart.DoPhysicsPropertyUpdate(UsePhysics, true);
             }
         }


Add checking of graph for changes before run algorithm

--- src/SharpGraphEditor/ViewModels/MainViewModel.cs
+++ src/SharpGraphEditor/ViewModels/MainViewModel.cs
@@ -305,34 +305,37 @@

         public void RunAlgorithm(IAlgorithm algorithm)
         {
-            var param = new AlgorithmParameter()
-            {
-                Output = Terminal,
-                MaxElementX = MaxElementX,
-                MaxElementY = MaxElementY,
-                MinElementX = MinElementX,
-                MinElementY = MinElementY
-            };
-
-            var a = new Helpers.AsyncOperation(() =>
-            {
-                IsUnlock = false;
-                Terminal?.WriteLine($"{algorithm.Name} starting...");
-                algorithm?.Run(Document, param);
-            },
-            () =>
-            {
-                Terminal?.WriteLine("Algorithm finished successfully.\n");
-                IsUnlock = true;
-                EllipseVerticesPositionIfNeed();
-            },
-            (e) =>
-            {
-                Terminal?.WriteLine("During algorithm working an error occured:");
-                Terminal?.WriteLine($"  {e.Message}\n");
-                IsUnlock = true;
-            });
-            a.ExecuteAsync();
+            if (CheckGraphForClearing())
+            {
+                var param = new AlgorithmParameter()
+                {
+                    Output = Terminal,
+                    MaxElementX = MaxElementX,
+                    MaxElementY = MaxElementY,
+                    MinElementX = MinElementX,
+                    MinElementY = MinElementY
+                };
+
+                var a = new Helpers.AsyncOperation(() =>
+                {
+                    IsUnlock = false;
+                    Terminal?.WriteLine($"{algorithm.Name} starting...");
+                    algorithm?.Run(Document, param);
+                },
+                () =>
+                {
+                    Terminal?.WriteLine("Algorithm finished successfully.\n");
+                    IsUnlock = true;
+                    EllipseVerticesPositionIfNeed();
+                },
+                (e) =>
+                {
+                    Terminal?.WriteLine("During algorithm working an error occured:");
+                    Terminal?.WriteLine($"  {e.Message}\n");
+                    IsUnlock = true;
+                });
+                a.ExecuteAsync();
+            }
         }

         public void ChangeOutputVisibility(bool value)


[UPD] Copyright [UPD] Fixed revision version, to change when needed. A variable revision version makes difficult to deploy an updated assembly to an application directory because ASP.NET complains that the application is not linked with the correct version ...

--- source/ZedGraph/AssemblyInfo.cs
+++ source/ZedGraph/AssemblyInfo.cs
@@ -11,7 +11,7 @@
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("")]
 [assembly: AssemblyProduct("ZedGraph Library")]
-[assembly: AssemblyCopyright("Copyright 2003-2005 John Champion")]
+[assembly: AssemblyCopyright("Copyright 2003-2005 John Champion. Some parts are copyright Benjamin Mayrargue.")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]

@@ -26,7 +26,7 @@
 // You can specify all the values or you can default the Revision and Build Numbers
 // by using the '*' as shown below:

-[assembly: AssemblyVersion("4.2.3.*")]
+[assembly: AssemblyVersion("4.2.3.2211")]

 //
 // In order to sign your assembly you must specify a key to use. Refer to the


* By popular demand, skipping trees from the map tile generation routine.   Skipping these because we have no good representation, they just appear as blocks that obscure the rest of the map items.

--- OpenSim/Region/Environment/Scenes/Scene.cs
+++ OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1163,6 +1163,7 @@
                                     if (part == null)
                                         continue;

+
                                     // Draw if the object is at least 1 meter wide in any direction
                                     if (part.Scale.X > 1f || part.Scale.Y > 1f || part.Scale.Z > 1f)
                                     {
@@ -1175,6 +1176,11 @@

                                             if (part.Shape == null)
                                                 continue;
+
+                                            if (part.Shape.PCode == (byte)PCode.Tree || part.Shape.PCode == (byte)PCode.NewTree)
+                                                continue; // eliminates trees from this since we don't really have a good tree representation
+                                                // if you want tree blocks on the map comment the above line and uncomment the below line
+                                                //mapdotspot = Color.PaleGreen;

                                             if (part.Shape.Textures == null)
                                                 continue;


excel export

excel export

--- Projects/Server/Utils/SF.Utils.TableExports.Excel/ExcelExporter.cs
+++ Projects/Server/Utils/SF.Utils.TableExports.Excel/ExcelExporter.cs
@@ -2,6 +2,8 @@
 using DocumentFormat.OpenXml;
 using DocumentFormat.OpenXml.Spreadsheet;
 using System;
+using X14 = DocumentFormat.OpenXml.Office2010.Excel;
+using X15 = DocumentFormat.OpenXml.Office2013.Excel;

 namespace SF.Utils.TableExports.Excel
 {
@@ -22,154 +24,146 @@
         WorkbookPart WorkbookPart { get; }
         SpreadsheetDocument Document { get; }
         UInt32Value _rowIndex = new UInt32Value(0u);
-		private static Stylesheet CreateStylesheet()
-		{
-			Stylesheet ss = new Stylesheet();
-
-			//Fonts fts = new Fonts();
-			//DocumentFormat.OpenXml.Spreadsheet.Font ft = new DocumentFormat.OpenXml.Spreadsheet.Font();
-			//FontName ftn = new FontName();
-			//ftn.Val = "Calibri";
-			//FontSize ftsz = new FontSize();
-			//ftsz.Val = 11;
-			//ft.FontName = ftn;
-			//ft.FontSize = ftsz;
-			//fts.Append(ft);
-			//fts.Count = (uint)fts.ChildElements.Count;
-
-			//Fills fills = new Fills();
-			//Fill fill;
-			//PatternFill patternFill;
-			//fill = new Fill();
-			//patternFill = new PatternFill();
-			//patternFill.PatternType = PatternValues.None;
-			//fill.PatternFill = patternFill;
-			//fills.Append(fill);
-			//fill = new Fill();
-			//patternFill = new PatternFill();
-			//patternFill.PatternType = PatternValues.Gray125;
-			//fill.PatternFill = patternFill;
-			//fills.Append(fill);
-			//fills.Count = (uint)fills.ChildElements.Count;
-
-			//Borders borders = new Borders();
-			//Border border = new Border();
-			//border.LeftBorder = new LeftBorder();
-			//border.RightBorder = new RightBorder();
-			//border.TopBorder = new TopBorder();
-			//border.BottomBorder = new BottomBorder();
-			//border.DiagonalBorder = new DiagonalBorder();
-			//borders.Append(border);
-			//borders.Count = (uint)borders.ChildElements.Count;
-
-			//CellStyleFormats csfs = new CellStyleFormats();
-			//CellFormat cf = new CellFormat();
-			//cf.NumberFormatId = 0;
-			//cf.FontId = 0;
-			//cf.FillId = 0;
-			//cf.BorderId = 0;
-			//csfs.Append(cf);
-			//csfs.Count = (uint)csfs.ChildElements.Count;
-
-			//uint iExcelIndex = 164;
-			//NumberingFormats nfs = new NumberingFormats();
-			//CellFormats cfs = new CellFormats();
-
-			//cf = new CellFormat();
-			//cf.NumberFormatId = 0;
-			//cf.FontId = 0;
-			//cf.FillId = 0;
-			//cf.BorderId = 0;
-			//cf.FormatId = 0;
-			//cfs.Append(cf);
-
-			//NumberingFormat nf;
-			//nf = new NumberingFormat();
-			//nf.NumberFormatId = iExcelIndex++;
-			//nf.FormatCode = "dd/mm/yyyy hh:mm:ss";
-			//nfs.Append(nf);
-			//cf = new CellFormat();
-			//cf.NumberFormatId = nf.NumberFormatId;
-			//cf.FontId = 0;
-			//cf.FillId = 0;
-			//cf.BorderId = 0;
-			//cf.FormatId = 0;
-			//cf.ApplyNumberFormat = true;
-			//cfs.Append(cf);
-
-			//nf = new NumberingFormat();
-			//nf.NumberFormatId = iExcelIndex++;
-			//nf.FormatCode = "#,##0.0000";
-			//nfs.Append(nf);
-			//cf = new CellFormat();
-			//cf.NumberFormatId = nf.NumberFormatId;
-			//cf.FontId = 0;
-			//cf.FillId = 0;
-			//cf.BorderId = 0;
-			//cf.FormatId = 0;
-			//cf.ApplyNumberFormat = true;
-			//cfs.Append(cf);
-
-			//// #,##0.00 is also Excel style index 4
-			//nf = new NumberingFormat();
-			//nf.NumberFormatId = iExcelIndex++;
-			//nf.FormatCode = "#,##0.00";
-			//nfs.Append(nf);
-			//cf = new CellFormat();
-			//cf.NumberFormatId = nf.NumberFormatId;
-			//cf.FontId = 0;
-			//cf.FillId = 0;
-			//cf.BorderId = 0;
-			//cf.FormatId = 0;
-			//cf.ApplyNumberFormat = true;
-			//cfs.Append(cf);
-
-			//// @ is also Excel style index 49
-			//nf = new NumberingFormat();
-			//nf.NumberFormatId = iExcelIndex++;
-			//nf.FormatCode = "@";
-			//nfs.Append(nf);
-			//cf = new CellFormat();
-			//cf.NumberFormatId = nf.NumberFormatId;
-			//cf.FontId = 0;
-			//cf.FillId = 0;
-			//cf.BorderId = 0;
-			//cf.FormatId = 0;
-			//cf.ApplyNumberFormat = true;
-			//cfs.Append(cf);
-
-			//nfs.Count = (uint)nfs.ChildElements.Count;
-			//cfs.Count = (uint)cfs.ChildElements.Count;
-
-			//ss.Append(nfs);
-			//ss.Append(fts);
-			//ss.Append(fills);
-			//ss.Append(borders);
-			//ss.Append(csfs);
-			//ss.Append(cfs);
-
-			//CellStyles css = new CellStyles();
-			//CellStyle cs = new CellStyle();
-			//cs.Name = "Normal";
-			//cs.FormatId = 0;
-			//cs.BuiltinId = 0;
-			//css.Append(cs);
-			//css.Count = (uint)css.ChildElements.Count;
-			//ss.Append(css);
-
-			//DifferentialFormats dfs = new DifferentialFormats();
-			//dfs.Count = 0;
-			//ss.Append(dfs);
-
-			//TableStyles tss = new TableStyles();
-			//tss.Count = 0;
-			//tss.DefaultTableStyle = "TableStyleMedium9";
-			//tss.DefaultPivotStyle = "PivotStyleLight16";
-			//ss.Append(tss);
-
-			return ss;
-		}
-        public ExcelExporter(System.IO.Stream Stream,string Title, Column[] Columns):base(Columns)
+
+        Stylesheet CreateStylesheet()
+        {
+			Stylesheet stylesheet1 = new Stylesheet() { MCAttributes = new MarkupCompatibilityAttributes() { Ignorable = "x14ac x16r2" } };
+			stylesheet1.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
+			stylesheet1.AddNamespaceDeclaration("x14ac", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac");
+			stylesheet1.AddNamespaceDeclaration("x16r2", "http://schemas.microsoft.com/office/spreadsheetml/2015/02/main");
+
+			NumberingFormats numberingFormats1 = new NumberingFormats() { Count = (UInt32Value)1U };
+			NumberingFormat numberingFormat1 = new NumberingFormat() { NumberFormatId = (UInt32Value)178U, FormatCode = "yyyy\\-mm\\-dd\\ hh:mm" };
+
+			numberingFormats1.Append(numberingFormat1);
+
+			Fonts fonts1 = new Fonts() { Count = (UInt32Value)2U, KnownFonts = true };
+
+			Font font1 = new Font();
+			FontSize fontSize1 = new FontSize() { Val = 11D };
+			Color color1 = new Color() { Theme = (UInt32Value)1U };
+			FontName fontName1 = new FontName() { Val = "等线" };
+			FontFamilyNumbering fontFamilyNumbering1 = new FontFamilyNumbering() { Val = 2 };
+			FontCharSet fontCharSet1 = new FontCharSet() { Val = 134 };
+			FontScheme fontScheme1 = new FontScheme() { Val = FontSchemeValues.Minor };
+
+			font1.Append(fontSize1);
+			font1.Append(color1);
+			font1.Append(fontName1);
+			font1.Append(fontFamilyNumbering1);
+			font1.Append(fontCharSet1);
+			font1.Append(fontScheme1);
+
+			Font font2 = new Font();
+			FontSize fontSize2 = new FontSize() { Val = 9D };
+			FontName fontName2 = new FontName() { Val = "等线" };
+			FontFamilyNumbering fontFamilyNumbering2 = new FontFamilyNumbering() { Val = 2 };
+			FontCharSet fontCharSet2 = new FontCharSet() { Val = 134 };
+			FontScheme fontScheme2 = new FontScheme() { Val = FontSchemeValues.Minor };
+
+			font2.Append(fontSize2);
+			font2.Append(fontName2);
+			font2.Append(fontFamilyNumbering2);
+			font2.Append(fontCharSet2);
+			font2.Append(fontScheme2);
+
+			fonts1.Append(font1);
+			fonts1.Append(font2);
+
+			Fills fills1 = new Fills() { Count = (UInt32Value)2U };
+
+			Fill fill1 = new Fill();
+			PatternFill patternFill1 = new PatternFill() { PatternType = PatternValues.None };
+
+			fill1.Append(patternFill1);
+
+			Fill fill2 = new Fill();
+			PatternFill patternFill2 = new PatternFill() { PatternType = PatternValues.Gray125 };
+
+			fill2.Append(patternFill2);
+
+			fills1.Append(fill1);
+			fills1.Append(fill2);
+
+			Borders borders1 = new Borders() { Count = (UInt32Value)1U };
+
+			Border border1 = new Border();
+			LeftBorder leftBorder1 = new LeftBorder();
+			RightBorder rightBorder1 = new RightBorder();
+			TopBorder topBorder1 = new TopBorder();
+			BottomBorder bottomBorder1 = new BottomBorder();
+			DiagonalBorder diagonalBorder1 = new DiagonalBorder();
+
+			border1.Append(leftBorder1);
+			border1.Append(rightBorder1);
+			border1.Append(topBorder1);
+			border1.Append(bottomBorder1);
+			border1.Append(diagonalBorder1);
+
+			borders1.Append(border1);
+
+			CellStyleFormats cellStyleFormats1 = new CellStyleFormats() { Count = (UInt32Value)1U };
+
+			CellFormat cellFormat1 = new CellFormat() { NumberFormatId = (UInt32Value)0U, FontId = (UInt32Value)0U, FillId = (UInt32Value)0U, BorderId = (UInt32Value)0U };
+			Alignment alignment1 = new Alignment() { Vertical = VerticalAlignmentValues.Center };
+
+			cellFormat1.Append(alignment1);
+
+			cellStyleFormats1.Append(cellFormat1);
+
+			CellFormats cellFormats1 = new CellFormats() { Count = (UInt32Value)2U };
+
+			CellFormat cellFormat2 = new CellFormat() { NumberFormatId = (UInt32Value)0U, FontId = (UInt32Value)0U, FillId = (UInt32Value)0U, BorderId = (UInt32Value)0U, FormatId = (UInt32Value)0U };
+			Alignment alignment2 = new Alignment() { Vertical = VerticalAlignmentValues.Center };
+
+			cellFormat2.Append(alignment2);
+
+			CellFormat cellFormat3 = new CellFormat() { NumberFormatId = (UInt32Value)178U, FontId = (UInt32Value)0U, FillId = (UInt32Value)0U, BorderId = (UInt32Value)0U, FormatId = (UInt32Value)0U, ApplyNumberFormat = true };
+			Alignment alignment3 = new Alignment() { Vertical = VerticalAlignmentValues.Center };
+
+			cellFormat3.Append(alignment3);
+
+			cellFormats1.Append(cellFormat2);
+			cellFormats1.Append(cellFormat3);
+
+			CellStyles cellStyles1 = new CellStyles() { Count = (UInt32Value)1U };
+			CellStyle cellStyle1 = new CellStyle() { Name = "常规", FormatId = (UInt32Value)0U, BuiltinId = (UInt32Value)0U };
+
+			cellStyles1.Append(cellStyle1);
+			DifferentialFormats differentialFormats1 = new DifferentialFormats() { Count = (UInt32Value)0U };
+			TableStyles tableStyles1 = new TableStyles() { Count = (UInt32Value)0U, DefaultTableStyle = "TableStyleMedium2", DefaultPivotStyle = "PivotStyleLight16" };
+
+			StylesheetExtensionList stylesheetExtensionList1 = new StylesheetExtensionList();
+
+			StylesheetExtension stylesheetExtension1 = new StylesheetExtension() { Uri = "{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" };
+			stylesheetExtension1.AddNamespaceDeclaration("x14", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main");
+			X14.SlicerStyles slicerStyles1 = new X14.SlicerStyles() { DefaultSlicerStyle = "SlicerStyleLight1" };
+
+			stylesheetExtension1.Append(slicerStyles1);
+
+			StylesheetExtension stylesheetExtension2 = new StylesheetExtension() { Uri = "{9260A510-F301-46a8-8635-F512D64BE5F5}" };
+			stylesheetExtension2.AddNamespaceDeclaration("x15", "http://schemas.microsoft.com/office/spreadsheetml/2010/11/main");
+			X15.TimelineStyles timelineStyles1 = new X15.TimelineStyles() { DefaultTimelineStyle = "TimeSlicerStyleLight1" };
+
+			stylesheetExtension2.Append(timelineStyles1);
+
+			stylesheetExtensionList1.Append(stylesheetExtension1);
+			stylesheetExtensionList1.Append(stylesheetExtension2);
+
+			stylesheet1.Append(numberingFormats1);
+			stylesheet1.Append(fonts1);
+			stylesheet1.Append(fills1);
+			stylesheet1.Append(borders1);
+			stylesheet1.Append(cellStyleFormats1);
+			stylesheet1.Append(cellFormats1);
+			stylesheet1.Append(cellStyles1);
+			stylesheet1.Append(differentialFormats1);
+			stylesheet1.Append(tableStyles1);
+			stylesheet1.Append(stylesheetExtensionList1);
+
+			return stylesheet1;
+		}
+		public ExcelExporter(System.IO.Stream Stream,string Title, Column[] Columns):base(Columns)
         {
             this.Title = string.IsNullOrWhiteSpace(Title) ? "导出数据" : Title;

@@ -180,10 +174,10 @@
             var worksheetPart = WorkbookPart.AddNewPart<WorksheetPart>();

 			// Style Part
-			var wbsp = WorkbookPart.AddNewPart<WorkbookStylesPart>();
+			WorkbookStylesPart wbsp = WorkbookPart.AddNewPart<WorkbookStylesPart>();
 			wbsp.Stylesheet = CreateStylesheet();
-			//wbsp.Stylesheet.Save();
-
+			wbsp.Stylesheet.Save();
+
 			this.SheetData = new SheetData();

             worksheetPart.Worksheet = new Worksheet(this.SheetData);
@@ -318,10 +312,10 @@
                 case TypeCode.DateTime:
 					{
 						//cell.DataType = CellValues.Date;
-						//cell.Append(new CellValue(Convert.ToDateTime(text).ToOADate().ToString()));
-						//cell.StyleIndex = 164u;
-
-						SetText(cell, text);
+						cell.Append(new CellValue(Convert.ToDateTime(text).ToOADate().ToString()));
+						cell.StyleIndex = 1u;
+
+						//SetText(cell, text);
                     }
                     break;
                 case TypeCode.DBNull:


Fix concurrency edge case / race condition

--- src/Simple.OData.Client.Core/EdmMetadataCache.cs
+++ src/Simple.OData.Client.Core/EdmMetadataCache.cs
@@ -40,14 +40,13 @@
             // Just allow one schema request at a time, unlikely to be much contention but avoids multiple requests for same endpoint.
             await semaphore.WaitAsync().ConfigureAwait(false);

-            if (_instances.TryGetValue(key, out found))
-            {
-                return found;
-            }
-
             try
             {
-                // Can't easily lock, could introduce a semaphoreSlim but not sure if it's worth it.
+                if (_instances.TryGetValue(key, out found))
+                {
+                    return found;
+                }
+
                 found = await valueFactory(key).ConfigureAwait(false);

                 return _instances.GetOrAdd(key, found);


(GH-739) Fix build and stylecop errors

(GH-739) Fix build and stylecop errors

--- Source/ChocolateyGui.Common.Windows/Controls/InternetImage.xaml.cs
+++ Source/ChocolateyGui.Common.Windows/Controls/InternetImage.xaml.cs
@@ -87,6 +87,34 @@
             imageStream.Position = 0;
         }

+        private static IMagickImage ExtractImage(MagickImageCollection imageCollection, Size desiredSize)
+        {
+            var imagesOrderedBySize = imageCollection
+                .OrderBy(f => f.Width)
+                .ThenBy(f => f.Height)
+                .ToList();
+
+            // if there is no matching image, get the largest image
+            return imagesOrderedBySize
+                       .FirstOrDefault(f => f.Width >= desiredSize.Width
+                                            && f.Height >= desiredSize.Height)
+                   ?? imagesOrderedBySize.Last();
+        }
+
+        private static async Task ExtractImageFromStream(Size desiredSize, MagickReadSettings readSettings, Stream inputStream, MemoryStream imageStream)
+        {
+            using (var images = new MagickImageCollection(inputStream, readSettings))
+            {
+                var image = ExtractImage(images, desiredSize);
+
+                image.Resize((int)desiredSize.Width, 0);
+
+                image.Write(imageStream, MagickFormat.Png);
+
+                await imageStream.FlushAsync();
+            }
+        }
+
         private async Task<IBitmap> LoadImage(string url, Size desiredSize, DateTime absoluteExpiration)
         {
             var imageStream = await DownloadUrl(url, desiredSize, absoluteExpiration).ConfigureAwait(false);
@@ -142,11 +170,49 @@
             return imageStream;
         }

+        private async Task SetImage(string url)
+        {
+            if (string.IsNullOrWhiteSpace(url))
+            {
+                PART_Image.Source = EmptyIcon.Value;
+                PART_Loading.IsActive = false;
+                return;
+            }
+
+            PART_Loading.IsActive = true;
+
+            var size = GetCurrentSize();
+            var expiration = DateTime.UtcNow + TimeSpan.FromDays(1);
+            ImageSource source;
+            try
+            {
+                source = (await LoadImage(url, size, expiration)).ToNative();
+            }
+            catch (HttpRequestException)
+            {
+                source = ErrorIcon.Value;
+            }
+            catch (ArgumentException)
+            {
+                Logger.Warning("Got an invalid img url: \"{IconUrl}\".", url);
+                source = ErrorIcon.Value;
+            }
+            catch (Exception exception)
+            {
+                Logger.Warning(exception, "Something went wrong with: \"{IconUrl}\".", url);
+                source = ErrorIcon.Value;
+            }
+
+            PART_Image.Source = source;
+            PART_Loading.IsActive = false;
+        }
+
         private MagickReadSettings GetMagickReadSettings(string url)
         {
             var extension = GetExtension(url);

-            if (Enum.TryParse<MagickFormat>(extension, true, out var format) == false)
+            MagickFormat format;
+            if (Enum.TryParse<MagickFormat>(extension, true, out format) == false)
             {
                 ////throw new Exception($"Image format with extension '{extension}' from '{url}' is currently not supported.");

@@ -155,20 +221,6 @@

             var readSettings = new MagickReadSettings { Format = format };
             return readSettings;
-        }
-
-        private static async Task ExtractImageFromStream(Size desiredSize, MagickReadSettings readSettings, Stream inputStream, MemoryStream imageStream)
-        {
-            using (var images = new MagickImageCollection(inputStream, readSettings))
-            {
-                var image = ExtractImage(images, desiredSize);
-
-                image.Resize((int)desiredSize.Width, 0);
-
-                image.Write(imageStream, MagickFormat.Png);
-
-                await imageStream.FlushAsync();
-            }
         }

         private Size GetCurrentSize()
@@ -179,43 +231,6 @@
             return new Size(x, y);
         }

-        private async Task SetImage(string url)
-        {
-            if (string.IsNullOrWhiteSpace(url))
-            {
-                PART_Image.Source = EmptyIcon.Value;
-                PART_Loading.IsActive = false;
-                return;
-            }
-
-            PART_Loading.IsActive = true;
-
-            var size = GetCurrentSize();
-            var expiration = DateTime.UtcNow + TimeSpan.FromDays(1);
-            ImageSource source;
-            try
-            {
-                source = (await LoadImage(url, size, expiration)).ToNative();
-            }
-            catch (HttpRequestException)
-            {
-                source = ErrorIcon.Value;
-            }
-            catch (ArgumentException)
-            {
-                Logger.Warning("Got an invalid img url: \"{IconUrl}\".", url);
-                source = ErrorIcon.Value;
-            }
-            catch (Exception exception)
-            {
-                Logger.Warning(exception, "Something went wrong with: \"{IconUrl}\".", url);
-                source = ErrorIcon.Value;
-            }
-
-            PART_Image.Source = source;
-            PART_Loading.IsActive = false;
-        }
-
         private string GetExtension(string url)
         {
             Uri uri;
@@ -233,19 +248,5 @@

             return imagePart.Substring(fileTypeSeperator + 1);
         }
-
-        private static IMagickImage ExtractImage(MagickImageCollection imageCollection, Size desiredSize)
-        {
-            var imagesOrderedBySize = imageCollection
-                .OrderBy(f => f.Width)
-                .ThenBy(f => f.Height)
-                .ToList();
-
-            // if there is no matching image, get the largest image
-            return imagesOrderedBySize
-                       .FirstOrDefault(f => f.Width >= desiredSize.Width
-                                            && f.Height >= desiredSize.Height)
-                   ?? imagesOrderedBySize.Last();
-        }
     }
 }


Correct error in InterfaceMethodInterceptor

--- Source/Glass.Sitecore.Mapper/Proxies/InterfaceMethodInterceptor.cs
+++ Source/Glass.Sitecore.Mapper/Proxies/InterfaceMethodInterceptor.cs
@@ -39,6 +39,7 @@
                     var result = handler.GetValue(_item, _service);
                     _values[handler.Property.Name] = result;
                 }
+                _isLoaded = true;
             }

             if (invocation.Method.IsSpecialName)