Fixing F# support (#202)

Fixing F# support (#202)

--- src/WebJobs.Script/Description/ScriptFunctionInvoker.cs
+++ src/WebJobs.Script/Description/ScriptFunctionInvoker.cs
@@ -20,6 +20,7 @@
     // TODO: make this internal
     public class ScriptFunctionInvoker : ScriptFunctionInvokerBase
     {
+        private const string FsiPathEnvironmentKey = "AzureWebJobs_FsiPath";
         private const string BashPathEnvironmentKey = "AzureWebJobs_BashPath";
         private const string ProgramFiles64bitKey = "ProgramW6432";
         private static ScriptType[] _supportedScriptTypes = new ScriptType[] { ScriptType.Powershell, ScriptType.WindowsBatch, ScriptType.Python, ScriptType.PHP, ScriptType.Bash, ScriptType.FSharp };
@@ -70,8 +71,9 @@
                     await ExecuteScriptAsync(bashPath, scriptHostArguments, parameters);
                     break;
                 case ScriptType.FSharp:
-                    scriptHostArguments = string.Format("/c fsi.exe \"{0}\"", _scriptFilePath);
-                    await ExecuteScriptAsync("cmd", scriptHostArguments, parameters);
+                    scriptHostArguments = string.Format("\"{0}\"", _scriptFilePath);
+                    string fsiPath = ResolveFSharpPath();
+                    await ExecuteScriptAsync(fsiPath, scriptHostArguments, parameters);
                     break;
             }
         }
@@ -301,7 +303,7 @@

         internal static string ResolveBashPath()
         {
-            // first see if the path is specified as an evironment variable
+            // first see if the path is specified as an environment variable
             // (useful for running locally outside of Azure)
             string path = Environment.GetEnvironmentVariable(BashPathEnvironmentKey);
             if (!string.IsNullOrEmpty(path))
@@ -319,6 +321,24 @@
             return ResolveRelativePathToProgramFiles(relativePath, relativePath, "bash.exe");
         }

+        internal static string ResolveFSharpPath()
+        {
+            // first see if the path is specified as an environment variable
+            // (useful for running locally outside of Azure)
+            string path = Environment.GetEnvironmentVariable(FsiPathEnvironmentKey);
+            if (!string.IsNullOrEmpty(path))
+            {
+                path = Path.Combine(path, "fsi.exe");
+                if (File.Exists(path))
+                {
+                    return path;
+                }
+            }
+
+            string relativePath = Path.Combine(@"Microsoft SDKs", "F#", "4.0", "Framework", "v4.0", "fsi.exe");
+            return ResolveRelativePathToProgramFiles(relativePath, relativePath, "fsi.exe");
+        }
+
         private static string ResolveRelativePathToProgramFiles(string relativeX86Path, string relativeX64Path, string target)
         {
             string programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86);


Revert unused OptionsCollection in a test - this test does not use this options collection in master branch, but my prior commit in this PR attempted to use it in the test. This leads the test to fail, so I have restored the original semantics of the test and removed an unused local.

--- src/Workspaces/CSharpTest/Formatting/FormattingTests.cs
+++ src/Workspaces/CSharpTest/Formatting/FormattingTests.cs
@@ -6468,11 +6468,6 @@
         [Trait(Traits.Feature, Traits.Features.Formatting)]
         public async Task QueryExpressionInExpression()
         {
-            var changingOptions = new OptionsCollection(LanguageNames.CSharp)
-            {
-                { CSharpFormattingOptions2.NewLinesForBracesInMethods, false }
-            };
-
             var code = @"
 class C
 {
@@ -6523,7 +6518,7 @@
     }
 }
 ";
-            await AssertFormatAsync(expected, code, changedOptionSet: changingOptions);
+            await AssertFormatAsync(expected, code);
         }

         [Fact]


Fix occasional test run break

Fix occasional test run break

--- test/System.Web.Http.SelfHost.Test/HttpSelfHostResponseTest.cs
+++ test/System.Web.Http.SelfHost.Test/HttpSelfHostResponseTest.cs
@@ -11,148 +11,169 @@

 namespace System.Web.Http.SelfHost
 {
-    public class HttpSelfHostResponseTest : IDisposable
-    {
-        private HttpSelfHostServer _server;
-        private string _baseAddress;
-        private HttpClient _httpClient;
-        private NullResponseMessageHandler _messageHandler;
-
-        private PortReserver _testPort = new PortReserver();
-
-        public HttpSelfHostResponseTest()
-        {
-            HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_testPort.BaseUri);
-            _baseAddress = _testPort.BaseUri;
-
-            config.HostNameComparisonMode = HostNameComparisonMode.Exact;
-            config.Routes.MapHttpRoute("Default", "{controller}/{action}", new { controller = "NullResponse" });
-
-            _messageHandler = new NullResponseMessageHandler();
-            config.MessageHandlers.Add(_messageHandler);
-
-            _server = new HttpSelfHostServer(config);
-            _server.OpenAsync().Wait();
-
-            _httpClient = new HttpClient();
-        }
-
-        public void Dispose()
-        {
-            _testPort.Dispose();
-            _httpClient.Dispose();
-            _server.CloseAsync().Wait();
-        }
-
+    public class HttpSelfHostResponseTest
+    {
         [Fact]
         public void Get_Returns_500_And_No_Content_For_Null_HttpResponseMessage_From_MessageHandler()
         {
-            // Arrange
-            _messageHandler.ReturnNull = true;
-            HttpRequestMessage request = new HttpRequestMessage();
-            request.RequestUri = new Uri(Path.Combine(_baseAddress, "NullResponse/GetNormalResponse"));
-            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
-            request.Method = HttpMethod.Get;
-
-            // Action
-            HttpResponseMessage response = _httpClient.SendAsync(request).Result;
-
-            // Assert
-            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
-            Assert.Equal(0, response.Content.Headers.ContentLength);
+            using (var selfHostTester = new SelfHostTester())
+            {
+                // Arrange
+                selfHostTester.MessageHandler.ReturnNull = true;
+                HttpRequestMessage request = new HttpRequestMessage();
+                request.RequestUri = new Uri(Path.Combine(selfHostTester.BaseAddress, "NullResponse/GetNormalResponse"));
+                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+                request.Method = HttpMethod.Get;
+
+                // Action
+                HttpResponseMessage response = selfHostTester.HttpClient.SendAsync(request).Result;
+
+                // Assert
+                Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
+                Assert.Equal(0, response.Content.Headers.ContentLength);
+            }
         }

         [Fact]
         public void Post_Returns_500_And_No_Content_For_Null_HttpResponseMessage_From_MessageHandler()
         {
-            // Arrange
-            _messageHandler.ReturnNull = true;
-            HttpRequestMessage request = new HttpRequestMessage();
-            request.RequestUri = new Uri(Path.Combine(_baseAddress, "NullResponse/PostNormalResponse"));
-            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
-            request.Method = HttpMethod.Post;
-            request.Content = new ObjectContent<NullResponseCustomer>(new NullResponseCustomer() { Name = "Sue", Age = 39 }, new JsonMediaTypeFormatter());
-
-            // Action
-            HttpResponseMessage response = _httpClient.SendAsync(request).Result;
-
-            // Assert
-            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
-            Assert.Equal(0, response.Content.Headers.ContentLength);
+            using (var selfHostTester = new SelfHostTester())
+            {
+                // Arrange
+                selfHostTester.MessageHandler.ReturnNull = true;
+                HttpRequestMessage request = new HttpRequestMessage();
+                request.RequestUri = new Uri(Path.Combine(selfHostTester.BaseAddress, "NullResponse/PostNormalResponse"));
+                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+                request.Method = HttpMethod.Post;
+                request.Content = new ObjectContent<NullResponseCustomer>(new NullResponseCustomer() { Name = "Sue", Age = 39 }, new JsonMediaTypeFormatter());
+
+                // Action
+                HttpResponseMessage response = selfHostTester.HttpClient.SendAsync(request).Result;
+
+                // Assert
+                Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
+                Assert.Equal(0, response.Content.Headers.ContentLength);
+            }
         }

         [Fact]
         public void Get_Returns_500_And_Error_Content_For_Null_HttpResponseMessage_From_Action()
         {
-            // Arrange
-            _messageHandler.ReturnNull = false;
-            HttpRequestMessage request = new HttpRequestMessage();
-            request.RequestUri = new Uri(Path.Combine(_baseAddress, "NullResponse/GetNullResponseFromAction"));
-            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
-            request.Method = HttpMethod.Get;
-
-            // Action
-            HttpResponseMessage response = _httpClient.SendAsync(request).Result;
-
-            // Assert
-            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
-            Assert.Contains("\"Message\":\"An error has occurred.\"", response.Content.ReadAsStringAsync().Result);
+            using (var selfHostTester = new SelfHostTester())
+            {
+                // Arrange
+                selfHostTester.MessageHandler.ReturnNull = false;
+                HttpRequestMessage request = new HttpRequestMessage();
+                request.RequestUri = new Uri(Path.Combine(selfHostTester.BaseAddress, "NullResponse/GetNullResponseFromAction"));
+                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+                request.Method = HttpMethod.Get;
+
+                // Action
+                HttpResponseMessage response = selfHostTester.HttpClient.SendAsync(request).Result;
+
+                // Assert
+                Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
+                Assert.Contains("\"Message\":\"An error has occurred.\"", response.Content.ReadAsStringAsync().Result);
+            }
         }

         [Fact]
         public void Post_Returns_500_And_Error_Content_For_Null_HttpResponseMessage_From_Action()
         {
-            // Arrange
-            _messageHandler.ReturnNull = false;
-            HttpRequestMessage request = new HttpRequestMessage();
-            request.RequestUri = new Uri(Path.Combine(_baseAddress, "NullResponse/PostNullResponseFromAction"));
-            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
-            request.Method = HttpMethod.Post;
-            request.Content = new ObjectContent<NullResponseCustomer>(new NullResponseCustomer() { Name = "Sue", Age = 39 }, new JsonMediaTypeFormatter());
-
-            // Action
-            HttpResponseMessage response = _httpClient.SendAsync(request).Result;
-
-            // Assert
-            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
-            Assert.Contains("\"Message\":\"An error has occurred.\"", response.Content.ReadAsStringAsync().Result);
+            using (var selfHostTester = new SelfHostTester())
+            {
+                // Arrange
+                selfHostTester.MessageHandler.ReturnNull = false;
+                HttpRequestMessage request = new HttpRequestMessage();
+                request.RequestUri = new Uri(Path.Combine(selfHostTester.BaseAddress, "NullResponse/PostNullResponseFromAction"));
+                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+                request.Method = HttpMethod.Post;
+                request.Content = new ObjectContent<NullResponseCustomer>(new NullResponseCustomer() { Name = "Sue", Age = 39 }, new JsonMediaTypeFormatter());
+
+                // Action
+                HttpResponseMessage response = selfHostTester.HttpClient.SendAsync(request).Result;
+
+                // Assert
+                Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
+                Assert.Contains("\"Message\":\"An error has occurred.\"", response.Content.ReadAsStringAsync().Result);
+            }
         }

         [Fact]
         public void Get_Returns_500_And_Error_Content_For_Null_Task_From_Action()
         {
-            // Arrange
-            _messageHandler.ReturnNull = false;
-            HttpRequestMessage request = new HttpRequestMessage();
-            request.RequestUri = new Uri(Path.Combine(_baseAddress, "NullResponse/GetNullTaskFromAction"));
-            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
-            request.Method = HttpMethod.Get;
-
-            // Action
-            HttpResponseMessage response = _httpClient.SendAsync(request).Result;
-
-            // Assert
-            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
-            Assert.Contains("\"Message\":\"An error has occurred.\"", response.Content.ReadAsStringAsync().Result);
+            using (var selfHostTester = new SelfHostTester())
+            {
+                // Arrange
+                selfHostTester.MessageHandler.ReturnNull = false;
+                HttpRequestMessage request = new HttpRequestMessage();
+                request.RequestUri = new Uri(Path.Combine(selfHostTester.BaseAddress, "NullResponse/GetNullTaskFromAction"));
+                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+                request.Method = HttpMethod.Get;
+
+                // Action
+                HttpResponseMessage response = selfHostTester.HttpClient.SendAsync(request).Result;
+
+                // Assert
+                Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
+                Assert.Contains("\"Message\":\"An error has occurred.\"", response.Content.ReadAsStringAsync().Result);
+            }
         }

         [Fact]
         public void Post_Returns_500_And_Error_Content_For_Null_Task_From_Action()
         {
-            // Arrange
-            _messageHandler.ReturnNull = false;
-            HttpRequestMessage request = new HttpRequestMessage();
-            request.RequestUri = new Uri(Path.Combine(_baseAddress, "NullResponse/PostNullTaskFromAction"));
-            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
-            request.Method = HttpMethod.Post;
-            request.Content = new ObjectContent<NullResponseCustomer>(new NullResponseCustomer() { Name = "Sue", Age = 39 }, new JsonMediaTypeFormatter());
-
-            // Action
-            HttpResponseMessage response = _httpClient.SendAsync(request).Result;
-
-            // Assert
-            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
-            Assert.Contains("\"Message\":\"An error has occurred.\"", response.Content.ReadAsStringAsync().Result);
+            using (var selfHostTester = new SelfHostTester())
+            {
+                // Arrange
+                selfHostTester.MessageHandler.ReturnNull = false;
+                HttpRequestMessage request = new HttpRequestMessage();
+                request.RequestUri = new Uri(Path.Combine(selfHostTester.BaseAddress, "NullResponse/PostNullTaskFromAction"));
+                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+                request.Method = HttpMethod.Post;
+                request.Content = new ObjectContent<NullResponseCustomer>(new NullResponseCustomer() { Name = "Sue", Age = 39 }, new JsonMediaTypeFormatter());
+
+                // Action
+                HttpResponseMessage response = selfHostTester.HttpClient.SendAsync(request).Result;
+
+                // Assert
+                Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
+                Assert.Contains("\"Message\":\"An error has occurred.\"", response.Content.ReadAsStringAsync().Result);
+            }
+        }
+
+        private class SelfHostTester : IDisposable
+        {
+            private HttpSelfHostServer _server;
+            private PortReserver _testPort = new PortReserver();
+
+            public string BaseAddress { get; private set; }
+            public HttpClient HttpClient { get; private set; }
+            public NullResponseMessageHandler MessageHandler { get; private set; }
+
+            public SelfHostTester()
+            {
+                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_testPort.BaseUri);
+                BaseAddress = _testPort.BaseUri;
+
+                config.HostNameComparisonMode = HostNameComparisonMode.Exact;
+                config.Routes.MapHttpRoute("Default", "{controller}/{action}", new { controller = "NullResponse" });
+
+                MessageHandler = new NullResponseMessageHandler();
+                config.MessageHandlers.Add(MessageHandler);
+
+                _server = new HttpSelfHostServer(config);
+                _server.OpenAsync().Wait();
+
+                HttpClient = new HttpClient();
+            }
+
+            public void Dispose()
+            {
+                _testPort.Dispose();
+                HttpClient.Dispose();
+                _server.CloseAsync().Wait();
+            }
         }
     }


Fix formatting

Fix formatting

--- src/Workspaces/CoreTest/CodeCleanup/CodeCleanupTests.cs
+++ src/Workspaces/CoreTest/CodeCleanup/CodeCleanupTests.cs
@@ -52,7 +52,7 @@
             Assert.Equal(document, cleanDocument);
         }

-       [Fact]
+        [Fact]
         public async Task CodeCleanersCSharp_Span()
         {
             var document = CreateDocument("class C { }", LanguageNames.CSharp);
@@ -94,7 +94,7 @@
             Assert.Equal(document, cleanDocument);
         }

-         [Fact]
+        [Fact]
         public async Task CodeCleanersVisualBasic_Document()
         {
             var document = CreateDocument(@"Class C


Make integration test passed

Make integration test passed

--- test/hihapi.test/integrationtests/HomeDefineIntegrationTest.cs
+++ test/hihapi.test/integrationtests/HomeDefineIntegrationTest.cs
@@ -20,11 +20,11 @@
         public async Task TestCase1_UserA()
         {
             string token = await IdentityServerSetup.Instance.GetAccessTokenForUser(DataSetupUtility.UserA, DataSetupUtility.IntegrationTestPassword);
-            var client = _factory.CreateClient();
-            client.SetBearerToken(token);
+            var clientWithAuth = _factory.CreateClient();
+            clientWithAuth.SetBearerToken(token);

             // Step 1. Metadata request
-            var metadata = await client.GetAsync("/api/$metadata");
+            var metadata = await this._client.GetAsync("/api/$metadata");
             Assert.Equal(HttpStatusCode.OK, metadata.StatusCode);
             var content = await metadata.Content.ReadAsStringAsync();
             if (content.Length > 0)
@@ -32,6 +32,15 @@
                 // How to verify metadata?
                 // TBD.
             }
+
+            // Step 2. Read Home Defines - Non authority case
+            var req1 = await this._client.GetAsync("/api/HomeDefines");
+            Assert.Equal(HttpStatusCode.Unauthorized, req1.StatusCode);
+
+            // Step 3. Read Home Defines - Authority case
+            var req2 = await clientWithAuth.GetAsync("/api/HomeDefines");
+            Assert.True(req2.IsSuccessStatusCode);
+
         }
     }
 }


Use interfaces instead of the sets directly

--- GraphDiff/GraphDiff.Tests/TestDbContext.cs
+++ GraphDiff/GraphDiff.Tests/TestDbContext.cs
@@ -35,8 +35,8 @@
         public IDbSet<TestNodeWithChildWithComplexValue> NodesWithChildWithComplexType { get; set; }
         public IDbSet<TestNodeWithChildrenWithComplexValue> NodesWithChildrenWithComplexType { get; set; }

-        public DbSet<OneToOneOwnedParentModel> OneToOneOwnedParentModels { get; set; }
-        public DbSet<OneToManyOwnedParentModel> OneToManyOwnedParentModels { get; set; }
+        public IDbSet<OneToOneOwnedParentModel> OneToOneOwnedParentModels { get; set; }
+        public IDbSet<OneToManyOwnedParentModel> OneToManyOwnedParentModels { get; set; }

         public TestDbContext() : base("GraphDiff") { }
         public TestDbContext(DbConnection connection) : base(connection, true) { }


version 1.5b

version 1.5b

--- ImprovedAssetsPanel/ImprovedAssetsPanel.cs
+++ ImprovedAssetsPanel/ImprovedAssetsPanel.cs
@@ -977,14 +977,13 @@
                 newNameLabel.isVisible = true;

                 var delete = panel.Find<UIButton>("Delete");
-                nameLabel.anchor = UIAnchorStyle.Top | UIAnchorStyle.Right;
                 delete.size = new Vector2(24.0f, 24.0f);
                 delete.relativePosition = new Vector3(374.0f, 2.0f, delete.relativePosition.z);
+                delete.zOrder = 7;

                 var active = panel.Find<UICheckBox>("Active");
-                nameLabel.anchor = UIAnchorStyle.Bottom | UIAnchorStyle.Right;
                 active.relativePosition = new Vector3(370.0f, 200.0f, active.relativePosition.z);
-                active.zOrder = 2;
+                active.zOrder = 7;

                 var favButton = panel.AddUIComponent<UIButton>();
                 favButton.anchor = UIAnchorStyle.Bottom | UIAnchorStyle.Right;
@@ -992,6 +991,7 @@
                 favButton.size = new Vector2(36.0f, 36.0f);
                 favButton.relativePosition = new Vector3(362.0f, 164.0f);
                 favButton.opacity = config.favoriteAssets.ContainsKey(packageEntry.publishedFileId.AsUInt64) ? 1.0f : 0.5f;
+                favButton.zOrder = 7;

                 favButton.eventClick += (uiComponent, param) =>
                 {
@@ -1015,10 +1015,11 @@
                 onOff.textScale = 0.75f;
                 onOff.text = "Active";
                 onOff.relativePosition = new Vector3(-34.0f, 5.0f, onOff.relativePosition.z);
+                onOff.zOrder = 7;

                 var view = panel.Find<UIButton>("View");
                 view.anchor = UIAnchorStyle.Top | UIAnchorStyle.Left;
-                view.zOrder = 2;
+                view.zOrder = 7;
                 view.size = new Vector2(32.0f, 32.0f);
                 view.textScale = 0.7f;
                 view.relativePosition = new Vector3(4.0f, 192.0f, view.relativePosition.z);
@@ -1033,7 +1034,7 @@
                 view.pressedBgSprite = "";

                 var share = panel.Find<UIButton>("Share");
-                share.zOrder = 2;
+                share.zOrder = 7;
                 share.size = new Vector2(view.size.x, 24.0f);
                 share.textScale = 0.7f;
                 share.relativePosition = new Vector3(4.0f + view.size.x, 198.0f, share.relativePosition.z);


[Modify] Polish it

[Modify] Polish it

--- websocket-sharp/Server/IWebSocketSession.cs
+++ websocket-sharp/Server/IWebSocketSession.cs
@@ -27,7 +27,6 @@
 #endregion

 using System;
-using WebSocketSharp.Net.WebSockets;

 namespace WebSocketSharp.Server
 {


[Modify] Edit it

[Modify] Edit it

--- websocket-sharp/Server/WebSocketBehavior.cs
+++ websocket-sharp/Server/WebSocketBehavior.cs
@@ -536,8 +536,8 @@
     }

     /// <summary>
-    /// Sends the specified data to a client asynchronously using the WebSocket
-    /// connection.
+    /// Sends the specified data to a client asynchronously using
+    /// the WebSocket connection.
     /// </summary>
     /// <remarks>
     /// This method does not wait for the send to be complete.


refactor

refactor

--- Stove.Demo/Program.cs
+++ Stove.Demo/Program.cs
@@ -23,6 +23,7 @@
                                                .UseEntityFramework()
                                                .UseDefaultEventBus()
                                                .UseDbContextEfTransactionStrategy()
+                                               //.UseTransacitonScopeEfTransactionStrategy()
                                                .RegisterServices(r => r.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()))
                                                .UseNLog()
                                                .CreateResolver();


Use OnRAwMode instead of OnChannelMode. Rawmode is the catchall, Channel mod is exclusivly for modes applies to the channel itself. ( invisible, key, topic lock etc )

--- StripSystem/Filter.cs
+++ StripSystem/Filter.cs
@@ -42,7 +42,7 @@
             _host.OnQuit += OnQuit;
             _host.OnChannelNormalMessage += OnChannelNormalMessage;
             _host.OnNick += OnNick;
-            _host.OnChannelMode += OnChannelMode;
+            _host.OnChannelRawMode += OnChannelRawMode;
         }

         private void OnChannelNormalMessage(ChannelNormalMessageArgs argument)
@@ -150,10 +150,10 @@
             }
         }

-        private void OnChannelMode(ChannelModeArgs argument)
-        {
+        private void OnChannelRawMode(ChannelRawModeArgs argument)
+        {
             var user = argument.User;
-            var mode = argument.Mode;
+            var mode = argument.Modes;

             if (string.IsNullOrEmpty(user?.Ident))
             {
@@ -168,7 +168,7 @@
                 }
                 else
                 {
-                    argument.EatData = EatData.EatNone;
+                    argument.EatData = EatData.EatNone;
                     return;
                 }

@@ -185,22 +185,23 @@
                     //Twitch has a nasty habit of showing mode removal after a user has left the channel.
                     if (!argument.Server.Network.ToLower().Contains("twitch"))
                     {
-                        argument.EatData = EatData.EatNone;
+                        argument.EatData = EatData.EatNone;
                         return;
                     }
                 }
             }

-            argument.EatData = EatData.EatText;
-            var userKey = argument.Server.Network + argument.Channel.Name + user.Ident + user.Host;
+            argument.EatData = EatData.EatAll;
+            var userKey = argument.Server.Network + argument.Channel.Name + user.Host;

             if (!_userDatabase.ContainsKey(userKey)) return;

             var userData = _userDatabase[userKey];
             if (userData.TalkedRecently())
-            {
+            {
                 argument.EatData = EatData.EatNone;
             }
+
         }

         public void Dispose()


rename test to more accurately suit its purpose

--- tests/integration/AlphaDev.Web.Tests.Integration/Features/Authorization_feature.cs
+++ tests/integration/AlphaDev.Web.Tests.Integration/Features/Authorization_feature.cs
@@ -5,7 +5,6 @@

 namespace AlphaDev.Web.Tests.Integration.Features
 {
-	[Label("FEAT-1")]
 	[FeatureDescription(
 @"In order to not allow everyone to access the admin area
 As a user
@@ -13,7 +12,7 @@
 	public partial class Authorization_feature
 	{
 		[Scenario]
-		public void Template_basic_scenario()
+		public void Redirect_unauthenticated_users_to_login_page()
 		{
 			Runner.RunScenario(
 				_ => CommonSteps.Given_i_am_a_user(),


Fix the fired asset in CompareInfo.IndexOf (#16373)

--- src/mscorlib/shared/System/Globalization/CompareInfo.cs
+++ src/mscorlib/shared/System/Globalization/CompareInfo.cs
@@ -841,6 +841,11 @@
             if (count < 0 || startIndex > source.Length - count)
                 throw new ArgumentOutOfRangeException(nameof(count), SR.ArgumentOutOfRange_Count);

+            if (source.Length == 0)
+            {
+                return -1;
+            }
+
             if (options == CompareOptions.OrdinalIgnoreCase)
             {
                 return source.IndexOf(value.ToString(), startIndex, count, StringComparison.OrdinalIgnoreCase);
@@ -850,7 +855,7 @@
             // Ordinal can't be selected with other flags
             if ((options & ValidIndexMaskOffFlags) != 0 && (options != CompareOptions.Ordinal))
                 throw new ArgumentException(SR.Argument_InvalidFlag, nameof(options));
-
+
             if (_invariantMode)
                 return IndexOfOrdinal(source, new string(value, 1), startIndex, count, ignoreCase: (options & (CompareOptions.IgnoreCase | CompareOptions.OrdinalIgnoreCase)) != 0);

@@ -1281,7 +1286,7 @@
             }

             //
-            // GetHashCodeOfString does more parameters validation. basically will throw when
+            // GetHashCodeOfString does more parameters validation. basically will throw when
             // having Ordinal, OrdinalIgnoreCase and StringSort
             //


CallSiteTests are now working on Mono after Travis upgrade (#3336)

--- tests/NLog.UnitTests/LayoutRenderers/CallSiteTests.cs
+++ tests/NLog.UnitTests/LayoutRenderers/CallSiteTests.cs
@@ -406,11 +406,7 @@
             AssertDebugLastMessage("debug", "NLog.UnitTests.LayoutRenderers.CallSiteTests.GivenOneSkipFrameDefined_WhenLogging_ShouldSkipOneUserStackFrame msg");
         }

-#if MONO
-        [Fact(Skip = "Not working under MONO - not sure if unit test is wrong, or the code")]
-#else
-        [Fact]
-#endif
+        [Fact]
         public void CleanMethodNamesOfAnonymousDelegatesTest()
         {
             LogManager.Configuration = XmlLoggingConfiguration.CreateFromXmlString(@"
@@ -443,11 +439,7 @@
             }
         }

-#if MONO
-        [Fact(Skip = "Not working under MONO - not sure if unit test is wrong, or the code")]
-#else
-        [Fact]
-#endif
+        [Fact]
         public void DontCleanMethodNamesOfAnonymousDelegatesTest()
         {
             LogManager.Configuration = XmlLoggingConfiguration.CreateFromXmlString(@"
@@ -481,11 +473,7 @@
             }
         }

-#if MONO
-        [Fact(Skip = "Not working under MONO - not sure if unit test is wrong, or the code")]
-#else
-        [Fact]
-#endif
+        [Fact]
         public void CleanClassNamesOfAnonymousDelegatesTest()
         {
             LogManager.Configuration = XmlLoggingConfiguration.CreateFromXmlString(@"
@@ -518,11 +506,7 @@
             }
         }

-#if MONO
-        [Fact(Skip = "Not working under MONO - not sure if unit test is wrong, or the code")]
-#else
-        [Fact]
-#endif
+        [Fact]
         public void DontCleanClassNamesOfAnonymousDelegatesTest()
         {
             LogManager.Configuration = XmlLoggingConfiguration.CreateFromXmlString(@"


small fix

small fix

--- Heimdall.Analytics.Mongo.Tests/Unit/Events/Handlers/ServiceRefreshedHandlerTests.cs
+++ Heimdall.Analytics.Mongo.Tests/Unit/Events/Handlers/ServiceRefreshedHandlerTests.cs
@@ -61,8 +61,8 @@
         [Fact]
         public async Task should_create_service_health_data_when_not_found()
         {
-            var start = DateTime.UtcNow;
-            start = start.AddSeconds(-start.Second);
+            var now = DateTime.UtcNow;
+            var start = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0, DateTimeKind.Utc);

             var service = new Heimdall.Mongo.Infrastructure.Entities.Service()
             {
@@ -100,8 +100,8 @@
         [Fact]
         public async Task should_not_create_service_health_data_when_found()
         {
-            var start = DateTime.UtcNow;
-            start = start.AddSeconds(-start.Second);
+            var now = DateTime.UtcNow;
+            var start = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0, DateTimeKind.Utc);

             var service = new Heimdall.Mongo.Infrastructure.Entities.Service()
             {


Raise maximum iar version that master can load to 1.x, so that it can load its own iars (oops)

--- OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
+++ OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
@@ -54,7 +54,7 @@
         /// The maximum major version of archive that we can read.  Minor versions shouldn't need a max number since version
         /// bumps here should be compatible.
         /// </summary>
-        public static int MAX_MAJOR_VERSION = 0;
+        public static int MAX_MAJOR_VERSION = 1;

         protected TarArchiveReader archive;


Renamed Asserts.IsTrue method to Asserts.Check

--- QTFK.Core/Asserts.cs
+++ QTFK.Core/Asserts.cs
@@ -52,7 +52,7 @@
             assert(File.Exists(filePath), exceptionMessageFormat, messageParams);
         }

-        public static void IsTrue(bool condition, string exceptionMessageFormat, params object[] messageParams)
+        public static void Check(bool condition, string exceptionMessageFormat, params object[] messageParams)
         {
             assert(condition, exceptionMessageFormat, messageParams);
         }


new fix

new fix

--- Manager/ManagerTest/ManagerOperationTestsAttribute.cs
+++ Manager/ManagerTest/ManagerOperationTestsAttribute.cs
@@ -11,7 +11,10 @@
 	{
 		protected override void SetUp(ContainerBuilder builder)
 		{
-			builder.RegisterType<FakeManagerConfiguration>().As<IManagerConfiguration>();
+			FakeManagerConfiguration fakeManagerConfiguration = new FakeManagerConfiguration();
+			builder.RegisterInstance(fakeManagerConfiguration).As<IManagerConfiguration>();
+		//	builder.RegisterType<FakeManagerConfiguration>().As<IManagerConfiguration>();
+
 			builder.RegisterType<NodeManager>().As<INodeManager>().SingleInstance().AsSelf();
 			builder.RegisterType<FakeHttpSender>().As<IHttpSender>().SingleInstance().AsSelf();
 			builder.Register(


Update Game1.cs

Update Game1.cs

--- MissileCommand/MissileCommand/MissileCommand/Game1.cs
+++ MissileCommand/MissileCommand/MissileCommand/Game1.cs
@@ -66,8 +66,6 @@

         public bool testSpawn = true;

-        private bool isFullScreen = false;
-
         public Game1()
         {
             Instance = this;
@@ -76,19 +74,10 @@
             KB.onPress(Keys.Escape, this.Exit);
             objects = new List<GameObject>();
             this.state = GameState.Splash;
-
-            if (isFullScreen)
-            {
-                graphics.PreferredBackBufferHeight = 1080;
-                graphics.PreferredBackBufferWidth = 1920;
-                graphics.IsFullScreen = true;
-            }
-            else
-            {
-                graphics.PreferredBackBufferHeight = 600;
-                graphics.PreferredBackBufferWidth = 480;
-                graphics.IsFullScreen = false;
-            }
+
+            graphics.PreferredBackBufferHeight = 1080;
+            graphics.PreferredBackBufferWidth = 1920;
+            graphics.IsFullScreen = true;
         }

         protected override void Initialize()


[ci skip]

[ci skip]

--- NUnit.Tests/TestDotNetAsm/NUnitTestPseudoAssembler.cs
+++ NUnit.Tests/TestDotNetAsm/NUnitTestPseudoAssembler.cs
@@ -1,4 +1,4 @@
-using DotNetAsm;
+using DotNetAsm;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
@@ -158,14 +158,14 @@
             TestInstruction(line, 0x0002, 2, new byte[] { 0x00, 0xff });

             line.Operand = "-123";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));

             line.Instruction = ".char";
             line.Operand = "-128,127";
             TestInstruction(line, 0x0002, 2, new byte[] { 0x80, 0x7f });

             line.Operand = "192";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));
         }

         [Test]
@@ -177,28 +177,28 @@
             TestInstruction(line, 0x0004, 4, new byte[] { 0x00, 0x80, 0xff, 0x7f });

             line.Operand = "$ffd2";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));

             line.Instruction = ".word";
             TestInstruction(line, 0x0002, 2, new byte[] { 0xd2, 0xff });

             line.Operand = "-1";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));

             line.Instruction = ".addr";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));

             line.Operand = "65232 , $c000";
             TestInstruction(line, 0x0004, 4, new byte[] { 0xd0, 0xfe, 0x00, 0xc0 });

             line.Operand = "$010000";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));

             line.Instruction = ".word";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));

             line.Instruction = ".sint";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));
         }

         [Test]
@@ -210,13 +210,13 @@
             TestInstruction(line, 0x0008, 8, new byte[] { 0x00, 0x00, 0x00, 0x80,
                                                           0xff, 0xff, 0xff, 0x7f});
             line.Operand = uint.MaxValue.ToString();
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));

             line.Instruction = ".dword";
             TestInstruction(line, 0x0004, 4, new byte[] { 0xff, 0xff, 0xff, 0xff });

             line.Operand = "-32342";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));
         }

         [Test]
@@ -229,13 +229,13 @@
                                                           0xff, 0xff, 0x7f});

             line.Operand = "16777215";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));

             line.Instruction = ".long";
             TestInstruction(line, 0x0003, 3, new byte[] { 0xff, 0xff, 0xff });

             line.Operand = "$01000000";
-            TestForFailure(line);
+            Assert.Throws<OverflowException>(() => TestForFailure(line));
         }

         [Test]
@@ -458,4 +458,3 @@
         }
     }
 }
-


Remove unused vars.

Remove unused vars.

--- tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Nesting.cs
+++ tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Nesting.cs
@@ -222,7 +222,6 @@
         [Fact]
         public void Adding_Child_With_No_Nesting_Selector_Fails()
         {
-            var control = new Control1();
             var parent = new Style(x => x.OfType<Control1>());
             var child = new Style(x => x.Class("foo"));

@@ -232,7 +231,6 @@
         [Fact]
         public void Adding_Combinator_Selector_Child_With_No_Nesting_Selector_Fails()
         {
-            var control = new Control1();
             var parent = new Style(x => x.OfType<Control1>());
             var child = new Style(x => x.Class("foo").Descendant().Class("bar"));

@@ -242,7 +240,6 @@
         [Fact]
         public void Adding_Or_Selector_Child_With_No_Nesting_Selector_Fails()
         {
-            var control = new Control1();
             var parent = new Style(x => x.OfType<Control1>());
             var child = new Style(x => Selectors.Or(
                 x.Nesting().Class("foo"),
@@ -254,7 +251,6 @@
         [Fact]
         public void Can_Add_Child_Without_Nesting_Selector_To_Style_Without_Selector()
         {
-            var control = new Control1();
             var parent = new Style();
             var child = new Style(x => x.Class("foo"));


Fix to game resize window

Fix to game resize window

--- Raccoon/Core/Game.cs
+++ Raccoon/Core/Game.cs
@@ -277,29 +277,12 @@
             }

             set {
-                _pixelScale = value;
-
-                if (IsRunning) {
-                    Size = WindowSize / _pixelScale;
-                } else {
-                    // when game isn't running yet, probably GraphicsDeviceManager hasn't applied changes to window size
-                    // so just use preffered back buffer size instead current window size
-                    Size = new Size(XNAGameWrapper.GraphicsDeviceManager.PreferredBackBufferWidth, XNAGameWrapper.GraphicsDeviceManager.PreferredBackBufferHeight) / _pixelScale;
-                }
-
-                Center = (Size / 2f).ToVector2();
-
-                if (!IsRunning) {
-                    return;
-                }
-
-                MainCanvas.Resize(Size);
-
-                foreach (Renderer renderer in Renderers) {
-                    renderer.RecalculateProjection();
-                }
-
-                ScreenRenderer.RecalculateProjection();
+                ResizeWindow(
+                    WindowWidth,
+                    WindowHeight,
+                    IsFullscreen,
+                    value
+                );
             }
         }

@@ -488,7 +471,7 @@
             Renderers.Clear();
         }

-        public void ResizeWindow(int windowWidth, int windowHeight, bool fullscreen, int pixelScale = -1) {
+        public void ResizeWindow(int windowWidth, int windowHeight, bool fullscreen, float pixelScale = -1) {
             if (windowWidth <= 0) {
                 throw new System.ArgumentException($"Invalid window width '{windowWidth}', must be greater than zero.");
             }
@@ -516,7 +499,7 @@
             ResizeWindow((int) size.Width, (int) size.Height, IsFullscreen);
         }

-        public void SetupWindowExpandView(int windowWidth, int windowHeight, bool fullscreen, int pixelScale = -1) {
+        public void SetupWindowExpandView(int windowWidth, int windowHeight, bool fullscreen, float pixelScale = -1) {
             if (windowWidth <= 0) {
                 throw new System.ArgumentException($"Invalid window width '{windowWidth}', must be greater than zero.");
             }
@@ -536,7 +519,7 @@
             RefreshViewMode(ResizeMode.ExpandView, pixelScale);
         }

-        public void SetupWindowKeepProportionsView(int windowWidth, int windowHeight, int gameWidth, int gameHeight, bool fullscreen, int pixelScale = -1) {
+        public void SetupWindowKeepProportionsView(int windowWidth, int windowHeight, int gameWidth, int gameHeight, bool fullscreen, float pixelScale = -1) {
             if (windowWidth <= 0) {
                 throw new System.ArgumentException($"Invalid window width '{windowWidth}', must be greater than zero.");
             }
@@ -553,7 +536,7 @@
                 throw new System.ArgumentException($"Invalid game height '{gameHeight}', must be greater than zero.");
             }

-            pixelScale = pixelScale <= 0 ? 1 : pixelScale;
+            pixelScale = pixelScale <= 0f ? 1 : pixelScale;

             if (windowWidth == WindowWidth && windowHeight == WindowHeight
              && gameWidth == Width && gameHeight == Height
@@ -566,22 +549,6 @@
             Size = new Size(gameWidth, gameHeight);
             RefreshViewMode(ResizeMode.KeepProportions, pixelScale);
         }
-
-        /*
-        public void ResizeWindow(int width, int height, bool fullscreen) {
-            if (width <= 0) {
-                throw new System.ArgumentException($"Invalid width '{width}', must be greater than zero.");
-            }
-
-            if (height <= 0) {
-                throw new System.ArgumentException($"Invalid height '{height}', must be greater than zero.");
-            }
-
-            if (InternalResize(width, height, fullscreen)) {
-                RefreshViewMode(ResizeMode, PixelScale);
-            }
-        }
-        */

         public void ToggleFullscreen() {
             bool isSwitchingToFullscreen = !IsFullscreen;
@@ -788,6 +755,7 @@

             // checks if preffered backbuffer size is the same as current window size
             if (XNAGameWrapper.GraphicsDeviceManager.PreferredBackBufferWidth == windowClientBounds.Width && XNAGameWrapper.GraphicsDeviceManager.PreferredBackBufferHeight == windowClientBounds.Height) {
+                return;
             }

             DisplayMode displayMode = XNAGameWrapper.GraphicsDevice.DisplayMode;


Fix to correctly refresh canvases and renderers when window resize

--- Raccoon/Core/Game.cs
+++ Raccoon/Core/Game.cs
@@ -156,10 +156,10 @@
         public int LastUpdateDeltaTime { get; private set; }
         public int Width { get { return (int) Size.Width; } }
         public int Height { get { return (int) Size.Height; } }
-        public int WindowWidth { get { return (int) WindowSize.Width; } }
-        public int WindowHeight { get { return (int) WindowSize.Height; } }
-        public int DisplayWidth { get { return (int) DisplaySize.Width; } }
-        public int DisplayHeight { get { return (int) DisplaySize.Height; } }
+        public int WindowWidth { get { return XNAGameWrapper.Window.ClientBounds.Width; } }
+        public int WindowHeight { get { return XNAGameWrapper.Window.ClientBounds.Height; } }
+        public int DisplayWidth { get { return XNAGameWrapper.GraphicsDevice.DisplayMode.Width; } }
+        public int DisplayHeight { get { return XNAGameWrapper.GraphicsDevice.DisplayMode.Height; } }
         public int TargetFramerate { get; private set; }
         public Size Size { get; private set; }
         public Size WindowSize { get { return new Size(XNAGameWrapper.Window.ClientBounds.Width, XNAGameWrapper.Window.ClientBounds.Height); } }
@@ -249,7 +249,12 @@
                 }

                 MainCanvas.Resize(Size);
-                MainRenderer.RecalculateProjection();
+
+                foreach (Renderer renderer in Renderers) {
+                    renderer.RecalculateProjection();
+                }
+
+                ScreenRenderer.RecalculateProjection();
             }
         }

@@ -428,11 +433,17 @@
         public void ResizeWindow(int width, int height) {
             Debug.Assert(width > 0 && height > 0, $"Width and Height can't be zero or smaller (width: {width}, height: {height})");

+            if (width == WindowWidth && height == WindowHeight) {
+                return;
+            }
+
             DisplayMode displayMode = XNAGameWrapper.GraphicsDevice.DisplayMode;

             XNAGameWrapper.GraphicsDeviceManager.PreferredBackBufferWidth = (int) Math.Clamp(width, WindowMinimumSize.Width, displayMode.Width);
             XNAGameWrapper.GraphicsDeviceManager.PreferredBackBufferHeight = (int) Math.Clamp(height, WindowMinimumSize.Height, displayMode.Height);
             XNAGameWrapper.GraphicsDeviceManager.ApplyChanges();
+
+            RefreshViewMode();
         }

         public void ResizeWindow(int width, int height, bool fullscreen) {
@@ -444,6 +455,8 @@
             XNAGameWrapper.GraphicsDeviceManager.PreferredBackBufferHeight = (int) Math.Clamp(height, WindowMinimumSize.Height, displayMode.Height);
             XNAGameWrapper.GraphicsDeviceManager.IsFullScreen = fullscreen;
             XNAGameWrapper.GraphicsDeviceManager.ApplyChanges();
+
+            RefreshViewMode();
         }

         public void ResizeWindow(Size size) {
@@ -662,14 +675,9 @@
             }

             RefreshViewMode();
-
-            // user callback
-            OnWindowResize();
         }

         private void RefreshViewMode() {
-            Microsoft.Xna.Framework.Rectangle windowClientBounds = XNAGameWrapper.Window.ClientBounds;
-            Size previousWindowSize = WindowSize;
             WindowCenter = (WindowSize / 2f).ToVector2();

             switch (ResizeMode) {
@@ -707,7 +715,6 @@
             if (MainCanvas != null) {
                 MainCanvas.Resize(Size);
                 MainCanvas.ClippingRegion = MainCanvas.SourceRegion;
-                MainRenderer.RecalculateProjection();
             }

 #if DEBUG
@@ -717,6 +724,10 @@
             }
 #endif

+            ScreenRenderer.RecalculateProjection();
+
+            // user callback
+            OnWindowResize();
         }

         private void InternalLoadContent() {


Fixed bug in editing collaborators validation (#7)

--- Source/Server/Showcase.Server.DataTransferModels/Project/EditProjectRequestModel.cs
+++ Source/Server/Showcase.Server.DataTransferModels/Project/EditProjectRequestModel.cs
@@ -31,7 +31,17 @@

         public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
         {
-            var totalCollaborators = this.Collaborators.Count + this.NewCollaborators.Split(',').Length;
+            var totalCollaborators = 0;
+            if (this.Collaborators != null)
+            {
+                totalCollaborators += this.Collaborators.Count;
+            }
+
+            if (!string.IsNullOrWhiteSpace(this.NewCollaborators))
+            {
+                totalCollaborators += this.NewCollaborators.Split(',').Length;
+            }
+
             if (totalCollaborators < ValidationConstants.TotalMinProjectCollaboratorsLength
                 || totalCollaborators > ValidationConstants.MaxProjectCollaboratorsAndTagsLength)
             {


fixed spacing

fixed spacing


return FileChanges for commit details

return FileChanges for commit details

--- RepoStats/Startup.cs
+++ RepoStats/Startup.cs
@@ -1,11 +1,16 @@

 namespace RepoStats
 {
+    using LibGit2Sharp;
     using Microsoft.Owin;
     using Microsoft.Owin.FileSystems;
     using Microsoft.Owin.StaticFiles;
     using Owin;
+    using ProtoBuf;
     using System;
+    using System.Collections.Generic;
+    using System.Configuration;
+    using System.IO;
     using System.Web.Http;

     public class Startup
@@ -33,15 +38,27 @@

     public class CheckinController : ApiController
     {
+        public string guid = Guid.NewGuid().ToString();
+
         public CheckinController()
         {
         }

         // Gets
         [HttpGet]
-        public String Get(string checkinId)
+        public List<FileChanges> Get(string checkinId)
         {
-            return "Hello world";
+            Repository repo = new Repository(ConfigurationManager.AppSettings["RepoRoot"]);
+            //Commit commit = repo.Lookup<Commit>(checkinId);
+            //return commit.Message;
+
+            string patchDirectory = Path.Combine(repo.Info.Path, "patches");
+            List<FileChanges> fileChanges = null;
+
+            string patchFileName = patchDirectory + "/" + checkinId + ".bin";
+            fileChanges = Serializer.Deserialize<List<FileChanges>>(File.OpenRead(patchFileName));
+
+            return fileChanges;
         }
     }
 }


Bug fixed: When User doubleclick on the ResultsControl on an unexising constructor ".ctor" the addin crash

--- OpenCover.UI/Views/CodeCoverageResultsControl.xaml.cs
+++ OpenCover.UI/Views/CodeCoverageResultsControl.xaml.cs
@@ -168,14 +168,15 @@

 				if (coveredFiles != null)
 				{
-					var file = coveredFiles.FirstOrDefault(f => f.UniqueId == method.FileRef.UniqueId);
+                    try
+                    {
+					    var file = coveredFiles.FirstOrDefault(f => f.UniqueId == method.FileRef.UniqueId);

-					IDEHelper.CloseFile(_package.DTE, file.FullPath);
+					    IDEHelper.CloseFile(_package.DTE, file.FullPath);

-					_fileOpening = true;
-					_lastSelectedFile = file.FullPath;
-					try
-					{
+					    _fileOpening = true;
+					    _lastSelectedFile = file.FullPath;
+

 						IDEHelper.OpenFile(_package.DTE, file.FullPath);
 						IDEHelper.GoToLine(_package.DTE, method.SequencePoints.FirstOrDefault().StartLine);


feat: introduce a projects_missing_permissions field in the AbortInfo structure

PiperOrigin-RevId: 457088244

Source-Link: https://github.com/googleapis/googleapis/commit/dfefc95a24360b6ad959d1e2352250d53cf99a93

Source-Link: https://github.com/googleapis/googleapis-gen/commit/6258ccbb3baf50b94106400584326cc46d41e364
Copy-Tag: eyJwIjoiYXBpcy9Hb29nbGUuQ2xvdWQuTmV0d29ya01hbmFnZW1lbnQuVjEvLk93bEJvdC55YW1sIiwiaCI6IjYyNThjY2JiM2JhZjUwYjk0MTA2NDAwNTg0MzI2Y2M0NmQ0MWUzNjQifQ==

--- apis/Google.Cloud.NetworkManagement.V1/Google.Cloud.NetworkManagement.V1/Trace.g.cs
+++ apis/Google.Cloud.NetworkManagement.V1/Google.Cloud.NetworkManagement.V1/Trace.g.cs
@@ -150,47 +150,48 @@
             "b3VyY2VfdXJpGAIgASgJIqABCgZUYXJnZXQSFgoSVEFSR0VUX1VOU1BFQ0lG",
             "SUVEEAASDwoLUEVFUklOR19WUEMQARIPCgtWUE5fR0FURVdBWRACEhAKDElO",
             "VEVSQ09OTkVDVBADEg4KCkdLRV9NQVNURVIQBBIiCh5JTVBPUlRFRF9DVVNU",
-            "T01fUk9VVEVfTkVYVF9IT1AQBRIWChJDTE9VRF9TUUxfSU5TVEFOQ0UQBiLi",
-            "AwoJQWJvcnRJbmZvEkEKBWNhdXNlGAEgASgOMjIuZ29vZ2xlLmNsb3VkLm5l",
+            "T01fUk9VVEVfTkVYVF9IT1AQBRIWChJDTE9VRF9TUUxfSU5TVEFOQ0UQBiKH",
+            "BAoJQWJvcnRJbmZvEkEKBWNhdXNlGAEgASgOMjIuZ29vZ2xlLmNsb3VkLm5l",
             "dHdvcmttYW5hZ2VtZW50LnYxLkFib3J0SW5mby5DYXVzZRIUCgxyZXNvdXJj",
-            "ZV91cmkYAiABKAki+wIKBUNhdXNlEhUKEUNBVVNFX1VOU1BFQ0lGSUVEEAAS",
-            "EwoPVU5LTk9XTl9ORVRXT1JLEAESDgoKVU5LTk9XTl9JUBACEhMKD1VOS05P",
-            "V05fUFJPSkVDVBADEhUKEVBFUk1JU1NJT05fREVOSUVEEAQSFgoSTk9fU09V",
-            "UkNFX0xPQ0FUSU9OEAUSFAoQSU5WQUxJRF9BUkdVTUVOVBAGEhIKDk5PX0VY",
-            "VEVSTkFMX0lQEAcSGgoWVU5JTlRFTkRFRF9ERVNUSU5BVElPThAIEhIKDlRS",
-            "QUNFX1RPT19MT05HEAkSEgoOSU5URVJOQUxfRVJST1IQChIdChlTT1VSQ0Vf",
-            "RU5EUE9JTlRfTk9UX0ZPVU5EEAsSHQoZTUlTTUFUQ0hFRF9TT1VSQ0VfTkVU",
-            "V09SSxAMEiIKHkRFU1RJTkFUSU9OX0VORFBPSU5UX05PVF9GT1VORBANEiIK",
-            "Hk1JU01BVENIRURfREVTVElOQVRJT05fTkVUV09SSxAOIpoGCghEcm9wSW5m",
-            "bxJACgVjYXVzZRgBIAEoDjIxLmdvb2dsZS5jbG91ZC5uZXR3b3JrbWFuYWdl",
-            "bWVudC52MS5Ecm9wSW5mby5DYXVzZRIUCgxyZXNvdXJjZV91cmkYAiABKAki",
-            "tQUKBUNhdXNlEhUKEUNBVVNFX1VOU1BFQ0lGSUVEEAASHAoYVU5LTk9XTl9F",
-            "WFRFUk5BTF9BRERSRVNTEAESGQoVRk9SRUlHTl9JUF9ESVNBTExPV0VEEAIS",
-            "EQoNRklSRVdBTExfUlVMRRADEgwKCE5PX1JPVVRFEAQSEwoPUk9VVEVfQkxB",
-            "Q0tIT0xFEAUSFwoTUk9VVEVfV1JPTkdfTkVUV09SSxAGEh8KG1BSSVZBVEVf",
-            "VFJBRkZJQ19UT19JTlRFUk5FVBAHEiQKIFBSSVZBVEVfR09PR0xFX0FDQ0VT",
-            "U19ESVNBTExPV0VEEAgSFwoTTk9fRVhURVJOQUxfQUREUkVTUxAJEhwKGFVO",
-            "S05PV05fSU5URVJOQUxfQUREUkVTUxAKEhwKGEZPUldBUkRJTkdfUlVMRV9N",
-            "SVNNQVRDSBALEiAKHEZPUldBUkRJTkdfUlVMRV9OT19JTlNUQU5DRVMQDBI4",
-            "CjRGSVJFV0FMTF9CTE9DS0lOR19MT0FEX0JBTEFOQ0VSX0JBQ0tFTkRfSEVB",
-            "TFRIX0NIRUNLEA0SGAoUSU5TVEFOQ0VfTk9UX1JVTk5JTkcQDhIYChRUUkFG",
-            "RklDX1RZUEVfQkxPQ0tFRBAPEiIKHkdLRV9NQVNURVJfVU5BVVRIT1JJWkVE",
-            "X0FDQ0VTUxAQEioKJkNMT1VEX1NRTF9JTlNUQU5DRV9VTkFVVEhPUklaRURf",
-            "QUNDRVNTEBESHgoaRFJPUFBFRF9JTlNJREVfR0tFX1NFUlZJQ0UQEhIkCiBE",
-            "Uk9QUEVEX0lOU0lERV9DTE9VRF9TUUxfU0VSVklDRRATEiUKIUdPT0dMRV9N",
-            "QU5BR0VEX1NFUlZJQ0VfTk9fUEVFUklORxAUEiQKIENMT1VEX1NRTF9JTlNU",
-            "QU5DRV9OT19JUF9BRERSRVNTEBUiawoNR0tFTWFzdGVySW5mbxITCgtjbHVz",
-            "dGVyX3VyaRgCIAEoCRIbChNjbHVzdGVyX25ldHdvcmtfdXJpGAQgASgJEhMK",
-            "C2ludGVybmFsX2lwGAUgASgJEhMKC2V4dGVybmFsX2lwGAYgASgJIogBChRD",
-            "bG91ZFNRTEluc3RhbmNlSW5mbxIUCgxkaXNwbGF5X25hbWUYASABKAkSCwoD",
-            "dXJpGAIgASgJEhMKC25ldHdvcmtfdXJpGAQgASgJEhMKC2ludGVybmFsX2lw",
-            "GAUgASgJEhMKC2V4dGVybmFsX2lwGAYgASgJEg4KBnJlZ2lvbhgHIAEoCUL4",
-            "AQolY29tLmdvb2dsZS5jbG91ZC5uZXR3b3JrbWFuYWdlbWVudC52MUIKVHJh",
-            "Y2VQcm90b1ABWlJnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVh",
-            "cGlzL2Nsb3VkL25ldHdvcmttYW5hZ2VtZW50L3YxO25ldHdvcmttYW5hZ2Vt",
-            "ZW50qgIhR29vZ2xlLkNsb3VkLk5ldHdvcmtNYW5hZ2VtZW50LlYxygIhR29v",
-            "Z2xlXENsb3VkXE5ldHdvcmtNYW5hZ2VtZW50XFYx6gIkR29vZ2xlOjpDbG91",
-            "ZDo6TmV0d29ya01hbmFnZW1lbnQ6OlYxYgZwcm90bzM="));
+            "ZV91cmkYAiABKAkSIwobcHJvamVjdHNfbWlzc2luZ19wZXJtaXNzaW9uGAMg",
+            "AygJIvsCCgVDYXVzZRIVChFDQVVTRV9VTlNQRUNJRklFRBAAEhMKD1VOS05P",
+            "V05fTkVUV09SSxABEg4KClVOS05PV05fSVAQAhITCg9VTktOT1dOX1BST0pF",
+            "Q1QQAxIVChFQRVJNSVNTSU9OX0RFTklFRBAEEhYKEk5PX1NPVVJDRV9MT0NB",
+            "VElPThAFEhQKEElOVkFMSURfQVJHVU1FTlQQBhISCg5OT19FWFRFUk5BTF9J",
+            "UBAHEhoKFlVOSU5URU5ERURfREVTVElOQVRJT04QCBISCg5UUkFDRV9UT09f",
+            "TE9ORxAJEhIKDklOVEVSTkFMX0VSUk9SEAoSHQoZU09VUkNFX0VORFBPSU5U",
+            "X05PVF9GT1VORBALEh0KGU1JU01BVENIRURfU09VUkNFX05FVFdPUksQDBIi",
+            "Ch5ERVNUSU5BVElPTl9FTkRQT0lOVF9OT1RfRk9VTkQQDRIiCh5NSVNNQVRD",
+            "SEVEX0RFU1RJTkFUSU9OX05FVFdPUksQDiKaBgoIRHJvcEluZm8SQAoFY2F1",
+            "c2UYASABKA4yMS5nb29nbGUuY2xvdWQubmV0d29ya21hbmFnZW1lbnQudjEu",
+            "RHJvcEluZm8uQ2F1c2USFAoMcmVzb3VyY2VfdXJpGAIgASgJIrUFCgVDYXVz",
+            "ZRIVChFDQVVTRV9VTlNQRUNJRklFRBAAEhwKGFVOS05PV05fRVhURVJOQUxf",
+            "QUREUkVTUxABEhkKFUZPUkVJR05fSVBfRElTQUxMT1dFRBACEhEKDUZJUkVX",
+            "QUxMX1JVTEUQAxIMCghOT19ST1VURRAEEhMKD1JPVVRFX0JMQUNLSE9MRRAF",
+            "EhcKE1JPVVRFX1dST05HX05FVFdPUksQBhIfChtQUklWQVRFX1RSQUZGSUNf",
+            "VE9fSU5URVJORVQQBxIkCiBQUklWQVRFX0dPT0dMRV9BQ0NFU1NfRElTQUxM",
+            "T1dFRBAIEhcKE05PX0VYVEVSTkFMX0FERFJFU1MQCRIcChhVTktOT1dOX0lO",
+            "VEVSTkFMX0FERFJFU1MQChIcChhGT1JXQVJESU5HX1JVTEVfTUlTTUFUQ0gQ",
+            "CxIgChxGT1JXQVJESU5HX1JVTEVfTk9fSU5TVEFOQ0VTEAwSOAo0RklSRVdB",
+            "TExfQkxPQ0tJTkdfTE9BRF9CQUxBTkNFUl9CQUNLRU5EX0hFQUxUSF9DSEVD",
+            "SxANEhgKFElOU1RBTkNFX05PVF9SVU5OSU5HEA4SGAoUVFJBRkZJQ19UWVBF",
+            "X0JMT0NLRUQQDxIiCh5HS0VfTUFTVEVSX1VOQVVUSE9SSVpFRF9BQ0NFU1MQ",
+            "EBIqCiZDTE9VRF9TUUxfSU5TVEFOQ0VfVU5BVVRIT1JJWkVEX0FDQ0VTUxAR",
+            "Eh4KGkRST1BQRURfSU5TSURFX0dLRV9TRVJWSUNFEBISJAogRFJPUFBFRF9J",
+            "TlNJREVfQ0xPVURfU1FMX1NFUlZJQ0UQExIlCiFHT09HTEVfTUFOQUdFRF9T",
+            "RVJWSUNFX05PX1BFRVJJTkcQFBIkCiBDTE9VRF9TUUxfSU5TVEFOQ0VfTk9f",
+            "SVBfQUREUkVTUxAVImsKDUdLRU1hc3RlckluZm8SEwoLY2x1c3Rlcl91cmkY",
+            "AiABKAkSGwoTY2x1c3Rlcl9uZXR3b3JrX3VyaRgEIAEoCRITCgtpbnRlcm5h",
+            "bF9pcBgFIAEoCRITCgtleHRlcm5hbF9pcBgGIAEoCSKIAQoUQ2xvdWRTUUxJ",
+            "bnN0YW5jZUluZm8SFAoMZGlzcGxheV9uYW1lGAEgASgJEgsKA3VyaRgCIAEo",
+            "CRITCgtuZXR3b3JrX3VyaRgEIAEoCRITCgtpbnRlcm5hbF9pcBgFIAEoCRIT",
+            "CgtleHRlcm5hbF9pcBgGIAEoCRIOCgZyZWdpb24YByABKAlC+AEKJWNvbS5n",
+            "b29nbGUuY2xvdWQubmV0d29ya21hbmFnZW1lbnQudjFCClRyYWNlUHJvdG9Q",
+            "AVpSZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9jbG91",
+            "ZC9uZXR3b3JrbWFuYWdlbWVudC92MTtuZXR3b3JrbWFuYWdlbWVudKoCIUdv",
+            "b2dsZS5DbG91ZC5OZXR3b3JrTWFuYWdlbWVudC5WMcoCIUdvb2dsZVxDbG91",
+            "ZFxOZXR3b3JrTWFuYWdlbWVudFxWMeoCJEdvb2dsZTo6Q2xvdWQ6Ok5ldHdv",
+            "cmtNYW5hZ2VtZW50OjpWMWIGcHJvdG8z"));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { },
           new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
@@ -208,7 +209,7 @@
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.NetworkManagement.V1.EndpointInfo), global::Google.Cloud.NetworkManagement.V1.EndpointInfo.Parser, new[]{ "SourceIp", "DestinationIp", "Protocol", "SourcePort", "DestinationPort", "SourceNetworkUri", "DestinationNetworkUri" }, null, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.NetworkManagement.V1.DeliverInfo), global::Google.Cloud.NetworkManagement.V1.DeliverInfo.Parser, new[]{ "Target", "ResourceUri" }, null, new[]{ typeof(global::Google.Cloud.NetworkManagement.V1.DeliverInfo.Types.Target) }, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.NetworkManagement.V1.ForwardInfo), global::Google.Cloud.NetworkManagement.V1.ForwardInfo.Parser, new[]{ "Target", "ResourceUri" }, null, new[]{ typeof(global::Google.Cloud.NetworkManagement.V1.ForwardInfo.Types.Target) }, null, null),
-            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.NetworkManagement.V1.AbortInfo), global::Google.Cloud.NetworkManagement.V1.AbortInfo.Parser, new[]{ "Cause", "ResourceUri" }, null, new[]{ typeof(global::Google.Cloud.NetworkManagement.V1.AbortInfo.Types.Cause) }, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.NetworkManagement.V1.AbortInfo), global::Google.Cloud.NetworkManagement.V1.AbortInfo.Parser, new[]{ "Cause", "ResourceUri", "ProjectsMissingPermission" }, null, new[]{ typeof(global::Google.Cloud.NetworkManagement.V1.AbortInfo.Types.Cause) }, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.NetworkManagement.V1.DropInfo), global::Google.Cloud.NetworkManagement.V1.DropInfo.Parser, new[]{ "Cause", "ResourceUri" }, null, new[]{ typeof(global::Google.Cloud.NetworkManagement.V1.DropInfo.Types.Cause) }, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.NetworkManagement.V1.GKEMasterInfo), global::Google.Cloud.NetworkManagement.V1.GKEMasterInfo.Parser, new[]{ "ClusterUri", "ClusterNetworkUri", "InternalIp", "ExternalIp" }, null, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.NetworkManagement.V1.CloudSQLInstanceInfo), global::Google.Cloud.NetworkManagement.V1.CloudSQLInstanceInfo.Parser, new[]{ "DisplayName", "Uri", "NetworkUri", "InternalIp", "ExternalIp", "Region" }, null, null, null, null)
@@ -6860,6 +6861,7 @@
     public AbortInfo(AbortInfo other) : this() {
       cause_ = other.cause_;
       resourceUri_ = other.resourceUri_;
+      projectsMissingPermission_ = other.projectsMissingPermission_.Clone();
       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
     }

@@ -6899,6 +6901,22 @@
       }
     }

+    /// <summary>Field number for the "projects_missing_permission" field.</summary>
+    public const int ProjectsMissingPermissionFieldNumber = 3;
+    private static readonly pb::FieldCodec<string> _repeated_projectsMissingPermission_codec
+        = pb::FieldCodec.ForString(26);
+    private readonly pbc::RepeatedField<string> projectsMissingPermission_ = new pbc::RepeatedField<string>();
+    /// <summary>
+    /// List of project IDs that the user has specified in the request but does
+    /// not have permission to access network configs. Analysis is aborted in this
+    /// case with the PERMISSION_DENIED cause.
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+    public pbc::RepeatedField<string> ProjectsMissingPermission {
+      get { return projectsMissingPermission_; }
+    }
+
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
     public override bool Equals(object other) {
@@ -6916,6 +6934,7 @@
       }
       if (Cause != other.Cause) return false;
       if (ResourceUri != other.ResourceUri) return false;
+      if(!projectsMissingPermission_.Equals(other.projectsMissingPermission_)) return false;
       return Equals(_unknownFields, other._unknownFields);
     }

@@ -6925,6 +6944,7 @@
       int hash = 1;
       if (Cause != global::Google.Cloud.NetworkManagement.V1.AbortInfo.Types.Cause.Unspecified) hash ^= Cause.GetHashCode();
       if (ResourceUri.Length != 0) hash ^= ResourceUri.GetHashCode();
+      hash ^= projectsMissingPermission_.GetHashCode();
       if (_unknownFields != null) {
         hash ^= _unknownFields.GetHashCode();
       }
@@ -6951,6 +6971,7 @@
         output.WriteRawTag(18);
         output.WriteString(ResourceUri);
       }
+      projectsMissingPermission_.WriteTo(output, _repeated_projectsMissingPermission_codec);
       if (_unknownFields != null) {
         _unknownFields.WriteTo(output);
       }
@@ -6969,6 +6990,7 @@
         output.WriteRawTag(18);
         output.WriteString(ResourceUri);
       }
+      projectsMissingPermission_.WriteTo(ref output, _repeated_projectsMissingPermission_codec);
       if (_unknownFields != null) {
         _unknownFields.WriteTo(ref output);
       }
@@ -6985,6 +7007,7 @@
       if (ResourceUri.Length != 0) {
         size += 1 + pb::CodedOutputStream.ComputeStringSize(ResourceUri);
       }
+      size += projectsMissingPermission_.CalculateSize(_repeated_projectsMissingPermission_codec);
       if (_unknownFields != null) {
         size += _unknownFields.CalculateSize();
       }
@@ -7003,6 +7026,7 @@
       if (other.ResourceUri.Length != 0) {
         ResourceUri = other.ResourceUri;
       }
+      projectsMissingPermission_.Add(other.projectsMissingPermission_);
       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
     }

@@ -7026,6 +7050,10 @@
             ResourceUri = input.ReadString();
             break;
           }
+          case 26: {
+            projectsMissingPermission_.AddEntriesFrom(input, _repeated_projectsMissingPermission_codec);
+            break;
+          }
         }
       }
     #endif
@@ -7047,6 +7075,10 @@
           }
           case 18: {
             ResourceUri = input.ReadString();
+            break;
+          }
+          case 26: {
+            projectsMissingPermission_.AddEntriesFrom(ref input, _repeated_projectsMissingPermission_codec);
             break;
           }
         }


#61 Better comment

#61 Better comment

--- RDFSharp/Query/Mirella/Algebra/Filters/RDFInFilter.cs
+++ RDFSharp/Query/Mirella/Algebra/Filters/RDFInFilter.cs
@@ -26,7 +26,7 @@
 {

     /// <summary>
-    /// RDFInFilter represents a filter checking if a variable is found in a given set of RDF terms.
+    /// RDFInFilter represents a filter checking if a RDF term is found in a given set of RDF terms.
     /// </summary>
     public class RDFInFilter : RDFFilter
     {


enable test with correct permission

enable test with correct permission

--- RSAKeyVaultProvider.Tests/RSAKeyVaultProviderTests.cs
+++ RSAKeyVaultProvider.Tests/RSAKeyVaultProviderTests.cs
@@ -115,26 +115,10 @@

         }

-     //   [AzureFact] // need to get right key permission on cert
-        //public async Task ShouldRoundTripEncryptAndDecryptWithCertificate()
-        //{
-        //    var materialized = await KeyVaultConfigurationDiscoverer.Materialize(certificateConfiguration);
-        //    using (var rsa = materialized.ToRSA())
-        //    {
-        //        var data = Encoding.UTF8.GetBytes("Clear text");
-        //        var cipherText = rsa.Encrypt(data, RSAEncryptionPadding.Pkcs1);
-        //        var returnedData = rsa.Decrypt(cipherText, RSAEncryptionPadding.Pkcs1);
-        //        var text = Encoding.UTF8.GetString(returnedData);
-
-        //        Assert.Equal("Clear text", text);
-        //    }
-
-        // }
-
-        [AzureFact]
-        public async Task ShouldRoundTripEncryptAndDecryptWithKey()
-        {
-            var materialized = await KeyVaultConfigurationDiscoverer.Materialize(keyConfiguration);
+        [AzureFact]
+        public async Task ShouldRoundTripEncryptAndDecryptWithCertificate()
+        {
+            var materialized = await KeyVaultConfigurationDiscoverer.Materialize(certificateConfiguration);
             using (var rsa = materialized.ToRSA())
             {
                 var data = Encoding.UTF8.GetBytes("Clear text");
@@ -148,6 +132,22 @@
         }

         [AzureFact]
+        public async Task ShouldRoundTripEncryptAndDecryptWithKey()
+        {
+            var materialized = await KeyVaultConfigurationDiscoverer.Materialize(keyConfiguration);
+            using (var rsa = materialized.ToRSA())
+            {
+                var data = Encoding.UTF8.GetBytes("Clear text");
+                var cipherText = rsa.Encrypt(data, RSAEncryptionPadding.Pkcs1);
+                var returnedData = rsa.Decrypt(cipherText, RSAEncryptionPadding.Pkcs1);
+                var text = Encoding.UTF8.GetString(returnedData);
+
+                Assert.Equal("Clear text", text);
+            }
+
+        }
+
+        [AzureFact]
         public async Task ShouldRoundTripASignatureWithKey()
         {
             var materialized = await KeyVaultConfigurationDiscoverer.Materialize(keyConfiguration);


Examples added

Examples added

--- RiotApi.Net.Tests/ApiCallTests/RiotHttpClientTests.cs
+++ RiotApi.Net.Tests/ApiCallTests/RiotHttpClientTests.cs
@@ -1,10 +1,13 @@
 using System;
+using System.Collections.Generic;
 using System.Configuration;
 using System.Linq;
 using Ninject;
 using NUnit.Framework;
 using RiotApi.Net.RestClient;
 using RiotApi.Net.RestClient.Configuration;
+using RiotApi.Net.RestClient.Dto.Stats;
+using RiotApi.Net.RestClient.Dto.Summoner;
 using RiotApi.Net.RestClient.Helpers;
 using RiotHttpClientModule = RiotApi.Net.Tests.NinjectModules.RiotHttpClientModule;

@@ -61,7 +64,7 @@
             Console.WriteLine($"There are {championList.Champions.Count()} free to play champions to play with!");
         }

-        public void TestCreationFromConstructor()
+        public void Example1()
         {
             IRiotClient riotClient = new RiotClient("your api key here");
             //retrieve all current free to play champions
@@ -69,5 +72,34 @@
             //print the number of free to play champions
             Console.WriteLine($"There are {championList.Champions.Count()} free to play champions to play with!");
         }
+
+        [Test]
+        public void Example2()
+        {
+            IRiotClient riotClient = new RiotClient("your api key here");
+            //retrieve xeyanord and fnatictop summoners with one call
+            var summoners = riotClient.Summoner.GetSummonersByName(RiotApiConfig.Regions.EUNE, "xeyanord", "fnatictop");
+            var xeyanord = summoners["xeyanord"];
+            var fnatictop = summoners["fnatictop"];
+            //print the following statement about the two summoners
+            Console.WriteLine(
+                $"{fnatictop.Name} is level {fnatictop.SummonerLevel} and {xeyanord.Name} is {xeyanord.SummonerLevel}, its because {xeyanord.Name} is a slacker!");
+        }
+
+        [Test]
+        public void Example3()
+        {
+            IRiotClient riotClient = new RiotClient("your api key here");
+            //get challeger tier league for ranked solo 5x5
+            var challengers = riotClient.League.GetChallengerTierLeagues(RiotApiConfig.Regions.EUNE,
+                Enums.GameQueueType.RANKED_SOLO_5x5);
+            //get top 5 top leaderboard using LINQ
+            var top5 = challengers.Entries.OrderByDescending(x => x.LeaguePoints).Take(5).ToList();
+            //Print top 5 leaderboard
+            top5.ForEach(
+                topEntry =>
+                    Console.WriteLine(
+                        $"{topEntry.PlayerOrTeamName} - wins:{topEntry.Wins}  loss:{topEntry.Losses} points:{topEntry.LeaguePoints}"));
+        }
     }
 }


Added error handling for malformed PQDIF files from NEXUS meters.

--- Source/Libraries/FaultData/DataReaders/PQDIFReader.cs
+++ Source/Libraries/FaultData/DataReaders/PQDIFReader.cs
@@ -27,6 +27,7 @@
 using System.IO;
 using System.Linq;
 using FaultData.DataAnalysis;
+using FaultData.DataReaders.Linq;
 using FaultData.DataReaders.PQube;
 using FaultData.DataSets;
 using GSF;
@@ -38,6 +39,52 @@

 namespace FaultData.DataReaders
 {
+    namespace Linq
+    {
+        public static class EnumerableExtensions
+        {
+            public static IEnumerable<T> HandleExceptions<T>(this IEnumerable<T> enumerable, Action<AggregateException> handler)
+            {
+                List<Exception> exceptions = new List<Exception>();
+                IEnumerator<T> enumerator = enumerable.GetEnumerator();
+
+                using (enumerable as IDisposable)
+                using (enumerator as IDisposable)
+                {
+                    while (true)
+                    {
+                        T item;
+
+                        try
+                        {
+                            if (!enumerator.MoveNext())
+                                break;
+
+                            item = enumerator.Current;
+                        }
+                        catch (Exception ex)
+                        {
+                            exceptions.Add(ex);
+                            continue;
+                        }
+
+                        yield return item;
+                    }
+                }
+
+                try
+                {
+                    if (exceptions.Any())
+                        throw new AggregateException(exceptions);
+                }
+                catch (AggregateException ex)
+                {
+                    handler(ex);
+                }
+            }
+        }
+    }
+
     public class PQDIFReader : IDataReader, IDisposable
     {
         #region [ Members ]
@@ -165,6 +212,7 @@
                 .Where(channelInstance => QuantityType.IsQuantityTypeID(channelInstance.Definition.QuantityTypeID))
                 .Where(channelInstance => channelInstance.SeriesInstances.Any())
                 .Where(channelInstance => channelInstance.SeriesInstances[0].Definition.ValueTypeID == SeriesValueType.Time)
+                .HandleExceptions(ex => Log.Warn("Encountered malformed observation records in PQDIF file.", ex))
                 .ToList();

             // Create the list of series instances so we can


Added SecureObject IsSecure

Added SecureObject IsSecure

--- Suplex.Security.Core/Classes/AclModel/SecureObject.cs
+++ Suplex.Security.Core/Classes/AclModel/SecureObject.cs
@@ -71,7 +71,31 @@
             }
         }

+
         #region IsDirty
+        bool? _isSecure = false;
+        public virtual bool? IsSecure
+        {
+            get => _isSecure = GetIsSecure();
+            set
+            {
+                bool isSecure = GetIsSecure();
+                if( isSecure != _isSecure )
+                {
+                    _isSecure = isSecure;
+                    PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( nameof( IsSecure ) ) );
+                }
+            }
+        }
+        internal void SetIsSecure()
+        {
+            IsSecure = true;
+        }
+        internal bool GetIsSecure()
+        {
+            return !Security.DaclAllowInherit || !Security.SaclAllowInherit || Security.Dacl.Count > 0 || Security.Sacl.Count > 0;
+        }
+
         bool? _isDirty = null;
         public virtual bool? IsDirty
         {
@@ -101,8 +125,8 @@
             Security.Dacl.CollectionChanged -= SecurityAcl_CollectionChanged;
             Security.Sacl.CollectionChanged -= SecurityAcl_CollectionChanged;
         }
-        private void Security_PropertyChanged(object sender, PropertyChangedEventArgs e) { IsDirty = true; }
-        private void SecurityAcl_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { IsDirty = true; }
+        private void Security_PropertyChanged(object sender, PropertyChangedEventArgs e) { IsDirty = true; SetIsSecure(); }
+        private void SecurityAcl_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { IsDirty = true; SetIsSecure(); }
         #endregion

         public virtual SecurityDescriptor Security { get; set; } = new SecurityDescriptor();
@@ -146,6 +170,8 @@
                 secureObject.Security.SaclAuditTypeFilter = Security.SaclAuditTypeFilter;
             }

+            secureObject.SetIsSecure();
+
             secureObject.IsDirty = false;

             return secureObject;
@@ -174,6 +200,8 @@
                 Security.SaclAllowInherit = source.Security.SaclAllowInherit;
                 Security.SaclAuditTypeFilter = source.Security.SaclAuditTypeFilter;
             }
+
+            SetIsSecure();
         }
         #endregion


Created a unit test for the collection of enumeration parameter converter and found a bug in it.

--- System.CommandLine.Parser.UnitTests/ParserUnitTest.cs
+++ System.CommandLine.Parser.UnitTests/ParserUnitTest.cs
@@ -524,29 +524,40 @@
         {
             // Parses command line parameters that contain an array of boolean values and validates that the object was properly created
             CommandLineParameterParser parser = new CommandLineParameterParser();
-            ArrayPropertyParameterContainer arrayPropertyParameterContainer = parser.Parse<ArrayPropertyParameterContainer>("/BooleanArray [true, 1, false, 0]");
-            Assert.IsNotNull(arrayPropertyParameterContainer.BooleanArray);
-            Assert.IsTrue(arrayPropertyParameterContainer.BooleanArray.ElementAt(0));
-            Assert.IsTrue(arrayPropertyParameterContainer.BooleanArray.ElementAt(1));
-            Assert.IsFalse(arrayPropertyParameterContainer.BooleanArray.ElementAt(2));
-            Assert.IsFalse(arrayPropertyParameterContainer.BooleanArray.ElementAt(3));
+            ArrayPropertyParameterContainer arrayPropertyParameterContainer = parser.Parse<ArrayPropertyParameterContainer>("/BooleanCollection [true, 1, false, 0]");
+            Assert.IsNotNull(arrayPropertyParameterContainer.BooleanCollection);
+            Assert.IsTrue(arrayPropertyParameterContainer.BooleanCollection.ElementAt(0));
+            Assert.IsTrue(arrayPropertyParameterContainer.BooleanCollection.ElementAt(1));
+            Assert.IsFalse(arrayPropertyParameterContainer.BooleanCollection.ElementAt(2));
+            Assert.IsFalse(arrayPropertyParameterContainer.BooleanCollection.ElementAt(3));

             // Parses command line parameters that contain an array of string values and validates that the object was properly created
-            arrayPropertyParameterContainer = parser.Parse<ArrayPropertyParameterContainer>("/StringArray [abc, 123, \"abc XYZ\", 123.456, true]");
-            Assert.IsNotNull(arrayPropertyParameterContainer.StringArray);
-            Assert.AreEqual(arrayPropertyParameterContainer.StringArray[0], "abc");
-            Assert.AreEqual(arrayPropertyParameterContainer.StringArray[1], "123");
-            Assert.AreEqual(arrayPropertyParameterContainer.StringArray[2], "abc XYZ");
-            Assert.AreEqual(arrayPropertyParameterContainer.StringArray[3], "123.456");
-            Assert.AreEqual(arrayPropertyParameterContainer.StringArray[4], "True");
+            arrayPropertyParameterContainer = parser.Parse<ArrayPropertyParameterContainer>("/StringCollection [abc, 123, \"abc XYZ\", 123.456, true]");
+            Assert.IsNotNull(arrayPropertyParameterContainer.StringCollection);
+            Assert.AreEqual(arrayPropertyParameterContainer.StringCollection[0], "abc");
+            Assert.AreEqual(arrayPropertyParameterContainer.StringCollection[1], "123");
+            Assert.AreEqual(arrayPropertyParameterContainer.StringCollection[2], "abc XYZ");
+            Assert.AreEqual(arrayPropertyParameterContainer.StringCollection[3], "123.456");
+            Assert.AreEqual(arrayPropertyParameterContainer.StringCollection[4], "True");

             // Parses command line parameters that contain an array of number values and validates that the object was properly created
-            arrayPropertyParameterContainer = parser.Parse<ArrayPropertyParameterContainer>("--NumberArray:[123.456, 123, true, \"456\"]");
-            Assert.IsNotNull(arrayPropertyParameterContainer.NumberArray);
-            Assert.AreEqual(arrayPropertyParameterContainer.NumberArray.ElementAt(0), 123.456d);
-            Assert.AreEqual(arrayPropertyParameterContainer.NumberArray.ElementAt(1), 123.0d);
-            Assert.AreEqual(arrayPropertyParameterContainer.NumberArray.ElementAt(2), 1.0d);
-            Assert.AreEqual(arrayPropertyParameterContainer.NumberArray.ElementAt(3), 456.0d);
+            arrayPropertyParameterContainer = parser.Parse<ArrayPropertyParameterContainer>("--NumberCollection:[123.456, 123, true, \"456\"]");
+            Assert.IsNotNull(arrayPropertyParameterContainer.NumberCollection);
+            Assert.AreEqual(arrayPropertyParameterContainer.NumberCollection.ElementAt(0), 123.456d);
+            Assert.AreEqual(arrayPropertyParameterContainer.NumberCollection.ElementAt(1), 123.0d);
+            Assert.AreEqual(arrayPropertyParameterContainer.NumberCollection.ElementAt(2), 1.0d);
+            Assert.AreEqual(arrayPropertyParameterContainer.NumberCollection.ElementAt(3), 456.0d);
+
+            // Parses command line parameters that contain an array of enumeration values and validates that the object was properly created
+            arrayPropertyParameterContainer = parser.Parse<ArrayPropertyParameterContainer>("/EnumerationCollection [Monday, \"Tuesday\", Wednesday, \"Thursday\", Friday, \"Saturday\", Sunday]");
+            Assert.IsNotNull(arrayPropertyParameterContainer.EnumerationCollection);
+            Assert.AreEqual(arrayPropertyParameterContainer.EnumerationCollection[0], DayOfWeek.Monday);
+            Assert.AreEqual(arrayPropertyParameterContainer.EnumerationCollection[1], DayOfWeek.Tuesday);
+            Assert.AreEqual(arrayPropertyParameterContainer.EnumerationCollection[2], DayOfWeek.Wednesday);
+            Assert.AreEqual(arrayPropertyParameterContainer.EnumerationCollection[3], DayOfWeek.Thursday);
+            Assert.AreEqual(arrayPropertyParameterContainer.EnumerationCollection[4], DayOfWeek.Friday);
+            Assert.AreEqual(arrayPropertyParameterContainer.EnumerationCollection[5], DayOfWeek.Saturday);
+            Assert.AreEqual(arrayPropertyParameterContainer.EnumerationCollection[6], DayOfWeek.Sunday);
         }

         #endregion
@@ -684,19 +695,24 @@
             #region Public Properties

             /// <summary>
-            /// Gets or sets the "BooleanArray" command line parameter.
-            /// </summary>
-            public IEnumerable<bool> BooleanArray { get; set; }
-
-            /// <summary>
-            /// Gets or sets the "StringArray" command line parameter.
-            /// </summary>
-            public List<string> StringArray { get; set; }
-
-            /// <summary>
-            /// Gets or sets the "NumberArray" command line parameter.
-            /// </summary>
-            public HashSet<double> NumberArray { get; set; }
+            /// Gets or sets the "BooleanCollection" command line parameter.
+            /// </summary>
+            public IEnumerable<bool> BooleanCollection { get; set; }
+
+            /// <summary>
+            /// Gets or sets the "StringCollection" command line parameter.
+            /// </summary>
+            public List<string> StringCollection { get; set; }
+
+            /// <summary>
+            /// Gets or sets the "NumberCollection" command line parameter.
+            /// </summary>
+            public HashSet<double> NumberCollection { get; set; }
+
+            /// <summary>
+            /// Gets or sets the "EnumerationCollection" command line parameter.
+            /// </summary>
+            public IList<DayOfWeek> EnumerationCollection { get; set; }

             #endregion
         }


Switch Back to Int in Unit Test

Switch Back to Int in Unit Test

--- TinyCsvParser/TinyCsvParser.Test/TinyCsvParserTest.cs
+++ TinyCsvParser/TinyCsvParser.Test/TinyCsvParserTest.cs
@@ -84,7 +84,7 @@

         public class NegativeValueEntity
         {
-            public Double Value { get; set; }
+            public int Value { get; set; }
         }

         private class NegativeValueEntityMapping : CsvMapping<NegativeValueEntity>


Try another space

Try another space

--- src/Cash-Flow-Projection/Controllers/HomeController.cs
+++ src/Cash-Flow-Projection/Controllers/HomeController.cs
@@ -152,7 +152,7 @@
             {
                 return new StringBuilder()
                     .AppendLine("BEGIN:VEVENT")
-                    .AppendLine($"SUMMARY:{entry.Description}").AppendLine(entry.Amount != 0 ? $" {entry.Amount:c}" : string.Empty)
+                    .AppendLine($"SUMMARY:{entry.Description} ").AppendLine(entry.Amount != 0 ? $" {entry.Amount:c}" : string.Empty)
                     .AppendLine("DTSTART:" + entry.Date.ToString("yyyyMMdd"))
                     .AppendLine("LAST-MODIFIED:" + DateTime.UtcNow.ToUniversalTime().ToString(DateFormat))
                     .AppendLine("SEQUENCE:0")


Add implementation for new Unsafe intrinsics

--- src/Common/src/TypeSystem/IL/Stubs/UnsafeIntrinsics.cs
+++ src/Common/src/TypeSystem/IL/Stubs/UnsafeIntrinsics.cs
@@ -51,6 +51,18 @@
                     {
                         (byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1,
                         (byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.ceq),
+                        (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null);
+                case "IsAddressGreaterThan":
+                    return new ILStubMethodIL(method, new byte[]
+                    {
+                        (byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1,
+                        (byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.cgt_un),
+                        (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null);
+                case "IsAddressLessThan":
+                    return new ILStubMethodIL(method, new byte[]
+                    {
+                        (byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1,
+                        (byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.clt_un),
                         (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null);
                 case "ByteOffset":
                     return new ILStubMethodIL(method, new byte[]


Added Video search tests.

Added Video search tests.


adding the db

adding the db

--- WBS99/Assets/Scripts/GameManagement/GameController.cs
+++ WBS99/Assets/Scripts/GameManagement/GameController.cs
@@ -30,6 +30,9 @@

 	[SerializeField]
 	private Camera mainCamera;
+
+	[SerializeField]
+	private SuperDB superDB;

 	public GameState gameState { get; private set; }

@@ -100,9 +103,5 @@
 			Debug.LogError ("No last round logged! Probably called this function before PlayBall()");
 			return;
 		}
-
-		// lets roll some dice
-		//var numSupersititions = Random.Range(1,
-		//
 	}
 }


Update ProjectEditorViewModel.cs

Update ProjectEditorViewModel.cs

--- src/Core2D/ViewModels/Editor/ProjectEditorViewModel.cs
+++ src/Core2D/ViewModels/Editor/ProjectEditorViewModel.cs
@@ -859,9 +859,14 @@
             }
         }

-        public void OnDelete(object item)
-        {
-            if (item is LayerContainerViewModel layer)
+        private void Delete(object item)
+        {
+            if (item is BaseShapeViewModel shape)
+            {
+                Project?.RemoveShape(shape);
+                OnDeselectAll();
+            }
+            else if (item is LayerContainerViewModel layer)
             {
                 Project?.RemoveLayer(layer);

@@ -871,7 +876,7 @@
                     owner.SetCurrentLayer(selected);
                 }
             }
-            if (item is PageContainerViewModel page)
+            else if (item is PageContainerViewModel page)
             {
                 Project?.RemovePage(page);

@@ -889,6 +894,23 @@
             else if (item is ProjectEditorViewModel || item is null)
             {
                 OnDeleteSelected();
+            }
+        }
+
+        public void OnDelete(object item)
+        {
+            if (item is IList<object> objects)
+            {
+                var copy = objects.ToList();
+
+                foreach (var obj in copy)
+                {
+                    Delete(obj);
+                }
+            }
+            else
+            {
+                Delete(item);
             }
         }


Set price editable

Set price editable

--- App2Night/App2Night/Page/SubPages/MyPartyDetailPage.cs
+++ App2Night/App2Night/Page/SubPages/MyPartyDetailPage.cs
@@ -340,7 +340,8 @@
             _streetEntry.Input.IsEnabled = true;
             _houseNumberEntry.Input.IsEnabled = true;
             _cityNameEntry.Input.IsEnabled = true;
-            _zipCodetEntry.Input.IsVisible = true;
+            _zipCodetEntry.Input.IsEnabled = true;
+            _priceEntry.Input.IsEnabled = true;

             await SlideInAnimtion();
         }
@@ -360,7 +361,8 @@
             _streetEntry.Input.IsEnabled = false;
             _houseNumberEntry.Input.IsEnabled = false;
             _cityNameEntry.Input.IsEnabled = false;
-            _zipCodetEntry.Input.IsVisible = false;
+            _zipCodetEntry.Input.IsEnabled = false;
+            _priceEntry.Input.IsEnabled = false;
             await SlideOutAnimtion();
         }
         /// <summary>


Client Secret Should be unnecessary

Client Secret Should be unnecessary

--- WebApp-OpenIDConnect-DotNet/App_Start/Startup.Auth.cs
+++ WebApp-OpenIDConnect-DotNet/App_Start/Startup.Auth.cs
@@ -38,6 +38,7 @@
                     Authority = String.Format(CultureInfo.InvariantCulture, aadInstance, "common", "/v2.0"),
                     RedirectUri = redirectUri,
                     Scope = "openid",
+                    ResponseType = "id_token",
                     PostLogoutRedirectUri = redirectUri,
                     TokenValidationParameters = new TokenValidationParameters
                     {
@@ -57,4 +58,4 @@
             return Task.FromResult(0);
         }
     }
-}+}


Edited src/Engine/MvcTurbine.Web/Modules/TurbineHttpModule.cs via GitHub

--- src/Engine/MvcTurbine.Web/Modules/TurbineHttpModule.cs
+++ src/Engine/MvcTurbine.Web/Modules/TurbineHttpModule.cs
@@ -1,62 +1,64 @@
 namespace MvcTurbine.Web.Modules {
-    using System.Web;
-	using ComponentModel;
-
-	/// <summary>
-	/// Module used to initialize all modules auto-registered with the engine.
-	/// </summary>
-	public class TurbineHttpModule : IHttpModule {
-		private static readonly object _lock = new object();
-		private static IHttpModuleManager moduleManager;
-
-		/// <summary>
-		/// Initializes all the registered <see cref="IHttpModule"/> instances.
-		/// </summary>
-		/// <remarks>
-		/// This code has to live here in order for the pieces to work correctly with
-		/// the ASP.NET runtime on IIS6/7.
-		/// </remarks>
-		public void Init(HttpApplication context) {
-			if (context == null) return;
-
+    using System.Web;
+	using ComponentModel;
+
+	/// <summary>
+	/// Module used to initialize all modules auto-registered with the engine.
+	/// </summary>
+	public class TurbineHttpModule : IHttpModule {
+		private static readonly object _lock = new object();
+		private static IHttpModuleManager moduleManager;
+
+		/// <summary>
+		/// Initializes all the registered <see cref="IHttpModule"/> instances.
+		/// </summary>
+		/// <remarks>
+		/// This code has to live here in order for the pieces to work correctly with
+		/// the ASP.NET runtime on IIS6/7.
+		/// </remarks>
+		public void Init(HttpApplication context) {
+			if (context == null) return;
+
 			var locator = context.ServiceLocator();
-            if (locator == null) return;
-
-            var manager = GetModuleManager(locator);
-			if (manager == null) return;
-			manager.InitializeModules(context);
-		}
-
-		/// <summary>
-		/// Disposes this and other auto-registered modules.
-		/// </summary>
-		public void Dispose() {
-			// We should already have it
+            if (locator == null) return;
+
+            var manager = GetModuleManager(locator);
+			if (manager == null) return;
+			manager.InitializeModules(context);
+		}
+
+		/// <summary>
+		/// Disposes this and other auto-registered modules.
+		/// </summary>
+		public void Dispose() {
+			// We should already have it
 			if (moduleManager == null || moduleManager.Modules == null) return;
+			if(HttpContext.Current != null)
+		        	moduleManager.DisposeModules(HttpContext.Current.ApplicationInstance);

-		    moduleManager.DisposeModules(HttpContext.Current.ApplicationInstance);
-			moduleManager = null;
-		}
-
-		/// <summary>
-		/// Gets the instance of <see cref="IHttpModuleManager"/> that is registered with the <see cref="IServiceLocator"/>.
-		/// </summary>
-		/// <returns>The registered <see cref="IHttpModuleManager"/>, otherwise a default <see cref="IHttpModuleManager"/> is used.</returns>
-		protected virtual IHttpModuleManager GetModuleManager(IServiceLocator locator){
-			if (moduleManager == null) {
-				lock (_lock) {
-					if (moduleManager == null) {
-						try {
-							moduleManager = locator.Resolve<IHttpModuleManager>();
-						}
-						catch {
-							moduleManager = new HttpModuleManager(locator);
-						}
-					}
-				}
-			}
-
-			return moduleManager;
-		}
-	}
-}
+		    moduleManager.DisposeModules(HttpContext.Current.ApplicationInstance);
+			moduleManager = null;
+		}
+
+		/// <summary>
+		/// Gets the instance of <see cref="IHttpModuleManager"/> that is registered with the <see cref="IServiceLocator"/>.
+		/// </summary>
+		/// <returns>The registered <see cref="IHttpModuleManager"/>, otherwise a default <see cref="IHttpModuleManager"/> is used.</returns>
+		protected virtual IHttpModuleManager GetModuleManager(IServiceLocator locator){
+			if (moduleManager == null) {
+				lock (_lock) {
+					if (moduleManager == null) {
+						try {
+							moduleManager = locator.Resolve<IHttpModuleManager>();
+						}
+						catch {
+							moduleManager = new HttpModuleManager(locator);
+						}
+					}
+				}
+			}
+
+			return moduleManager;
+		}
+	}
+}


retry last

retry last

--- src/FilterLists.Services/SnapshotService/SnapshotDe.cs
+++ src/FilterLists.Services/SnapshotService/SnapshotDe.cs
@@ -70,7 +70,7 @@
                 snapshot.HttpStatusCode = null;
                 return null;
             }
-            catch (ArgumentException)
+            catch (Exception)
             {
                 snapshot.HttpStatusCode = null;
                 return null;


Re-added culture-insensitive string comparison Fixed issue introduced by revert commit

--- src/Framework/Framework/Controls/HtmlGenericControl.cs
+++ src/Framework/Framework/Controls/HtmlGenericControl.cs
@@ -413,7 +413,7 @@

                 if (knockoutExpression is {})
                 {
-                    if (attributeName == "class")
+                    if (attributeName.Equals("class", StringComparison.OrdinalIgnoreCase))
                     {
                         writer.AddKnockoutDataBind("class", knockoutExpression);
                     }


Use CosmosClientBuilder

Use CosmosClientBuilder

Use CosmosClientBuilder instead of the constructor directly.

--- src/LondonTravel.Site/Services/Data/DocumentHelpers.cs
+++ src/LondonTravel.Site/Services/Data/DocumentHelpers.cs
@@ -5,6 +5,7 @@
 {
     using System;
     using Microsoft.Azure.Cosmos;
+    using Microsoft.Azure.Cosmos.Fluent;
     using Microsoft.Extensions.DependencyInjection;
     using Options;

@@ -81,19 +82,17 @@
                 throw new ArgumentException("No DocumentDB collection name is configured.", nameof(options));
             }

-            var cosmosOptions = new CosmosClientOptions()
-            {
-                ApplicationName = "london-travel",
-                RequestTimeout = TimeSpan.FromSeconds(15),
-                Serializer = serializer,
-            };
+            var builder = new CosmosClientBuilder(options.ServiceUri.AbsoluteUri, options.AccessKey)
+                .WithApplicationName("london-travel")
+                .WithCustomSerializer(serializer)
+                .WithRequestTimeout(TimeSpan.FromSeconds(15));

             if (!string.IsNullOrEmpty(options.CurrentLocation))
             {
-                cosmosOptions.ApplicationRegion = options.CurrentLocation;
+                builder = builder.WithApplicationRegion(options.CurrentLocation);
             }

-            return new CosmosClient(options.ServiceUri.AbsoluteUri, options.AccessKey, cosmosOptions);
+            return builder.Build();
         }
     }
 }


Update Administration.cs

Update Administration.cs

--- src/NadekoBot/Modules/Administration/Administration.cs
+++ src/NadekoBot/Modules/Administration/Administration.cs
@@ -635,7 +635,7 @@
         //delets her own messages, no perm required
         [NadekoCommand, Usage, Description, Aliases]
         [RequireContext(ContextType.Guild)]
-        public async Task Prune(IUserMessage umsg, int count)
+        public async Task Prune(IUserMessage umsg)
         {
             var channel = (ITextChannel)umsg.Channel;
             var user = channel.Guild.GetCurrentUser();


Fixed .prune X

Fixed .prune X

--- src/NadekoBot/Modules/Administration/Administration.cs
+++ src/NadekoBot/Modules/Administration/Administration.cs
@@ -452,7 +452,6 @@
         {
             if (count < 1)
                 return;
-            count += 1;
             await Context.Message.DeleteAsync().ConfigureAwait(false);
             int limit = (count < 100) ? count : 100;
             var enumerable = (await Context.Channel.GetMessagesAsync(limit: limit).Flatten().ConfigureAwait(false));


+Additional assembly attribute for indicating a pre-release package

--- src/NanoBuilder/NanoBuilder/Properties/AssemblyInfo.cs
+++ src/NanoBuilder/NanoBuilder/Properties/AssemblyInfo.cs
@@ -34,6 +34,7 @@
 // [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyVersion( "0.9.0.0" )]
 [assembly: AssemblyFileVersion( "0.9.0.0" )]
+[assembly: AssemblyInformationalVersion( "0.9.0-alpha" )]

 [assembly: InternalsVisibleTo( "NanoBuilder.UnitTests,PublicKey=00240000048000009400000006020000002400005253413100040000010001006378ba59d8ed5c231de361f24ecf0dfdffab87d0a7c347b6d068b6b7a20052dbbc7ae10d2049d5911e24a70242188d4d1e53f36c992c284220f3faeb8abf2a3a2487ecdcdac5bc2a1b853299fc897b4a562bcece9da2ea138cc2f09c9afe9ce95f53209ced3d847b93e6d335ccbf6e85706c1ddf3aab27cb9fbff3181d4d66e4" )]
 [assembly: InternalsVisibleTo( "DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7" )]


Update BitmapConverter_IplImage.cs

Update BitmapConverter_IplImage.cs

PixelFormat bug fix.

--- src/OpenCvSharp.Extensions/BitmapConverter_IplImage.cs
+++ src/OpenCvSharp.Extensions/BitmapConverter_IplImage.cs
@@ -46,11 +46,11 @@
             switch (src.PixelFormat)
             {
                 case PixelFormat.Format24bppRgb:
+                    channels = 3; break;
                 case PixelFormat.Format32bppRgb:
-                    channels = 3; break;
                 case PixelFormat.Format32bppArgb:
                 case PixelFormat.Format32bppPArgb:
-                    channels = 3; break;
+                    channels = 4; break;
                 case PixelFormat.Format8bppIndexed:
                 case PixelFormat.Format1bppIndexed:
                     channels = 1; break;