Added CloseEditor()

Added CloseEditor()

--- src/plug-ins/motoi.workbench/model/IPerspective.cs
+++ src/plug-ins/motoi.workbench/model/IPerspective.cs
@@ -23,23 +23,35 @@
         /// Advices the perspective to make the editor with the given <paramref name="editorId"/> visible.
         /// </summary>
         /// <param name="editorId">Id of the editor</param>
-        void OpenEditor(string editorId);
+        /// <returns>The opened editor instance or NULL</returns>
+        /// <exception cref="WorkbenchPartInitializationException">If an error during the process occurs</exception>
+        IEditor OpenEditor(string editorId);

         /// <summary>
         /// Opens an editor within the perspective that can handle the given <paramref name="editorInput"/>.
         /// </summary>
         /// <param name="editorInput">Input for the editor</param>
+        /// <returns>The opened editor instance or NULL</returns>
         /// <exception cref="WorkbenchPartInitializationException">If an error during the process occurs</exception>
-        void OpenEditor(IEditorInput editorInput);
+        IEditor OpenEditor(IEditorInput editorInput);

         /// <summary>
         /// Closes the currently opened editor. If none is open, nothing will happen. Note, there is no guarantee the editor is closed.
         /// The user may cancel the process when the editor is dirty and the user refuses the save dialog.
         /// </summary>
-        void CloseEditor();
+        /// <returns>TRUE if the editor has been closed</returns>
+        bool CloseEditor();

         /// <summary>
-        /// Shows the view with the given <paramref name="dataViewId"/> at the given <see cref="viewPosition"/>, but there is no guarantee that
+        /// Closes the editor referenced by the given instance. If none is open, nothing will happen. Note, there is no guarantee the editor is closed.
+        /// The user may cancel the process when the editor is dirty and the user refuses the save dialog.
+        /// </summary>
+        /// <param name="editor">Editor instance to close</param>
+        /// <returns>TRUE if the editor has been closed</returns>
+        bool CloseEditor(IEditor editor);
+
+        /// <summary>
+        /// Shows the view with the given <paramref name="dataViewId"/> at the given <paramref name="viewPosition"/>, but there is no guarantee that
         /// the view will be visible. For example, the <paramref name="dataViewId"/> must not be known by the framework. In that case, no instance
         /// can be created. Therefore, this method is more a hint than a reliable operation.
         /// A new instance of the data view will not be created at any time. For instance, if the view already exists, but it's not visible to the
@@ -72,8 +84,11 @@
         /// <param name="listener">Listener to unsubscribe</param>
         void RemovePerspectiveListener(IPerspectiveListener listener);

-
-        IWidgetCompound GetPane();
+        /// <summary>
+        /// Returns the panel all controls of the perspective are drawn onto.
+        /// </summary>
+        /// <returns>Panel that contains all controls of the perspective</returns>
+        IWidgetCompound GetPanel();
     }

     /// <summary>


Removed the InternalsVisibleTo attribute

Removed the InternalsVisibleTo attribute to SimpleInjector.Diagnostics,
because that library is long gone.

--- src/SimpleInjector.NET/Properties/AssemblyInfo.cs
+++ src/SimpleInjector.NET/Properties/AssemblyInfo.cs
@@ -47,13 +47,6 @@
 #if !PUBLISH
 [assembly: InternalsVisibleTo("SimpleInjector.Extensions.LifetimeScoping.Tests.Unit")]
 [assembly: InternalsVisibleTo("SimpleInjector.Tests.Unit")]
-#else
-[assembly: InternalsVisibleTo("SimpleInjector.Diagnostics, PublicKey=" +
-    "0024000004800000940000000602000000240000525341310004000001000100d9fe51dff71d3f" +
-    "dcf9bfcccf7b4f589f530449a7414aec14b3d08abdde4229eea5a42f5636c738272c44e07dad2a" +
-    "92a1186525779360997c6e0e6153d6d8b1d25c7fe9359b2d230530e7ccccd02a32269ce22e4f1a" +
-    "a313cd995f6ee682c88b24acf8e6c9f6ddc95094eaeafe39e626b3765fd9b4f2e7789c3a6ed1c4" +
-    "a66dedb9")]
 #endif

 #if PUBLISH


Fixed issue #2294. (#2361)

Fixed issue #2294. (#2361)

* Fixed issue #2294.
https://github.com/stratisproject/StratisBitcoinFullNode/issues/2294#issue-364513736

* moved the fix into ProcessDownloadQueueLocked method

--- src/Stratis.Bitcoin/Consensus/ConsensusManager.cs
+++ src/Stratis.Bitcoin/Consensus/ConsensusManager.cs
@@ -1100,7 +1100,15 @@
                     return;
                 }

+                // To fix issue https://github.com/stratisproject/StratisBitcoinFullNode/issues/2294#issue-364513736
+                // if there are no samples, assume the worst scenario (you are going to donwload full blocks).
                 long avgSize = (long)this.blockPuller.GetAverageBlockSizeBytes();
+                if (avgSize == 0)
+                {
+                    // TODO: move MaxBlockSize on a common place.
+                    avgSize = Block.MaxBlockSize;
+                }
+
                 int maxBlocksToAsk = avgSize != 0 ? (int)(freeBytes / avgSize) : DefaultNumberOfBlocksToAsk;

                 if (maxBlocksToAsk > freeSlots)


Refactored nullable inner type comparison for readability

--- src/StructureMap/Pipeline/DependencyCollection.cs
+++ src/StructureMap/Pipeline/DependencyCollection.cs
@@ -89,7 +89,7 @@
         {
             if (argumentType == null) return null;

-            var argument = _dependencies.LastOrDefault(x => x.Name == name && (x.Type == argumentType || (argumentType.IsNullable() && x.Type == argumentType.GetInnerTypeFromNullable())));
+            var argument = _dependencies.LastOrDefault(x => x.Name == name && (x.Type == argumentType || isMatchOnNullableInnerType(argumentType, x.Type)));
             if (argument == null && EnumerableInstance.IsEnumerable(argumentType))
             {
                 var elementType = EnumerableInstance.DetermineElementType(argumentType);
@@ -98,6 +98,11 @@
             }

             return argument;
+        }
+
+        private bool isMatchOnNullableInnerType(Type argumentType, Type dependencyType)
+        {
+            return argumentType.IsNullable() && dependencyType == argumentType.GetInnerTypeFromNullable();
         }

         /// <summary>


Little change #2

Little change #2

--- src/SurplusCalculator/Models/SurplusCalculator.cs
+++ src/SurplusCalculator/Models/SurplusCalculator.cs
@@ -20,10 +20,10 @@
             return calculationState.MinimumItemInfos;
         }

-        private void FindMinimum(int sourceItemLength,
-                                 IDictionary<int, int> targetItemCountsByLengths,
-                                 IList<ItemInfo> actualItemInfos,
-                                 CalculationState calculationState)
+        private static void FindMinimum(int sourceItemLength,
+                                        IDictionary<int, int> targetItemCountsByLengths,
+                                        IList<ItemInfo> actualItemInfos,
+                                        CalculationState calculationState)
         {
             if (targetItemCountsByLengths.Count == 0)
             {
@@ -32,6 +32,7 @@
                 {
                     calculationState.MinimumItemInfos = actualItemInfos;
                 }
+
                 return;
             }


Version

Version

--- Framework/UtilFramework.cs
+++ Framework/UtilFramework.cs
@@ -13,7 +13,6 @@
     using System.IO;
     using System.Linq;
     using System.Reflection;
-    using System.Threading;

     internal class UtilFramework
     {


fix / cleanup usings

fix / cleanup usings

--- tests/NLog.UnitTests/Targets/DatabaseTargetTests.cs
+++ tests/NLog.UnitTests/Targets/DatabaseTargetTests.cs
@@ -31,11 +31,6 @@
 // THE POSSIBILITY OF SUCH DAMAGE.
 //

-using System.IO;
-using NLog.Common;
-using NLog.Config;
-using Xunit.Extensions;
-
 #if !SILVERLIGHT

 namespace NLog.UnitTests.Targets
@@ -47,8 +42,12 @@
     using System.Data;
     using System.Data.Common;
     using System.Globalization;
+    using System.IO;
+    using NLog.Common;
+    using NLog.Config;
     using NLog.Targets;
     using Xunit;
+    using Xunit.Extensions;

     public class DatabaseTargetTests : NLogTestBase
     {


Applied patch for teleport finish exception, submitted by Ahzz

git-svn-id: baf6e02d125cf6f9bfcfe153b2eb83d6e1f5ace6@1147 52acb1d6-8a22-11de-b505-999d5b087335

--- libsecondlife/MainAvatar.cs
+++ libsecondlife/MainAvatar.cs
@@ -1891,11 +1891,12 @@

 	    private void EventQueueHandler(string message, Hashtable body, Caps caps)
         {
-            if (message == "TeleportFinish")
-            {
-                Hashtable info = (Hashtable)body["Info"];
-
-                // Backwards compatibility hack
+            if (message == "TeleportFinish" && body.ContainsKey("Info"))
+            {
+                ArrayList infoList = (ArrayList)body["Info"];
+                Hashtable info = (Hashtable)infoList[0];
+
+                // Backwards compatibility hack
                 TeleportFinishPacket packet = new TeleportFinishPacket();

                 packet.Info.SimIP = Helpers.BytesToUIntBig((byte[])info["SimIP"]);


log if session id is expected but absent

--- source/Core/Validation/AuthorizeRequestValidator.cs
+++ source/Core/Validation/AuthorizeRequestValidator.cs
@@ -472,6 +472,10 @@
                 {
                     request.SessionId = sessionId;
                 }
+                else
+                {
+                    LogError("Check session endpoint enabled, but SessionId is missing", request);
+                }
             }

             return Valid(request);


Prevent TCP sequencing fix

Prevent TCP sequencing fix

--- source/Cosmos.System2/Network/IPv4/TCP/TCPClient.cs
+++ source/Cosmos.System2/Network/IPv4/TCP/TCPClient.cs
@@ -29,7 +29,8 @@
         CLOSING,
         LAST_ACK,
         TIME_WAIT,
-        CLOSED
+        CLOSED,
+        WAITING_ACK
     }

     /// <summary>
@@ -238,6 +239,8 @@
             OutgoingBuffer.AddPacket(packet);
             NetworkStack.Update();

+            Status = Status.WAITING_ACK;
+
             SequenceNumber += (uint)data.Length;
         }

@@ -360,17 +363,24 @@
                     throw new Exception("Received packet not supported. Is this an error? (Flag=" + packet.TCPFlags + ", Status=SYN_SENT)");
                 }
             }
-            else if (Status == Status.ESTABLISHED)
+            else if (Status == Status.ESTABLISHED || Status == Status.WAITING_ACK)
             {
                 if (packet.RST)
                 {
                     Status = Status.CLOSED;
                 }
-                else if (packet.TCPFlags == (byte)Flags.ACK && packet.SequenceNumber > LastSequenceNumber) //only ACK
-                {
-                    throw new NotImplementedException("TCP sequencing is not supported yet! (received packet size is too huge)");
-                }
-                else if (packet.FIN && packet.ACK)
+                if (packet.TCPFlags == (byte)Flags.ACK)
+                {
+                    if (Status == Status.WAITING_ACK)
+                    {
+                        Status = Status.ESTABLISHED;
+                    }
+                    else
+                    {
+                        throw new NotImplementedException("TCP sequencing is not supported yet! (sent packet size is too huge)");
+                    }
+                }
+                if (packet.FIN && packet.ACK)
                 {
                     AckNumber++;


Removed .Clone() for hardcoded, prolly faster implementation

--- source/Cosmos/Cosmos.Hardware/Network/MACAddress.cs
+++ source/Cosmos/Cosmos.Hardware/Network/MACAddress.cs
@@ -10,7 +10,15 @@

         public MACAddress(byte[] address)
         {
-            bytes = (byte[])address.Clone();
+            if (address == null || address.Length == 6)
+                throw new ArgumentException("address is null or wrong length", "address");
+
+            bytes[0] = address[0];
+            bytes[1] = address[1];
+            bytes[2] = address[2];
+            bytes[3] = address[3];
+            bytes[4] = address[4];
+            bytes[5] = address[5];
         }

         public MACAddress(MACAddress m) : this(m.bytes)


Add VsPackage (WIP)

Add VsPackage (WIP)

--- Persimmon.VisualStudio.TestExplorer/TestAdapterPackage.cs
+++ Persimmon.VisualStudio.TestExplorer/TestAdapterPackage.cs
@@ -4,6 +4,8 @@
 using System.Reflection;
 using System.Runtime.InteropServices;

+using System.GACManagedAccess;
+using System.IO;
 using Microsoft.VisualStudio;
 using Microsoft.VisualStudio.Shell;

@@ -29,6 +31,10 @@
     public sealed class TestAdapterPackage : Package
     {
         private static readonly byte[] msPublicKeyToken_ = { 0xb0, 0x3f, 0x5f, 0x7f, 0x11, 0xd5, 0x0a, 0x3a };
+        private static readonly CultureInfo neutralCulture_ = CultureInfo.InvariantCulture.Parent;
+
+        private static readonly string testRunnerUniqueId_ = "Persimmon.VisualStudio.TestRunner";
+        private static readonly string testRunnerDescription_ = "Persimmon.VisualStudio.TestRunner assembly";

         /// <summary>
         /// Default constructor of the package.
@@ -43,12 +49,14 @@
         {
             Trace.WriteLine("TestAdapterPackage: constructed.");
         }
+
+        #region LoadExtensionManager
         private Assembly LoadExtensionManager()
         {
             var envDteName = new AssemblyName("EnvDTE")
             {
                 Version = new Version(8, 0, 0, 0),
-                CultureInfo = CultureInfo.InvariantCulture.Parent
+                CultureInfo = neutralCulture_
             };
             envDteName.SetPublicKeyToken(msPublicKeyToken_);
             var envDteAssembly = Assembly.Load(envDteName);
@@ -59,14 +67,16 @@
             var extensionManagerName = new AssemblyName("Microsoft.VisualStudio.ExtensionManager")
             {
                 Version = new Version((int)dteMajorVersion, 0, 0, 0),
-                CultureInfo = CultureInfo.InvariantCulture.Parent
+                CultureInfo = neutralCulture_
             };
             extensionManagerName.SetPublicKeyToken(msPublicKeyToken_);

             return Assembly.Load(extensionManagerName);
         }
+        #endregion

-        private string GetInstallPath()
+        #region GetInstalledPath
+        private string GetInstalledPath()
         {
             var extensionManagerAssembly = this.LoadExtensionManager();
             var extensionManagerType = extensionManagerAssembly.GetType(
@@ -84,6 +94,7 @@

             return installPath;
         }
+        #endregion

         /// <summary>
         /// Initialization of the package; this method is called right after the package is sited, so this is the place
@@ -95,9 +106,20 @@

             base.Initialize();

-            var installPath = this.GetInstallPath();
+            var installedPath = this.GetInstalledPath();
+            Trace.WriteLine(string.Format("TestAdapterPackage: InstalledPath=\"{0}\"", installedPath));

-            // TODO:reg gac
+            var testRunnerPath = Path.Combine(installedPath, "Persimmon.VisualStudio.TestRunner.dll");
+
+            var testRunnerReference = new InstallReference(
+                InstallReferenceGuid.OpaqueGuid,
+                testRunnerUniqueId_,
+                testRunnerDescription_);
+
+            AssemblyCache.InstallAssembly(
+                testRunnerPath,
+                testRunnerReference,
+                AssemblyCommitFlags.Force);

             Trace.WriteLine("TestAdapterPackage: Initialize(): exit.");
         }


HETS-140 alternate date handling

HETS-140 alternate date handling

--- Server/src/SchoolBusAPI/Services.Impl/SchoolBusService.cs
+++ Server/src/SchoolBusAPI/Services.Impl/SchoolBusService.cs
@@ -419,8 +419,9 @@
                 if (schoolBus.PermitIssueDate != null)
                 {
                     // Since the PDF template is raw HTML and won't convert a date object, we must adjust the time zone here.
-                    DateTimeOffset dto = new DateTimeOffset ((DateTime)schoolBus.PermitIssueDate,
-                        TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time").GetUtcOffset((DateTime)schoolBus.PermitIssueDate));
+
+                    TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
+                    DateTime dto = TimeZoneInfo.ConvertTime ((DateTime)schoolBus.PermitIssueDate, tzi);
                     permitViewModel.PermitIssueDate = dto.ToString("yyyy-MM-dd");
                 }

@@ -438,8 +439,6 @@
                 {
                     permitViewModel.SchoolDistrictshortName = schoolBus.SchoolDistrict.ShortName;
                 }
-
-                return new ObjectResult(permitViewModel);
                 string payload = JsonConvert.SerializeObject(permitViewModel);

                 // pass the request on to the PDF Micro Service


Update MessageRouteOptions.cs

Update MessageRouteOptions.cs

--- Shuttle.Esb/Configuration/Settings/MessageRouteOptions.cs
+++ Shuttle.Esb/Configuration/Settings/MessageRouteOptions.cs
@@ -8,9 +8,9 @@
     {
         public string Uri { get; set; }

-        public List<SpecificationSettings> Specifications { get; set; } = new List<SpecificationSettings>();
+        public List<SpecificationOptions> Specifications { get; set; } = new List<SpecificationOptions>();

-        public class SpecificationSettings
+        public class SpecificationOptions
         {
             public string Name { get; set; }
             public string Value { get; set; }


fix AuthTokensServer

fix AuthTokensServer

--- Signum.React.Extensions/Authorization/AuthTokensServer.cs
+++ Signum.React.Extensions/Authorization/AuthTokensServer.cs
@@ -67,7 +67,7 @@
             {
                 ctx.Response = ctx.Request.CreateResponse<HttpError>(HttpStatusCode.UpgradeRequired,
                     new HttpError(new NewTokenRequiredException("Please upgrade the token to continue using the service"), includeErrorDetail: true)); //Avoid annoying exception
-                return null;
+                return new Disposable(() => { });
             }

             return UserHolder.UserSession(token.User);


clean RemoveCookie

clean RemoveCookie

--- Signum.React.Extensions/Authorization/UserTicketServer.cs
+++ Signum.React.Extensions/Authorization/UserTicketServer.cs
@@ -53,18 +53,11 @@

         public static void RemoveCookie(ActionContext ac)
         {
-            //ac.HttpContext.Response.Cookies.Delete(CookieName);
-
-            //foreach (var cookie in ac.HttpContext.Request.Cookies)
-            //{
-            //    ac.HttpContext.Response.Cookies.Delete(CookieName);
-            //}
-
             ac.HttpContext.Response.Cookies.Append(CookieName, "", new CookieOptions()
             {
+                Path = new UrlHelper(ac).Content("~/"),
                 Expires = DateTime.Now.AddDays(-1)
             });
-
         }

         public static void SaveCookie(ActionContext ac)


Fixed an issue with viewing stacks as an administrator

--- Source/Api/Controllers/Base/ExceptionlessApiController.cs
+++ Source/Api/Controllers/Base/ExceptionlessApiController.cs
@@ -140,7 +140,7 @@
         }

         public string BuildSystemFilter(ICollection<Organization> organizations, string filter, bool usesPremiumFeatures, string retentionDateFieldName = "date") {
-            if (HasOrganizationOrProjectFilter(filter) && Request.IsGlobalAdmin())
+            if (HasOrganizationOrProjectOrStackFilter(filter) && Request.IsGlobalAdmin())
                 return null;

             var allowedOrganizations = organizations.Where(o => !o.IsSuspended && (o.HasPremiumFeatures || (!o.HasPremiumFeatures && !usesPremiumFeatures))).ToList();
@@ -150,11 +150,11 @@
             return allowedOrganizations.BuildRetentionFilter(retentionDateFieldName);
         }

-        private bool HasOrganizationOrProjectFilter(string filter) {
+        private bool HasOrganizationOrProjectOrStackFilter(string filter) {
             if (String.IsNullOrEmpty(filter))
                 return false;

-            return filter.Contains("organization:") || filter.Contains("project:");
+            return filter.Contains("organization:") || filter.Contains("project:") || filter.Contains("stack:");
         }

         protected StatusCodeActionResult StatusCodeWithMessage(HttpStatusCode statusCode, string message, string reason = null) {


Mac: Drawable.BackgroundColor should repaint

--- Source/Eto.Platform.Mac/Forms/Controls/DrawableHandler.cs
+++ Source/Eto.Platform.Mac/Forms/Controls/DrawableHandler.cs
@@ -59,11 +59,14 @@
 			get { return backgroundColor; }
 			set
 			{
+				if (backgroundColor != value) {
 				backgroundColor = value;
 				if (backgroundColor.A > 0)
 					backgroundBrush = new SolidBrush (backgroundColor, Widget.Generator);
 				else
 					backgroundBrush = null;
+					this.Invalidate ();
+				}
 			}
 		}


Remove not needed using in OctreeHelper

Remove not needed using in OctreeHelper

--- Source/HelixToolkit.Wpf.SharpDX/Utilities/OctreeHelper.cs
+++ Source/HelixToolkit.Wpf.SharpDX/Utilities/OctreeHelper.cs
@@ -4,11 +4,8 @@
 // </copyright>
 // --------------------------------------------------------------------------------------------------------------------

-using HelixToolkit.Wpf.SharpDX;
 using SharpDX;
-using System;
 using System.Collections.Generic;
-using System.Text;

 namespace HelixToolkit.Wpf.SharpDX
 {


Added ReferenceTests for exporting cmdlets

--- Source/ReferenceTests/Commands/ExportModuleMemberTests.cs
+++ Source/ReferenceTests/Commands/ExportModuleMemberTests.cs
@@ -1,11 +1,12 @@
 using System;
 using NUnit.Framework;
 using System.Management.Automation;
+using TestPSSnapIn;

 namespace ReferenceTests.Commands
 {
     [TestFixture]
-    public class ExportModuleMemberTests : ReferenceTestBase
+    public class ExportModuleMemberTests : ModuleCommandTestBase
     {
         private string _testModule = NewlineJoin(
             "function foo { 'foo' };",
@@ -173,7 +174,22 @@
             });
         }

-        // TODO: test a module with cmdlets to export
+        [Test]
+        public void ExportModuleMemberWorksWithCmdlets()
+        {
+            // BinaryTestModule includes some test cmdlets, as Test-Command, Test-Dummy, Test-NoParameters
+            var moduleManifest = CreateFile(CreateManifest(BinaryTestModule, "me", "FooComp", "1.0", null, null,
+                "@('Test-Command', 'Test-*Parameters')"), "psd1");
+            var cmd = NewlineJoin(
+                "Import-Module '" + moduleManifest + "';",
+                "Test-Command",
+                "Test-NoParameters"
+            );
+            ExecuteAndCompareTypedResult(cmd, "works", "works");
+            Assert.Throws<CommandNotFoundException>(delegate {
+                ReferenceHost.RawExecuteInLastRunspace("Test-Dummy");
+            });
+        }
     }
 }


Skip RunsWithIterationEnvVariable (#7814)

--- src/Tools/dotnet-watch/test/DotNetWatcherTests.cs
+++ src/Tools/dotnet-watch/test/DotNetWatcherTests.cs
@@ -34,7 +34,7 @@
             Assert.Equal("1", envValue);
         }

-        [Fact]
+        [Fact(Skip = "https://github.com/aspnet/AspNetCore-Internal/issues/1826")]
         public async Task RunsWithIterationEnvVariable()
         {
             await _app.StartWatcherAsync();


Updates login controller to not accept non local urls

--- src/Umbraco.Web/Controllers/UmbLoginController.cs
+++ src/Umbraco.Web/Controllers/UmbLoginController.cs
@@ -11,11 +11,11 @@
     public class UmbLoginController : SurfaceController
     {
         [HttpPost]
-        public ActionResult HandleLogin([Bind(Prefix="loginModel")]LoginModel model)
+        public ActionResult HandleLogin([Bind(Prefix = "loginModel")]LoginModel model)
         {
             if (ModelState.IsValid == false)
             {
-                return CurrentUmbracoPage();
+                return CurrentUmbracoPage();
             }

             if (Members.Login(model.Username, model.Password) == false)
@@ -30,11 +30,20 @@
             //if there is a specified path to redirect to then use it
             if (model.RedirectUrl.IsNullOrWhiteSpace() == false)
             {
-                return Redirect(model.RedirectUrl);
+                // validate the redirect url
+                if (Url.IsLocalUrl(model.RedirectUrl))
+                {
+                    return Redirect(model.RedirectUrl);
+                }
+                else
+                {
+                    // if it's not a local url we'll redirect to the root of the current site
+                    return Redirect(base.CurrentPage.Site().Url);
+                }
             }

             //redirect to current page by default
-
+
             return RedirectToCurrentUmbracoPage();
             //return RedirectToCurrentUmbracoUrl();
         }


U4-7542

U4-7542

Moved member type tree to settings

--- src/Umbraco.Web/Trees/MemberTypeTreeController.cs
+++ src/Umbraco.Web/Trees/MemberTypeTreeController.cs
@@ -8,7 +8,7 @@
 namespace Umbraco.Web.Trees
 {
     [UmbracoTreeAuthorize(Constants.Trees.MemberTypes)]
-    [Tree(Constants.Applications.Members, Constants.Trees.MemberTypes, null, sortOrder: 1)]
+    [Tree(Constants.Applications.Settings, Constants.Trees.MemberTypes, null, sortOrder: 1)]
     public class MemberTypeTreeController : MemberTypeAndGroupTreeControllerBase
     {
         protected override IEnumerable<TreeNode> GetTreeNodesFromService(string id, FormDataCollection queryStrings)


add missing tests

add missing tests

--- src/UriBuilder.Fluent.UnitTests/ExtensionTests.cs
+++ src/UriBuilder.Fluent.UnitTests/ExtensionTests.cs
@@ -98,6 +98,15 @@
         }

         [Fact]
+        public void AddParamWithNoValue()
+        {
+            var url = new UriBuilder("http://awesome.com")
+                    .WithParameter("awesome", "yodawg")
+                    .WithParameter("fun", null);
+            Assert.Equal("http://awesome.com/?awesome=yodawg&fun", url.Uri.ToString());
+        }
+
+        [Fact]
         public void TestAddTwoUrlParameters()
         {
             var url = new UriBuilder("http://awesome.com")


--- Src/Kit.UWP/Services/UnhandledExceptionTelemetryModule.cs
+++ Src/Kit.UWP/Services/UnhandledExceptionTelemetryModule.cs
@@ -100,6 +100,25 @@
                 {
                     CoreEventSource.Log.LogError("An exception occured in TelemetryConfiguration.Active.DescriptionLoader callback : " + ex);
                 }
+            }
+
+            // Flatten the AggregateException and wrap it if we only have a single inner exception
+            var aggregateException = exception as AggregateException;
+            if (aggregateException != null)
+            {
+                aggregateException = aggregateException.Flatten();
+                if (aggregateException.InnerException != null)
+                {
+                    exception = aggregateException.InnerException;
+                }
+                else if (aggregateException.InnerExceptions.Count == 1)
+                {
+                    exception = aggregateException.InnerExceptions[0];
+                }
+                else
+                {
+                    exception = aggregateException;
+                }
             }

             CrashTelemetryThread thread = new CrashTelemetryThread { Id = Environment.CurrentManagedThreadId };


Revert "Update StackExchange.Profiling/MVCHelpers/ProfilingViewEngine.cs"

This reverts commit f548ff1924dc9fa62b2176c904ee931feec9e463.

--- StackExchange.Profiling/MVCHelpers/ProfilingViewEngine.cs
+++ StackExchange.Profiling/MVCHelpers/ProfilingViewEngine.cs
@@ -9,51 +9,6 @@

 namespace StackExchange.Profiling.MVCHelpers
 {
-    /// <summary>
-    /// Wrapped MVC View that ProfilingViewEngine uses to log profiling data
-    /// </summary>
-    public class WrappedView : IView
-    {
-        /// <summary>
-        /// MVC IView that is wrapped by the ProfilingViewEngine
-        /// </summary>
-        public IView wrapped;
-        /// <summary>
-        /// ViewName of wrapped View
-        /// </summary>
-        public string name;
-        /// <summary>
-        /// Flag as to whether wrapped is a PartialView
-        /// </summary>
-        public bool isPartial;
-
-        /// <summary>
-        /// Ctor
-        /// </summary>
-        /// <param name="wrapped">IView to wrap</param>
-        /// <param name="name">Name/Path to view</param>
-        /// <param name="isPartial">Whether view is Partial</param>
-        public WrappedView(IView wrapped, string name, bool isPartial)
-        {
-            this.wrapped = wrapped;
-            this.name = name;
-            this.isPartial = isPartial;
-        }
-
-        /// <summary>
-        /// Renders the WrappedView and logs profiling data
-        /// </summary>
-        /// <param name="viewContext"></param>
-        /// <param name="writer"></param>
-        public void Render(ViewContext viewContext, System.IO.TextWriter writer)
-        {
-            using (MiniProfiler.Current.Step("Render " + (isPartial ? "partial" : "") + ": " + name))
-            {
-                wrapped.Render(viewContext, writer);
-            }
-        }
-    }
-
     /// <summary>
     /// You can wrap your view engines with this view to enable profiling on views and partial
     /// </summary>


Ensure deleted method will wait until a directory really deleted

--- subtree/quarks/src/Quarks/IO/Folder.cs
+++ subtree/quarks/src/Quarks/IO/Folder.cs
@@ -1,6 +1,7 @@
 using System;
 using System.IO;
 using System.Linq;
+using System.Threading;

 namespace Codestellation.Quarks.IO
 {
@@ -25,13 +26,25 @@
             return new DirectoryInfo(fullPath);
         }

-        public static void EnsureDeleted(string folder)
+        public static void EnsureDeleted(string folder, int maxRetries = 100)
         {
             var fullPath = ToFullPath(folder);
             if (Directory.Exists(fullPath))
             {
                 Directory.Delete(fullPath, true);
             }
+
+            var totalRetries = Math.Max(maxRetries, 10000);
+            for (int retries = 0; retries < totalRetries; retries++)
+            {
+                if (!Directory.Exists(fullPath))
+                {
+                    return;
+                }
+                Thread.Sleep(10);
+            }
+            var message = string.Format("Could not delete folder {0}", fullPath);
+            throw new IOException(message);
         }

         public static FileInfo[] EnumerateFiles(string folder)


[+] Adicionado metodos de extensão par XDocument.

--- src/ACBr.Net.Core/Extensions/XDocumentExtensions.cs
+++ src/ACBr.Net.Core/Extensions/XDocumentExtensions.cs
@@ -30,7 +30,9 @@
 // ***********************************************************************

 using System;
+using System.Collections.Generic;
 using System.IO;
+using System.Linq;
 using System.Text;
 using System.Xml;
 using System.Xml.Linq;
@@ -79,5 +81,41 @@

 			return ret;
 		}
+
+		public static void RemoveEmptyNamespace(this XDocument doc)
+		{
+			if (doc.Root == null) return;
+
+			foreach (var node in doc.Root.Descendants())
+			{
+				if (node.Name.NamespaceName != "")
+					continue;
+
+				node.Attributes("xmlns").Remove();
+				if (node.Parent != null)
+					node.Name = node.Parent.Name.Namespace + node.Name.LocalName;
+			}
+		}
+
+		public static void AddChild(this XElement parent, params XElement[] childrens)
+		{
+			if (childrens == null || parent == null) return;
+			if (childrens.Length < 1) return;
+
+			parent.Add(childrens);
+		}
+
+		public static void AddAttribute(this XElement parent, params XAttribute[] attributes)
+		{
+			if (attributes == null || parent == null) return;
+			if (attributes.Length < 1) return;
+
+			parent.Add(attributes);
+		}
+
+		public static IEnumerable<XElement> ElementsAnyNs(this XElement source, string name)
+		{
+			return source.Elements().Where(e => e.Name.LocalName == name);
+		}
 	}
 }


Resolved #22

Resolved #22

--- src/Abp/Framework/Abp/Domain/Uow/UnitOfWorkScope.cs
+++ src/Abp/Framework/Abp/Domain/Uow/UnitOfWorkScope.cs
@@ -28,8 +28,19 @@
         [ThreadStatic]
         private static IUnitOfWork _currentUow;

+        /// <summary>
+        /// Unit of work object wrapper.
+        /// </summary>
         private readonly IDisposableDependencyObjectWrapper<IUnitOfWork> _unitOfWorkWrapper;

+        /// <summary>
+        /// Is current unit of work started by this scope?
+        /// </summary>
+        private readonly bool _isStartedByThisScope;
+
+        /// <summary>
+        /// Is unit of work commited?
+        /// </summary>
         private bool _isCommited;

         /// <summary>
@@ -46,36 +57,58 @@
         /// </summary>
         public UnitOfWorkScope(bool isTransactional)
         {
+            //There is already a uow, do nothing
+            if (Current != null)
+            {
+                return;
+            }
+
+            //this scope started the uow
+            _isStartedByThisScope = true;
+
             _unitOfWorkWrapper = IocHelper.ResolveAsDisposable<IUnitOfWork>();
             Current = _unitOfWorkWrapper.Object;
-            Current.Initialize(isTransactional);

             try
             {
+                Current.Initialize(isTransactional);
                 Current.Begin();
             }
             catch
             {
                 Current = null;
+                _unitOfWorkWrapper.Dispose();
+                throw;
             }
         }

         /// <summary>
         /// Commits the unit of work.
-        /// If not commited, it's rolled back on <see cref="Dispose"/>.
+        /// If not commited, it's automatically rolled back on <see cref="Dispose"/>.
         /// </summary>
         public void Commit()
         {
-            _unitOfWorkWrapper.Object.End();
+            if (!_isStartedByThisScope)
+            {
+                //if this scope did not started the uow, do nothing
+                return;
+            }
+
+            Current.End();
             _isCommited = true;
         }

         public void Dispose()
         {
+            if (!_isStartedByThisScope)
+            {
+                //if this scope did not started the uow, do nothing
+                return;
+            }
+
             if (!_isCommited)
             {
-                try { _unitOfWorkWrapper.Object.Cancel(); }
-                catch { }
+                try { Current.Cancel(); } catch { } //Hide errors
             }

             Current = null;


Restored null assignment support for roles and users

--- src/Breeze.BusinessTime/Authorization/Authorizer.cs
+++ src/Breeze.BusinessTime/Authorization/Authorizer.cs
@@ -13,13 +13,13 @@
         public string Users
         {
             get { return _users; }
-            set { _users = value.Replace(" ", string.Empty); }
+            set { _users = (value == null) ? null : value.Replace(" ", string.Empty); }
         }

         public string Roles
         {
             get { return _roles; }
-            set { _roles = value.Replace(" ", string.Empty); }
+            set { _roles = (value == null) ? null : value.Replace(" ", string.Empty); }
         }

         /// <summary>


Fix /Puzzle/Train without model

Fix /Puzzle/Train without model

--- src/ChessVariantsTraining/Views/Puzzle/Train.cshtml
+++ src/ChessVariantsTraining/Views/Puzzle/Train.cshtml
@@ -15,7 +15,7 @@
 @{ User loggedInUser = loginHandler.LoggedInUser(Context);
     bool loggedIn = loggedInUser != null;
     bool isReviewer = loggedIn && UserRole.HasAtLeastThePrivilegesOf(loggedInUser.Roles, UserRole.PUZZLE_REVIEWER);
-    bool isAuthor = loggedIn && Model.Author == loggedInUser.ID;
+    bool isAuthor = loggedIn && Model != null && Model.Author == loggedInUser.ID;
     bool isReviewerOrAuthor = isReviewer || isAuthor;
 }
 @if (Model != null && Model.InReview && !isReviewerOrAuthor)


* Make QPair a class rather than a struct to avoid boxing/unboxing when
  using it in dictionaries

svn path=/trunk/playground/bindings/kimono/; revision=650858

--- qyoto/core/QPair.cs
+++ qyoto/core/QPair.cs
@@ -1,5 +1,5 @@
 namespace Qyoto {
-	public struct QPair<T1, T2> {
+	public class QPair<T1, T2> {
 		public QPair(T1 t1, T2 t2) {
 			first = t1;
 			second = t2;


Should have gone with catacombs checkin a few back.

--- code/HyperbolicModels/Recurse.cs
+++ code/HyperbolicModels/Recurse.cs
@@ -250,103 +250,9 @@
 			ReflectCellsRecursive( simplex, newCells.ToArray(), settings, completedCells, completedCellIds );
 		}

-/////////////////////////////////////////////////////////
-// Hacking around.  I should remove this or make CalcCells() configurable enough to deal with more cases.
-		public static H3.Cell[] CalcCells2( Sphere[] mirrors, H3.Cell[] cells )
-		{
-			Settings settings = new Settings();
-			return CalcCells2( mirrors, cells, settings );
-		}
-
-		public static H3.Cell[] CalcCells2( Sphere[] mirrors, H3.Cell[] cells, Settings settings )
-		{
-			HashSet<Vector3D> completedCellIds = new HashSet<Vector3D>( cells.Select( c => c.ID ).ToArray() );
-			List<H3.Cell> completedCells = new List<H3.Cell>( cells );
-			ReflectCellsRecursive2( mirrors, cells, settings, completedCells, completedCellIds );
-			return completedCells.ToArray();
-		}
-
-		private static void ReflectCellsRecursive2( Sphere[] simplex, H3.Cell[] cells, Settings settings,
-			List<H3.Cell> completedCells, HashSet<Vector3D> completedCellIds )
-		{
-			if( 0 == cells.Length )
-				return;
-
-			List<H3.Cell> newCells = new List<H3.Cell>();
-
-			foreach( H3.Cell cell in cells )
-			//foreach( Sphere mirror in simplex )
-			for( int m = 0; m < simplex.Length; m++ )
-			{
-				Sphere mirror = simplex[m];
-				if( completedCellIds.Count > 250000 )
-					return;
-
-				H3.Cell newCell = cell.Clone();
-				newCell.Reflect( mirror );
-				//if( !CellOk( newCell, settings ) )
-				bool cellOk = true;
-				foreach( H3.Cell.Facet f in cell.Facets )
-					if( f.Sphere.Radius < 0.002 )
-						cellOk = false;
-				if( !cellOk )
-					continue;
-
-				// This tracks reflections across the cell facets.
-				newCell.Depths[m]++;
-
-				if( completedCellIds.Add( newCell.ID ) )
-				{
-					// Haven't seen this cell yet, so
-					// we'll need to recurse on it.
-					newCells.Add( newCell );
-					completedCells.Add( newCell );
-				}
-			}
-
-			ReflectCellsRecursive2( simplex, newCells.ToArray(), settings, completedCells, completedCellIds );
-		}
-/////////////////////////////////////////////////////////
-
 		private static double DefaultThresh()
 		{
-			//double thresh = 0.995;	// 435,353
-			//double thresh = 0.994;	// 534
-			//double thresh = 0.996;	// 336
-			//double thresh = 0.997;	// 535, 344
-			//double thresh = 0.9975;	// 436
-			//double thresh = 0.9985;	// 536
-			//double thresh = 0.993;	// 633
-			//double thresh = 0.995;	// 443
-			//double thresh = 0.9977;	// 635
-			//double thresh = 0.9965;	// 634
-			//double thresh = 0.9977;	// 444
-			//double thresh = 0.9982;	// 636
-			//double thresh = 0.9973;	// 363
-
-			//double thresh = 0.999;	// 555
-			//double thresh = 0.9982;	// 637, 445
-			//thresh = 0.9988;	// 637 scale 2
-
-			//double thresh = 0.995;	// 4333
-			//double thresh = 0.997;	// 5333
-			//double thresh = 0.998;	// 4343
-			//double thresh = 0.998;	// 4343
-			//double thresh = 0.999;	// 4353, 5353
-
-			//double thresh = 0.991;	// 534 uniform family .991-4 range
-			//double thresh = 0.996;	// 535 uniform family
-			//double thresh = 0.994;	// 353 uniform family
-
-			double thresh = 0.997; // Wendy's [77]
-			//double thresh = 0.99;	// low res
-
-			//thresh = 0.9992;	// catacombs
-
-			//thresh = 0.97;
-			//thresh = 0.6;
-			thresh = 0.03;
-			return thresh;
+			return 0.03;
 		}

 		private static bool EdgeOk( Edge edge, Settings s )


Remove unnecessary "using" statement from old-C#-n00b-joe

--- compiler/ParsedHierarchy/List.cs
+++ compiler/ParsedHierarchy/List.cs
@@ -2,13 +2,11 @@

 namespace Ink.Parsed
 {
-    using StrIdentifier = System.Collections.Generic.List<Identifier>;
-
     public class List : Parsed.Expression
     {
-        public StrIdentifier itemIdentifierList;
+        public List<Identifier> itemIdentifierList;

-        public List (StrIdentifier itemIdentifierList)
+        public List (List<Identifier> itemIdentifierList)
         {
             this.itemIdentifierList = itemIdentifierList;
         }


Fix failing test

Fix failing test

--- test/DelimitedDataParser.Test/ParserTest.Reader.cs
+++ test/DelimitedDataParser.Test/ParserTest.Reader.cs
@@ -1104,7 +1104,7 @@
         [Theory]
         [InlineData("2016-05-31")]
         [InlineData("2016/05/31")]
-        [InlineData("May 31, 2016")]
+        [InlineData("May 31 2016")]
         [InlineData("31 May 2016")]
         public void ParseReader_GetDateTime_Can_Get(string input)
         {


Dispose everything in CoinViewModel

Dispose everything in CoinViewModel

--- WalletWasabi.Gui/Controls/WalletExplorer/CoinViewModel.cs
+++ WalletWasabi.Gui/Controls/WalletExplorer/CoinViewModel.cs
@@ -17,13 +17,15 @@
 {
 	public class CoinViewModel : ViewModelBase, IDisposable
 	{
+		private CompositeDisposable Disposables { get; }
+
 		private bool _isSelected;
 		private SmartCoinStatus _smartCoinStatus;
-		private CompositeDisposable Disposables { get; }

 		public CoinViewModel(SmartCoin model)
 		{
 			Disposables = new CompositeDisposable();
+
 			Model = model;

 			model.WhenAnyValue(x => x.Confirmed).ObserveOn(RxApp.MainThreadScheduler).Subscribe(confirmed =>
@@ -61,7 +63,7 @@
 			model.WhenAnyValue(x => x.History).ObserveOn(RxApp.MainThreadScheduler).Subscribe(_ =>
 			{
 				this.RaisePropertyChanged(nameof(History));
-			});
+			}).DisposeWith(Disposables);

 			this.WhenAnyValue(x => x.Status).Subscribe(_ =>
 			{
@@ -236,11 +238,12 @@
 			{
 				if (disposing)
 				{
-					Disposables?.Dispose();
 					if (Global.ChaumianClient != null)
 					{
 						Global.ChaumianClient.StateUpdated -= ChaumianClient_StateUpdated;
 					}
+
+					Disposables?.Dispose();
 				}

 				_disposedValue = true;


[skip ci] improve tooltip

[skip ci] improve tooltip

--- WalletWasabi.Gui/Controls/WalletExplorer/CoinViewModel.cs
+++ WalletWasabi.Gui/Controls/WalletExplorer/CoinViewModel.cs
@@ -105,7 +105,7 @@
 					case SmartCoinStatus.MixingOutputRegistration: return "This coin is currently in Output Registration phase.";
 					case SmartCoinStatus.MixingSigning: return "This coin is currently in Signing phase.";
 					case SmartCoinStatus.SpentAccordingToBackend: return "According to the Backend, this coin is spent. Wallet state will be corrected after confirmation.";
-					case SmartCoinStatus.MixingWaitingForConfirmation: return "Coinjoining unconfirmed coins is not allowed.";
+					case SmartCoinStatus.MixingWaitingForConfirmation: return "Coinjoining unconfirmed coins is not allowed, unless the coin is a coinjoin output itself.";
 					default: return "This is impossible.";
 				}
 			}


Simplify the test by changing the order.

--- WalletWasabi.Tests/HwiTests/DeviceConnectedTests/Katas.cs
+++ WalletWasabi.Tests/HwiTests/DeviceConnectedTests/Katas.cs
@@ -174,7 +174,6 @@
 			//
 			// Connect an already initialized device and unlock it.
 			// Run this test.
-			// Coldcard screen => "Receiving...": refuse
 			// signtx request: refuse
 			// signtx request: confirm
 			//
@@ -217,6 +216,21 @@
 				Assert.NotNull(xpub2);
 				Assert.NotEqual(xpub1, xpub2);

+				PSBT psbt = BuildPsbt(network, fingerprint, xpub1, keyPath1);
+
+				// USER: REFUSE
+				var ex = await Assert.ThrowsAsync<HwiException>(async () => await client.SignTxAsync(deviceType, devicePath, psbt, cts.Token));
+				Assert.Equal(HwiErrorCode.ActionCanceled, ex.ErrorCode);
+
+				// USER: CONFIRM
+				PSBT signedPsbt = await client.SignTxAsync(deviceType, devicePath, psbt, cts.Token);
+
+				Transaction signeTx = signedPsbt.GetOriginalTransaction();
+				Assert.Equal(psbt.GetOriginalTransaction().GetHash(), signeTx.GetHash());
+
+				var checkResult = signeTx.Check();
+				Assert.Equal(TransactionCheckResult.Success, checkResult);
+
 				// ColdCard just display the address. There is no confirm/refuse action.

 				BitcoinWitPubKeyAddress address1 = await client.DisplayAddressAsync(deviceType, devicePath, keyPath1, cts.Token);
@@ -228,30 +242,6 @@
 				var expectedAddress2 = xpub2.PubKey.GetAddress(ScriptPubKeyType.Segwit, network);
 				Assert.Equal(expectedAddress1, address1);
 				Assert.Equal(expectedAddress2, address2);
-
-				// If Coldcard is displaying the address it will say it is in another operation.
-				// When the PSBT sent ColdCard will display Receiving and stuck there.
-				// So here the user should press X to get back to the main menu.
-
-				// USER: REFUSE
-				PSBT psbt = BuildPsbt(network, fingerprint, xpub1, keyPath1);
-				var ex = await Assert.ThrowsAsync<HwiException>(async () => await client.SignTxAsync(deviceType, devicePath, psbt, cts.Token));
-				Assert.Equal(HwiErrorCode.DeviceBusy, ex.ErrorCode);
-
-				await Task.Delay(2000);
-
-				// USER: REFUSE
-				ex = await Assert.ThrowsAsync<HwiException>(async () => await client.SignTxAsync(deviceType, devicePath, psbt, cts.Token));
-				Assert.Equal(HwiErrorCode.ActionCanceled, ex.ErrorCode);
-
-				// USER: CONFIRM
-				PSBT signedPsbt = await client.SignTxAsync(deviceType, devicePath, psbt, cts.Token);
-
-				Transaction signeTx = signedPsbt.GetOriginalTransaction();
-				Assert.Equal(psbt.GetOriginalTransaction().GetHash(), signeTx.GetHash());
-
-				var checkResult = signeTx.Check();
-				Assert.Equal(TransactionCheckResult.Success, checkResult);
 			}
 		}
 	}


Refactoring 'RequiredWhiteSpaceLexer'

Refactoring 'RequiredWhiteSpaceLexer'

--- src/Http.Grammar/Rfc7230/RequiredWhiteSpaceLexer.cs
+++ src/Http.Grammar/Rfc7230/RequiredWhiteSpaceLexer.cs
@@ -7,20 +7,17 @@
 {
     public class RequiredWhiteSpaceLexer : Lexer<RequiredWhiteSpace>
     {
-        private readonly ILexer<Space> SpaceLexer;
-        private readonly ILexer<HorizontalTab> hTabLexer;
+        private readonly ILexer<WhiteSpace> whiteSpaceLexer;

         public RequiredWhiteSpaceLexer()
-            : this(new SpaceLexer(), new HorizontalTabLexer())
+            : this(new WhiteSpaceLexer())
         {
         }

-        public RequiredWhiteSpaceLexer(ILexer<Space> SpaceLexer, ILexer<HorizontalTab> hTabLexer)
+        public RequiredWhiteSpaceLexer(ILexer<WhiteSpace> whiteSpaceLexer)
         {
-            Contract.Requires(SpaceLexer != null);
-            Contract.Requires(hTabLexer != null);
-            this.SpaceLexer = SpaceLexer;
-            this.hTabLexer = hTabLexer;
+            Contract.Requires(whiteSpaceLexer != null);
+            this.whiteSpaceLexer = whiteSpaceLexer;
         }

         public override RequiredWhiteSpace Read(ITextScanner scanner)
@@ -44,56 +41,27 @@
             }

             var context = scanner.GetContext();
-            Space space;
-            HorizontalTab horizontalTab;
-            IList<WhiteSpace> tokens = new List<WhiteSpace>();
-            if (this.SpaceLexer.TryRead(scanner, out space))
+            WhiteSpace whiteSpace;
+            IList<WhiteSpace> elements = new List<WhiteSpace>();
+            while (this.whiteSpaceLexer.TryRead(scanner, out whiteSpace))
             {
-                tokens.Add(new WhiteSpace(space, context));
-            }
-            else
-            {
-                if (hTabLexer.TryRead(scanner, out horizontalTab))
-                {
-                    tokens.Add(new WhiteSpace(horizontalTab, context));
-                }
-                else
-                {
-                    element = default(RequiredWhiteSpace);
-                    return false;
-                }
+                elements.Add(whiteSpace);
             }

-
-            // BUG: context is not updated
-            for (; ; )
+            if (elements.Count == 0)
             {
-                if (SpaceLexer.TryRead(scanner, out space))
-                {
-                    tokens.Add(new WhiteSpace(space, context));
-                }
-                else
-                {
-                    if (hTabLexer.TryRead(scanner, out horizontalTab))
-                    {
-                        tokens.Add(new WhiteSpace(horizontalTab, context));
-                    }
-                    else
-                    {
-                        break;
-                    }
-                }
+                element = default(RequiredWhiteSpace);
+                return false;
             }

-            element = new RequiredWhiteSpace(tokens, context);
+            element = new RequiredWhiteSpace(elements, context);
             return true;
         }

         [ContractInvariantMethod]
         private void ObjectInvariant()
         {
-            Contract.Invariant(this.SpaceLexer != null);
-            Contract.Invariant(this.hTabLexer != null);
+            Contract.Invariant(this.whiteSpaceLexer != null);
         }
     }
 }


Move log message to after message deserialization

--- src/JasperBus/Runtime/Invocation/HandlerPipeline.cs
+++ src/JasperBus/Runtime/Invocation/HandlerPipeline.cs
@@ -60,10 +60,9 @@
                 }
                 else
                 {
-                    Logger.Received(envelope);
-
                     deserialize(envelope, receiver);

+                    Logger.Received(envelope);

                     await ProcessMessage(envelope, context).ConfigureAwait(false);
                 }
@@ -72,7 +71,7 @@

         private void deserialize(Envelope envelope, ChannelNode receiver)
         {
-// TODO -- Not super duper wild about this one.
+            // TODO -- Not super duper wild about this one.
             if (envelope.Message == null)
             {
                 envelope.Message = _serializer.Deserialize(envelope, receiver);
@@ -149,4 +148,4 @@
             }
         }
     }
-}+}


Ensure we get all results from kv list <vaultname>

--- src/KeyVaultCommandLine/Services/KeyVaultService.cs
+++ src/KeyVaultCommandLine/Services/KeyVaultService.cs
@@ -59,7 +59,25 @@

         public IEnumerable<SecretItem> GetSecrets(Uri vaultUri)
         {
-            return _keyVaultClient.GetSecretsAsync(vaultUri.ToString()).GetAwaiter().GetResult();
+            var result = _keyVaultClient.GetSecretsWithHttpMessagesAsync(vaultUri.ToString()).GetAwaiter().GetResult();
+            foreach (var item in result.Body)
+            {
+                yield return item;
+            }
+
+            var nextLink = result.Body.NextPageLink;
+
+            while (nextLink != null)
+            {
+                result = _keyVaultClient.GetSecretsNextWithHttpMessagesAsync(nextLink).GetAwaiter().GetResult();
+
+                foreach (var item in result.Body)
+                {
+                    yield return item;
+                }
+
+                nextLink = result.Body.NextPageLink;
+            }
         }

         public SecretBundle SetSecret(Uri vaultUri, string secretName, string secretValue)


Unnecessary validation removed.

Unnecessary validation removed.

--- XOMNI.SDK/XOMNI.SDK.Public/Clients/Company/StoreClient.cs
+++ XOMNI.SDK/XOMNI.SDK.Public/Clients/Company/StoreClient.cs
@@ -18,7 +18,7 @@

         public async Task<ApiResponse<PaginatedContainer<Store>>> GetAsync(string locationInfo, int searchDistance, int skip, int take)
 		{
-            Validator.For(locationInfo, "locationInfo").IsNotNullOrEmpty().Contains(';');
+            Validator.For(locationInfo, "locationInfo").Contains(';');
             Validator.For(searchDistance, "searchDistance").InRange(0, 1);
             Validator.For(skip, "skip").IsGreaterThanOrEqual(0);
             Validator.For(take, "take").IsGreaterThanOrEqual(1);


Control behaviour corrections:

Control behaviour corrections:

- When radio buttons share the same container, only one needs to be checked.
- Do not set the owning control to null, or the balloon does not hide when asked to.

Signed-off-by: Konstantina Chremmou <a7d1f757a659045fb6db8c1e3849a1c8ad00b97a@citrix.com>

--- XenAdmin/Dialogs/OptionsPages/ExternalToolsOptionsPage.cs
+++ XenAdmin/Dialogs/OptionsPages/ExternalToolsOptionsPage.cs
@@ -87,7 +87,6 @@
             {
                 tooltipValidation.ToolTipTitle = Messages.FILE_NOT_FOUND;
                 HelpersGUI.ShowBalloonMessage(_tooltipControl, tooltipValidation);
-                _tooltipControl = null;
             }
         }

@@ -120,16 +119,12 @@

         private void textBoxPutty_TextChanged(object sender, System.EventArgs e)
         {
-            if (radioButtonOpenSsh.Checked)
-                radioButtonOpenSsh.Checked = false;
             if (!radioButtonPutty.Checked)
                 radioButtonPutty.Checked = true;
         }

         private void textBoxOpenSsh_TextChanged(object sender, System.EventArgs e)
         {
-            if (radioButtonPutty.Checked)
-                radioButtonPutty.Checked = false;
             if (!radioButtonOpenSsh.Checked)
                 radioButtonOpenSsh.Checked = true;
         }
@@ -143,6 +138,7 @@
         {
             OpenFileSelection(textBoxOpenSsh);
         }
+
         #endregion

         private void OpenFileSelection(TextBox textBox)


LWDEV-2929 fix file tabbing RabbitMqNotifyService

--- src/MarginTrading.Services/RabbitMqNotifyService.cs
+++ src/MarginTrading.Services/RabbitMqNotifyService.cs
@@ -10,174 +10,174 @@

 namespace MarginTrading.Services
 {
-	public class RabbitMqNotifyService : IRabbitMqNotifyService
-	{
-		private readonly MarginSettings _settings;
-		private readonly IIndex<string, IMessageProducer<string>> _publishers;
-		private readonly ILog _log;
+    public class RabbitMqNotifyService : IRabbitMqNotifyService
+    {
+        private readonly MarginSettings _settings;
+        private readonly IIndex<string, IMessageProducer<string>> _publishers;
+        private readonly ILog _log;

-		public RabbitMqNotifyService(
-			MarginSettings settings,
-			IIndex<string, IMessageProducer<string>> publishers,
-			ILog log)
-		{
-			_settings = settings;
-			_publishers = publishers;
-			_log = log;
-		}
-		public async Task AccountHistory(string accountId, string clientId, decimal amount, decimal balance, decimal withdrawTransferLimit, AccountHistoryType type, string comment = null)
-		{
-		    var record = new MarginTradingAccountHistory
-		    {
-		        Id = Guid.NewGuid().ToString("N"),
-		        AccountId = accountId,
-		        ClientId = clientId,
-		        Type = type,
-		        Amount = amount,
-		        Balance = balance,
-		        WithdrawTransferLimit = withdrawTransferLimit,
-		        Date = DateTime.UtcNow,
-		        Comment = comment
-		    };
+        public RabbitMqNotifyService(
+            MarginSettings settings,
+            IIndex<string, IMessageProducer<string>> publishers,
+            ILog log)
+        {
+            _settings = settings;
+            _publishers = publishers;
+            _log = log;
+        }
+        public async Task AccountHistory(string accountId, string clientId, decimal amount, decimal balance, decimal withdrawTransferLimit, AccountHistoryType type, string comment = null)
+        {
+            var record = new MarginTradingAccountHistory
+            {
+                Id = Guid.NewGuid().ToString("N"),
+                AccountId = accountId,
+                ClientId = clientId,
+                Type = type,
+                Amount = amount,
+                Balance = balance,
+                WithdrawTransferLimit = withdrawTransferLimit,
+                Date = DateTime.UtcNow,
+                Comment = comment
+            };

             try
-			{
-				await _publishers[_settings.RabbitMqQueues.AccountHistory.ExchangeName].ProduceAsync(record.ToBackendContract().ToJson());
-			}
-			catch (Exception ex)
-			{
-			    await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(AccountHistory), record.ToJson(), ex);
-			}
-		}
+            {
+                await _publishers[_settings.RabbitMqQueues.AccountHistory.ExchangeName].ProduceAsync(record.ToBackendContract().ToJson());
+            }
+            catch (Exception ex)
+            {
+                await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(AccountHistory), record.ToJson(), ex);
+            }
+        }

-		public async Task OrderHistory(IOrder order)
-		{
-			try
-			{
-				await _publishers[_settings.RabbitMqQueues.OrderHistory.ExchangeName].ProduceAsync(order.ToFullContract().ToJson());
-			}
-			catch (Exception ex)
-			{
-				await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(OrderHistory), $"orderId: {order.Id}, accountId: {order.AccountId}, clientId: {order.ClientId}",
-					ex);
-			}
-		}
+        public async Task OrderHistory(IOrder order)
+        {
+            try
+            {
+                await _publishers[_settings.RabbitMqQueues.OrderHistory.ExchangeName].ProduceAsync(order.ToFullContract().ToJson());
+            }
+            catch (Exception ex)
+            {
+                await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(OrderHistory), $"orderId: {order.Id}, accountId: {order.AccountId}, clientId: {order.ClientId}",
+                    ex);
+            }
+        }

-		public async Task OrdeReject(IOrder order)
-		{
-			try
-			{
-				await _publishers[_settings.RabbitMqQueues.OrderRejected.ExchangeName].ProduceAsync(order.ToFullContract().ToJson());
-			}
-			catch (Exception ex)
-			{
-				await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(OrdeReject),
-					$"orderId: {order.Id}, accountId: {order.AccountId}, clientId: {order.ClientId}",
-					ex);
-			}
-		}
+        public async Task OrdeReject(IOrder order)
+        {
+            try
+            {
+                await _publishers[_settings.RabbitMqQueues.OrderRejected.ExchangeName].ProduceAsync(order.ToFullContract().ToJson());
+            }
+            catch (Exception ex)
+            {
+                await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(OrdeReject),
+                    $"orderId: {order.Id}, accountId: {order.AccountId}, clientId: {order.ClientId}",
+                    ex);
+            }
+        }

-		public async Task OrderBookPrice(InstrumentBidAskPair quote)
-		{
-			try
-			{
-				await _publishers[_settings.RabbitMqQueues.OrderbookPrices.ExchangeName].ProduceAsync(quote.ToJson());
-			}
-			catch (Exception ex)
-			{
-				await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(OrderBookPrice),
-					$"instrument: {quote.Instrument}, bid: {quote.Bid}, ask: {quote.Ask}, data: {quote.Date:u}",
-					ex);
-			}
-		}
+        public async Task OrderBookPrice(InstrumentBidAskPair quote)
+        {
+            try
+            {
+                await _publishers[_settings.RabbitMqQueues.OrderbookPrices.ExchangeName].ProduceAsync(quote.ToJson());
+            }
+            catch (Exception ex)
+            {
+                await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(OrderBookPrice),
+                    $"instrument: {quote.Instrument}, bid: {quote.Bid}, ask: {quote.Ask}, data: {quote.Date:u}",
+                    ex);
+            }
+        }

-		public async Task OrderChanged(IOrder order)
-		{
-			try
-			{
-				await _publishers[_settings.RabbitMqQueues.OrderChanged.ExchangeName].ProduceAsync(order.ToBaseContract().ToJson());
-			}
-			catch (Exception ex)
-			{
-				await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(OrderChanged),
-					$"orderId: {order.Id}, accountId: {order.AccountId}, clientId: {order.ClientId}",
-					ex);
-			}
-		}
+        public async Task OrderChanged(IOrder order)
+        {
+            try
+            {
+                await _publishers[_settings.RabbitMqQueues.OrderChanged.ExchangeName].ProduceAsync(order.ToBaseContract().ToJson());
+            }
+            catch (Exception ex)
+            {
+                await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(OrderChanged),
+                    $"orderId: {order.Id}, accountId: {order.AccountId}, clientId: {order.ClientId}",
+                    ex);
+            }
+        }

-		public async Task AccountChanged(IMarginTradingAccount account)
-		{
-			try
-			{
-				await _publishers[_settings.RabbitMqQueues.AccountChanged.ExchangeName].ProduceAsync(account.ToBackendContract(_settings.IsLive).ToJson());
-			}
-			catch (Exception ex)
-			{
-				await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(AccountChanged),
-					$"accountId: {account.Id}, clientId: {account.ClientId}",
-					ex);
-			}
-		}
+        public async Task AccountChanged(IMarginTradingAccount account)
+        {
+            try
+            {
+                await _publishers[_settings.RabbitMqQueues.AccountChanged.ExchangeName].ProduceAsync(account.ToBackendContract(_settings.IsLive).ToJson());
+            }
+            catch (Exception ex)
+            {
+                await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(AccountChanged),
+                    $"accountId: {account.Id}, clientId: {account.ClientId}",
+                    ex);
+            }
+        }

-	    public Task AccountMarginEvent(IMarginTradingAccount account, bool isStopout, DateTime eventTime)
-	    {
-	        return TryProduceMessageAsync(_settings.RabbitMqQueues.AccountMarginEvents.ExchangeName,
-	            AccountMarginEventMessage.Create(account, isStopout, eventTime));
+        public Task AccountMarginEvent(IMarginTradingAccount account, bool isStopout, DateTime eventTime)
+        {
+            return TryProduceMessageAsync(_settings.RabbitMqQueues.AccountMarginEvents.ExchangeName,
+                AccountMarginEventMessage.Create(account, isStopout, eventTime));

-	    }
+        }

-		public async Task AccountStopout(string clientId, string accountId, int positionsCount, decimal totalPnl)
-		{
-			try
-			{
-				await _publishers[_settings.RabbitMqQueues.AccountStopout.ExchangeName].ProduceAsync(new { clientId = clientId, accountId = accountId, positionsCount = positionsCount, totalPnl = totalPnl }.ToJson());
-			}
-			catch (Exception ex)
-			{
-				await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(AccountStopout),
-					$"accountId: {accountId}, positions count: {positionsCount}, total PnL: {totalPnl}", ex);
-			}
-		}
+        public async Task AccountStopout(string clientId, string accountId, int positionsCount, decimal totalPnl)
+        {
+            try
+            {
+                await _publishers[_settings.RabbitMqQueues.AccountStopout.ExchangeName].ProduceAsync(new { clientId = clientId, accountId = accountId, positionsCount = positionsCount, totalPnl = totalPnl }.ToJson());
+            }
+            catch (Exception ex)
+            {
+                await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(AccountStopout),
+                    $"accountId: {accountId}, positions count: {positionsCount}, total PnL: {totalPnl}", ex);
+            }
+        }

-		public async Task UserUpdates(bool updateAccountAssets, bool updateAccounts, string[] clientIds)
-		{
-			try
-			{
-				await _publishers[_settings.RabbitMqQueues.UserUpdates.ExchangeName].ProduceAsync(new { updateAccountAssetPairs = updateAccountAssets, UpdateAccounts = updateAccounts, clientIds = clientIds }.ToJson());
-			}
-			catch (Exception ex)
-			{
-				await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(UserUpdates), null, ex);
-			}
-	    }
+        public async Task UserUpdates(bool updateAccountAssets, bool updateAccounts, string[] clientIds)
+        {
+            try
+            {
+                await _publishers[_settings.RabbitMqQueues.UserUpdates.ExchangeName].ProduceAsync(new { updateAccountAssetPairs = updateAccountAssets, UpdateAccounts = updateAccounts, clientIds = clientIds }.ToJson());
+            }
+            catch (Exception ex)
+            {
+                await _log.WriteErrorAsync(nameof(RabbitMqNotifyService), nameof(UserUpdates), null, ex);
+            }
+        }

-	    private async Task TryProduceMessageAsync(string exchangeName, object message)
-	    {
-	        string messageStr = null;
-	        try
-	        {
-	            messageStr = message.ToJson();
-	            await _publishers[exchangeName].ProduceAsync(messageStr);
-	        }
-	        catch (Exception ex)
-	        {
+        private async Task TryProduceMessageAsync(string exchangeName, object message)
+        {
+            string messageStr = null;
+            try
+            {
+                messageStr = message.ToJson();
+                await _publishers[exchangeName].ProduceAsync(messageStr);
+            }
+            catch (Exception ex)
+            {
 #pragma warning disable 4014
-	            _log.WriteErrorAsync(nameof(RabbitMqNotifyService), exchangeName, messageStr, ex);
+                _log.WriteErrorAsync(nameof(RabbitMqNotifyService), exchangeName, messageStr, ex);
 #pragma warning restore 4014
-	        }
-	    }
+            }
+        }

         public void Stop()
-		{
-			((IStopable)_publishers[_settings.RabbitMqQueues.AccountHistory.ExchangeName]).Stop();
-			((IStopable)_publishers[_settings.RabbitMqQueues.OrderHistory.ExchangeName]).Stop();
-			((IStopable)_publishers[_settings.RabbitMqQueues.OrderRejected.ExchangeName]).Stop();
-			((IStopable)_publishers[_settings.RabbitMqQueues.OrderbookPrices.ExchangeName]).Stop();
-			((IStopable)_publishers[_settings.RabbitMqQueues.AccountStopout.ExchangeName]).Stop();
-			((IStopable)_publishers[_settings.RabbitMqQueues.AccountChanged.ExchangeName]).Stop();
-			((IStopable)_publishers[_settings.RabbitMqQueues.UserUpdates.ExchangeName]).Stop();
-			((IStopable)_publishers[_settings.RabbitMqQueues.AccountMarginEvents.ExchangeName]).Stop();
-		}
-	}
+        {
+            ((IStopable)_publishers[_settings.RabbitMqQueues.AccountHistory.ExchangeName]).Stop();
+            ((IStopable)_publishers[_settings.RabbitMqQueues.OrderHistory.ExchangeName]).Stop();
+            ((IStopable)_publishers[_settings.RabbitMqQueues.OrderRejected.ExchangeName]).Stop();
+            ((IStopable)_publishers[_settings.RabbitMqQueues.OrderbookPrices.ExchangeName]).Stop();
+            ((IStopable)_publishers[_settings.RabbitMqQueues.AccountStopout.ExchangeName]).Stop();
+            ((IStopable)_publishers[_settings.RabbitMqQueues.AccountChanged.ExchangeName]).Stop();
+            ((IStopable)_publishers[_settings.RabbitMqQueues.UserUpdates.ExchangeName]).Stop();
+            ((IStopable)_publishers[_settings.RabbitMqQueues.AccountMarginEvents.ExchangeName]).Stop();
+        }
+    }
 }


Log requested targets

Log requested targets

--- TraceEventLogger/TraceEventLogger.cs
+++ TraceEventLogger/TraceEventLogger.cs
@@ -47,6 +47,7 @@
                 ts = (uint) (args.Timestamp - firstObservedTime).TotalMilliseconds * 1000,
                 tid = args.BuildEventContext.ProjectInstanceId,
                 pid = args.BuildEventContext.NodeId,
+                args = new Dictionary<string, string> { { "targets", args.TargetNames } },
             };

             events.Add(e);


Backstage.IsOpenChanged event has been added

--- Fluent/Fluent/Backstage.cs
+++ Fluent/Fluent/Backstage.cs
@@ -33,6 +33,15 @@
     [ContentProperty("Content")]
     public class Backstage : RibbonControl
     {
+        #region Events
+
+        /// <summary>
+        /// Occurs when IsOpen has been changed
+        /// </summary>
+        public event DependencyPropertyChangedEventHandler IsOpenChanged;
+
+        #endregion
+
         #region Fields

         // Adorner for backstage
@@ -66,6 +75,9 @@
             Backstage backstage = (Backstage)d;
             if ((bool)e.NewValue) backstage.Show();
             else backstage.Hide();
+
+            // Invoke the event
+            if (backstage.IsOpenChanged != null) backstage.IsOpenChanged(backstage, e);
         }

         #endregion


Cleaned up Markdown.cs... SCRN

Cleaned up Markdown.cs... SCRN

--- GSD/Converters/Markdown.cs
+++ GSD/Converters/Markdown.cs
@@ -20,6 +20,7 @@

 using System;
 using System.Collections.Generic;
+using System.Linq;
 using System.Text;
 using System.Text.RegularExpressions;
 using System.Windows;
@@ -37,65 +38,11 @@
 			HyperlinkCommand = NavigationCommands.GoToPage;
 		}

-		public Block CreateHeader( int level, IEnumerable<Inline> content )
-		{
-			if( content == null )
-			{
-				throw new ArgumentNullException( "content" );
-			}
-
-			var block = Create<Paragraph, Inline>( content );
-
-			switch( level )
-			{
-				case 1:
-					if( Heading1Style != null )
-					{
-						block.Style = Heading1Style;
-					}
-					break;
-
-				case 2:
-					if( Heading2Style != null )
-					{
-						block.Style = Heading2Style;
-					}
-					break;
-
-				case 3:
-					if( Heading3Style != null )
-					{
-						block.Style = Heading3Style;
-					}
-					break;
-
-				case 4:
-					if( Heading4Style != null )
-					{
-						block.Style = Heading4Style;
-					}
-					break;
-			}
-
-			return block;
-		}
-
-		public IEnumerable<Inline> DoText( string text )
-		{
-			if( text == null )
-			{
-				throw new ArgumentNullException( "text" );
-			}
-
-			var t = _eoln.Replace( text, " " );
-			yield return new Run( t );
-		}
-
 		public FlowDocument Transform( string text )
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}

 			text = Normalize( text );
@@ -118,18 +65,15 @@
 		{
 			// in other words [this] and [this[also]] and [this[also[too]]]
 			// up to _nestDepth
-			if( _nestedBracketsPattern == null )
-				_nestedBracketsPattern =
-					RepeatString( @"
+			return NestedBracketsPattern ?? ( NestedBracketsPattern = RepeatString( @"
                     (?>              # Atomic matching
                        [^\[\]]+      # Anything other than brackets
                      |
                        \[
-                           ", _nestDepth ) + RepeatString(
-					@" \]
+                           ", NestDepth ) + RepeatString(
+				@" \]
                     )*"
-					, _nestDepth );
-			return _nestedBracketsPattern;
+				, NestDepth ) );
 		}

 		/// <summary>
@@ -140,18 +84,15 @@
 		{
 			// in other words (this) and (this(also)) and (this(also(too)))
 			// up to _nestDepth
-			if( _nestedParensPattern == null )
-				_nestedParensPattern =
-					RepeatString( @"
+			return NestedParensPattern ?? ( NestedParensPattern = RepeatString( @"
                     (?>              # Atomic matching
                        [^()\s]+      # Anything other than parens or whitespace
                      |
                        \(
-                           ", _nestDepth ) + RepeatString(
-					@" \)
+                           ", NestDepth ) + RepeatString(
+				@" \)
                     )*"
-					, _nestDepth );
-			return _nestedParensPattern;
+				, NestDepth ) );
 		}

 		/// <summary>
@@ -161,7 +102,7 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}

 			var sb = new StringBuilder( text.Length * count );
@@ -174,12 +115,11 @@
 		{
 			if( match == null )
 			{
-				throw new ArgumentNullException( "match" );
+				throw new ArgumentNullException( nameof( match ) );
 			}

 			string linkText = match.Groups[2].Value;
 			string url = match.Groups[3].Value;
-			string title = match.Groups[6].Value;

 			var result = Create<Hyperlink, Inline>( RunSpanGamut( linkText ) );
 			result.Command = HyperlinkCommand;
@@ -191,7 +131,7 @@
 		{
 			if( match == null )
 			{
-				throw new ArgumentNullException( "match" );
+				throw new ArgumentNullException( nameof( match ) );
 			}

 			string header = match.Groups[2].Value;
@@ -203,7 +143,7 @@
 		{
 			if( match == null )
 			{
-				throw new ArgumentNullException( "match" );
+				throw new ArgumentNullException( nameof( match ) );
 			}

 			var content = match.Groups[contentGroup].Value;
@@ -214,7 +154,7 @@
 		{
 			if( match == null )
 			{
-				throw new ArgumentNullException( "match" );
+				throw new ArgumentNullException( nameof( match ) );
 			}

 			string span = match.Groups[2].Value;
@@ -240,6 +180,49 @@
 			}

 			return result;
+		}
+
+		private Block CreateHeader( int level, IEnumerable<Inline> content )
+		{
+			if( content == null )
+			{
+				throw new ArgumentNullException( nameof( content ) );
+			}
+
+			var block = Create<Paragraph, Inline>( content );
+
+			switch( level )
+			{
+			case 1:
+				if( Heading1Style != null )
+				{
+					block.Style = Heading1Style;
+				}
+				break;
+
+			case 2:
+				if( Heading2Style != null )
+				{
+					block.Style = Heading2Style;
+				}
+				break;
+
+			case 3:
+				if( Heading3Style != null )
+				{
+					block.Style = Heading3Style;
+				}
+				break;
+
+			case 4:
+				if( Heading4Style != null )
+				{
+					block.Style = Heading4Style;
+				}
+				break;
+			}
+
+			return block;
 		}

 		/// <summary>
@@ -252,11 +235,11 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}

 			// Next, inline-style links: [link text](url "optional title") or [link text](url "optional title")
-			return Evaluate( text, _anchorInline, AnchorInlineEvaluator, defaultHandler );
+			return Evaluate( text, AnchorInline, AnchorInlineEvaluator, defaultHandler );
 		}

 		/// <summary>
@@ -266,7 +249,7 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}

 			//    * You can use multiple backticks as the delimiters if you want to
@@ -291,7 +274,7 @@
 			//          ... type <code>`bar`</code> ...
 			//

-			return Evaluate( text, _codeSpan, CodeSpanEvaluator, defaultHandler );
+			return Evaluate( text, CodeSpan, CodeSpanEvaluator, defaultHandler );
 		}

 		/// <summary>
@@ -314,11 +297,11 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
-			}
-
-			return Evaluate<Block>( text, _headerSetext, m => SetextHeaderEvaluator( m ),
-				s => Evaluate<Block>( s, _headerAtx, m => AtxHeaderEvaluator( m ), defaultHandler ) );
+				throw new ArgumentNullException( nameof( text ) );
+			}
+
+			return Evaluate( text, HeaderSetext, SetextHeaderEvaluator,
+				s => Evaluate( s, HeaderAtx, AtxHeaderEvaluator, defaultHandler ) );
 		}

 		/// <summary>
@@ -334,10 +317,10 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
-			}
-
-			return Evaluate( text, _horizontalRules, RuleEvaluator, defaultHandler );
+				throw new ArgumentNullException( nameof( text ) );
+			}
+
+			return Evaluate( text, HorizontalRules, RuleEvaluator, defaultHandler );
 		}

 		/// <summary>
@@ -347,22 +330,20 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}

 			// <strong> must go first, then <em>
 			if( StrictBoldItalic )
 			{
-				return Evaluate<Inline>( text, _strictBold, m => BoldEvaluator( m, 3 ),
-					s1 => Evaluate<Inline>( s1, _strictItalic, m => ItalicEvaluator( m, 3 ),
-					s2 => defaultHandler( s2 ) ) );
-			}
-			else
-			{
-				return Evaluate<Inline>( text, _bold, m => BoldEvaluator( m, 2 ),
-				   s1 => Evaluate<Inline>( s1, _italic, m => ItalicEvaluator( m, 2 ),
-				   s2 => defaultHandler( s2 ) ) );
-			}
+				return Evaluate( text, StrictBold, m => BoldEvaluator( m, 3 ),
+					s1 => Evaluate( s1, StrictItalic, m => ItalicEvaluator( m, 3 ),
+					defaultHandler ) );
+			}
+
+			return Evaluate( text, Bold, m => BoldEvaluator( m, 2 ),
+				s1 => Evaluate( s1, Italic, m => ItalicEvaluator( m, 2 ),
+					defaultHandler ) );
 		}

 		/// <summary>
@@ -372,21 +353,32 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}
 			// We use a different prefix before nested lists than top-level lists.
 			// See extended comment in _ProcessListItems().
-			if( _listLevel > 0 )
-				return Evaluate( text, _listNested, ListEvaluator, defaultHandler );
+			if( ListLevel > 0 )
+				return Evaluate( text, ListNested, ListEvaluator, defaultHandler );
 			else
-				return Evaluate( text, _listTopLevel, ListEvaluator, defaultHandler );
+				return Evaluate( text, ListTopLevel, ListEvaluator, defaultHandler );
+		}
+
+		private IEnumerable<Inline> DoText( string text )
+		{
+			if( text == null )
+			{
+				throw new ArgumentNullException( nameof( text ) );
+			}
+
+			var t = Eoln.Replace( text, " " );
+			yield return new Run( t );
 		}

 		private IEnumerable<T> Evaluate<T>( string text, Regex expression, Func<Match, T> build, Func<string, IEnumerable<T>> rest )
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}

 			var matches = expression.Matches( text );
@@ -424,23 +416,20 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}

 			// split on two or more newlines
-			string[] grafs = _newlinesMultiple.Split( _newlinesLeadingTrailing.Replace( text, "" ) );
-
-			foreach( var g in grafs )
-			{
-				yield return Create<Paragraph, Inline>( RunSpanGamut( g ) );
-			}
+			string[] grafs = NewlinesMultiple.Split( NewlinesLeadingTrailing.Replace( text, "" ) );
+
+			return grafs.Select( g => Create<Paragraph, Inline>( RunSpanGamut( g ) ) );
 		}

 		private Inline ItalicEvaluator( Match match, int contentGroup )
 		{
 			if( match == null )
 			{
-				throw new ArgumentNullException( "match" );
+				throw new ArgumentNullException( nameof( match ) );
 			}

 			var content = match.Groups[contentGroup].Value;
@@ -451,14 +440,14 @@
 		{
 			if( match == null )
 			{
-				throw new ArgumentNullException( "match" );
+				throw new ArgumentNullException( nameof( match ) );
 			}
 			string list = match.Groups[1].Value;
-			string listType = Regex.IsMatch( match.Groups[3].Value, _markerUL ) ? "ul" : "ol";
+			string listType = Regex.IsMatch( match.Groups[3].Value, MarkerUl ) ? "ul" : "ol";
 			// Turn double returns into triple returns, so that we can make a
 			// paragraph for the last item in a list, if necessary:
 			list = Regex.Replace( list, @"\n{2,}", "\n\n\n" );
-			var resultList = Create<List, ListItem>( ProcessListItems( list, listType == "ul" ? _markerUL : _markerOL ) );
+			var resultList = Create<List, ListItem>( ProcessListItems( list, listType == "ul" ? MarkerUl : MarkerOl ) );
 			resultList.MarkerStyle = listType == "ul" ? TextMarkerStyle.Disc : TextMarkerStyle.Decimal;
 			return resultList;
 		}
@@ -467,7 +456,7 @@
 		{
 			if( match == null )
 			{
-				throw new ArgumentNullException( "match" );
+				throw new ArgumentNullException( nameof( match ) );
 			}

 			string item = match.Groups[4].Value;
@@ -493,7 +482,7 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}

 			var output = new StringBuilder( text.Length );
@@ -504,39 +493,39 @@
 			{
 				switch( text[i] )
 				{
-					case '\n':
+				case '\n':
+					if( valid )
+						output.Append( line );
+					output.Append( '\n' );
+					line.Length = 0;
+					valid = false;
+					break;
+
+				case '\r':
+					if( ( i < text.Length - 1 ) && ( text[i + 1] != '\n' ) )
+					{
 						if( valid )
 							output.Append( line );
 						output.Append( '\n' );
 						line.Length = 0;
 						valid = false;
-						break;
-
-					case '\r':
-						if( ( i < text.Length - 1 ) && ( text[i + 1] != '\n' ) )
-						{
-							if( valid )
-								output.Append( line );
-							output.Append( '\n' );
-							line.Length = 0;
-							valid = false;
-						}
-						break;
-
-					case '\t':
-						int width = ( _tabWidth - line.Length % _tabWidth );
-						for( int k = 0; k < width; k++ )
-							line.Append( ' ' );
-						break;
-
-					case '\x1A':
-						break;
-
-					default:
-						if( !valid && text[i] != ' ' )
-							valid = true;
-						line.Append( text[i] );
-						break;
+					}
+					break;
+
+				case '\t':
+					int width = ( TabWidth - line.Length % TabWidth );
+					for( int k = 0; k < width; k++ )
+						line.Append( ' ' );
+					break;
+
+				case '\x1A':
+					break;
+
+				default:
+					if( !valid && text[i] != ' ' )
+						valid = true;
+					line.Append( text[i] );
+					break;
 				}
 			}

@@ -546,14 +535,6 @@

 			// add two newlines to the end before return
 			return output.Append( "\n\n" ).ToString();
-		}
-
-		/// <summary>
-		/// Remove one level of line-leading spaces
-		/// </summary>
-		private string Outdent( string block )
-		{
-			return _outDent.Replace( block, "" );
 		}

 		/// <summary>
@@ -578,7 +559,7 @@
 			// without resorting to mind-reading. Perhaps the solution is to
 			// change the syntax rules such that sub-lists must start with a
 			// starting cardinal number; e.g. "1." or "a.".
-			_listLevel++;
+			ListLevel++;
 			try
 			{
 				// Trim trailing blank lines:
@@ -600,7 +581,7 @@
 			}
 			finally
 			{
-				_listLevel--;
+				ListLevel--;
 			}
 		}

@@ -608,7 +589,7 @@
 		{
 			if( match == null )
 			{
-				throw new ArgumentNullException( "match" );
+				throw new ArgumentNullException( nameof( match ) );
 			}

 			var line = new Line() { X2 = 1, StrokeThickness = 1.0 };
@@ -623,13 +604,13 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}

 			return DoHeaders( text,
 				s1 => DoHorizontalRules( s1,
 					s2 => DoLists( s2,
-					sn => FormParagraphs( sn ) ) ) );
+					FormParagraphs ) ) );

 			//text = DoCodeBlocks(text);
 			//text = DoBlockQuotes(text);
@@ -652,13 +633,13 @@
 		{
 			if( text == null )
 			{
-				throw new ArgumentNullException( "text" );
+				throw new ArgumentNullException( nameof( text ) );
 			}

 			return DoCodeSpans( text,
 				s0 => DoAnchors( s0,
 				s1 => DoItalicsAndBold( s1,
-				s2 => DoText( s2 ) ) ) );
+				DoText ) ) );

 			//text = EscapeSpecialCharsWithinTagAttributes(text);
 			//text = EscapeBackslashes(text);
@@ -682,7 +663,7 @@
 		{
 			if( match == null )
 			{
-				throw new ArgumentNullException( "match" );
+				throw new ArgumentNullException( nameof( match ) );
 			}

 			string header = match.Groups[1].Value;
@@ -761,29 +742,33 @@
 		public static readonly DependencyProperty Heading4StyleProperty =
 			DependencyProperty.Register( "Heading4Style", typeof( Style ), typeof( Markdown ), new PropertyMetadata( null ) );

-		private const string _markerOL = @"\d+[.]";
-
-		private const string _markerUL = @"[*+-]";
+		private const string MarkerOl = @"\d+[.]";
+
+		private const string MarkerUl = @"[*+-]";

 		/// <summary>
 		/// maximum nested depth of [] and () supported by the transform; implementation detail
 		/// </summary>
-		private const int _nestDepth = 6;
+		private const int NestDepth = 6;

 		/// <summary>
 		/// Tabs are automatically converted to spaces as part of the transform
 		/// this constant determines how "wide" those tabs become in spaces
 		/// </summary>
-		private const int _tabWidth = 4;
-
-		private static readonly Regex _anchorInline = new Regex( string.Format( @"
+		private const int TabWidth = 4;
+
+		private static readonly Regex AnchorInline = new Regex(
+			$@"
                 (                           # wrap whole match in $1
                     \[
-                        ({0})               # link text = $2
+                        ({GetNestedBracketsPattern()
+				})               # link text = $2
                     \]
                     \(                      # literal paren
                         [ ]*
-                        ({1})               # href = $3
+                        ({
+				GetNestedParensPattern()
+				})               # href = $3
                         [ ]*
                         (                   # $4
                         (['""])           # quote char = $5
@@ -792,13 +777,13 @@
                         [ ]*                # ignore any spaces between closing quote and )
                         )?                  # title is optional
                     \)
-                )", GetNestedBracketsPattern(), GetNestedParensPattern() ),
+                )",
 				  RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled );

-		private static readonly Regex _bold = new Regex( @"(\*\*|__) (?=\S) (.+?[*_]*) (?<=\S) \1",
+		private static readonly Regex Bold = new Regex( @"(\*\*|__) (?=\S) (.+?[*_]*) (?<=\S) \1",
 			RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline | RegexOptions.Compiled );

-		private static readonly Regex _codeSpan = new Regex( @"
+		private static readonly Regex CodeSpan = new Regex( @"
                     (?<!\\)   # Character before opening ` can't be a backslash
                     (`+)      # $1 = Opening run of `
                     (.+?)     # $2 = The code block
@@ -806,9 +791,9 @@
                     \1
                     (?!`)", RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline | RegexOptions.Compiled );

-		private static readonly Regex _eoln = new Regex( "\\s+" );
-
-		private static readonly Regex _headerAtx = new Regex( @"
+		private static readonly Regex Eoln = new Regex( "\\s+" );
+
+		private static readonly Regex HeaderAtx = new Regex( @"
                 ^(\#{1,6})  # $1 = string of #'s
                 [ ]*
                 (.+?)       # $2 = Header text
@@ -817,7 +802,7 @@
                 \n+",
 			RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled );

-		private static readonly Regex _headerSetext = new Regex( @"
+		private static readonly Regex HeaderSetext = new Regex( @"
                 ^(.+?)
                 [ ]*
                 \n
@@ -826,7 +811,7 @@
                 \n+",
 	RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled );

-		private static readonly Regex _horizontalRules = new Regex( @"
+		private static readonly Regex HorizontalRules = new Regex( @"
             ^[ ]{0,3}         # Leading space
                 ([-*_])       # $1: First marker
                 (?>           # Repeated marker group
@@ -837,30 +822,25 @@
                 $             # End of line.
             ", RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled );

-		private static readonly Regex _italic = new Regex( @"(\*|_) (?=\S) (.+?) (?<=\S) \1",
+		private static readonly Regex Italic = new Regex( @"(\*|_) (?=\S) (.+?) (?<=\S) \1",
 			RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline | RegexOptions.Compiled );

-		private static Regex _leadingWhitespace = new Regex( @"^[ ]*", RegexOptions.Compiled );
-
-		private static readonly Regex _listNested = new Regex( @"^" + _wholeList,
+		private static readonly Regex ListNested = new Regex( @"^" + WholeList,
 			RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled );

-		private static readonly Regex _listTopLevel = new Regex( @"(?:(?<=\n\n)|\A\n?)" + _wholeList,
+		private static readonly Regex ListTopLevel = new Regex( @"(?:(?<=\n\n)|\A\n?)" + WholeList,
 			RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled );

-		private static string _nestedBracketsPattern;
-		private static string _nestedParensPattern;
-		private static readonly Regex _newlinesLeadingTrailing = new Regex( @"^\n+|\n+\z", RegexOptions.Compiled );
-		private static readonly Regex _newlinesMultiple = new Regex( @"\n{2,}", RegexOptions.Compiled );
-		private static readonly Regex _outDent = new Regex( @"^[ ]{1," + _tabWidth + @"}", RegexOptions.Multiline | RegexOptions.Compiled );
-
-		private static readonly Regex _strictBold = new Regex( @"([\W_]|^) (\*\*|__) (?=\S) ([^\r]*?\S[\*_]*) \2 ([\W_]|$)",
+		private static readonly Regex NewlinesLeadingTrailing = new Regex( @"^\n+|\n+\z", RegexOptions.Compiled );
+		private static readonly Regex NewlinesMultiple = new Regex( @"\n{2,}", RegexOptions.Compiled );
+
+		private static readonly Regex StrictBold = new Regex( @"([\W_]|^) (\*\*|__) (?=\S) ([^\r]*?\S[\*_]*) \2 ([\W_]|$)",
 			RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline | RegexOptions.Compiled );

-		private static readonly Regex _strictItalic = new Regex( @"([\W_]|^) (\*|_) (?=\S) ([^\r\*_]*?\S) \2 ([\W_]|$)",
+		private static readonly Regex StrictItalic = new Regex( @"([\W_]|^) (\*|_) (?=\S) ([^\r\*_]*?\S) \2 ([\W_]|$)",
 			RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline | RegexOptions.Compiled );

-		private static readonly string _wholeList = string.Format( @"
+		private static readonly string WholeList = string.Format( @"
             (                               # $1 = whole list
               (                             # $2
                 [ ]{{0,{1}}}
@@ -878,8 +858,10 @@
                     {0}[ ]+
                   )
               )
-            )", string.Format( "(?:{0}|{1})", _markerUL, _markerOL ), _tabWidth - 1 );
-
-		private int _listLevel;
+            )", $"(?:{MarkerUl}|{MarkerOl})", TabWidth - 1 );
+
+		private static string NestedBracketsPattern;
+		private static string NestedParensPattern;
+		private int ListLevel;
 	}
 }


Optimize to avoid unnecessary TransportPacket.Subset()

--- GTBase/Net/TcpTransport.cs
+++ GTBase/Net/TcpTransport.cs
@@ -213,7 +213,8 @@

                     SocketError error;
                     int bytesReceived = handle.Client.Receive(
-                        incomingInProgress.Subset((int)incomingOffset, (int)incomingRemaining),
+                        incomingOffset == 0 ? incomingInProgress
+                            : incomingInProgress.Subset((int)incomingOffset, (int)incomingRemaining),
                         SocketFlags.None, out error);
                     switch (error)
                     {


Fix state to field conversion

Fix state to field conversion

--- GTMillGameLogic2/GTGame.cs
+++ GTMillGameLogic2/GTGame.cs
@@ -233,6 +233,7 @@
                 _Logic.playerDidStep();
                 stepWithNextUser();
             }
+
             if (gameStateChangedEventArgs.GamePhase == GamePhase.Started)
             {
                 GTPlayerInterface<GTMillGameElement, GTMillPosition> p;
@@ -324,8 +325,8 @@
             foreach (KeyValuePair<GTMillPosition, GTMillGameElement> kv in state)
             {
                 GTMillPosition p = kv.Key;
-                int row = (3-p.z) * p.x + p.z;
-                int column = (3-p.z) * p.y + p.z;
+				int row = (3 * p.y) + (p.z - (p.y * p.z));
+				int column = (3 * p.x) + (p.z - (p.x * p.z));

                 field[row, column] = kv.Value.owner == _Logic.nextPlayer.id ? (byte)0 : (byte)1;
             }


modified rotate.cs to make it reusable

modified rotate.cs to make it reusable

--- GrowingUp/Assets/Scripts/Rotate.cs
+++ GrowingUp/Assets/Scripts/Rotate.cs
@@ -2,6 +2,12 @@
 using System.Collections;

 public class Rotate : MonoBehaviour {
+
+    // rotation axis
+    public Vector3 RotationAxis;
+
+    // what rotation is applied first
+    public Vector3 InitialRotation;

 	// number of times per second that the rotator goes around
     public float RotationSpeed; // a speed of 0.25 makes the wheel rotate once every 4 seconds
@@ -43,9 +49,10 @@
 	// Update is called once per frame
 	void Update () {
 		// update total
-		rotated += RotationSpeed * cycleCoefficient * Time.deltaTime;
+		rotated += Mathf.Abs(RotationSpeed * cycleCoefficient * Time.deltaTime);
 		// rotate using value based on time
-		transform.rotation = Quaternion.Euler(new Vector3(-rotated,0,90));
+        transform.rotation = Quaternion.Euler(-rotated*RotationAxis + InitialRotation);
+        //transform.rotation = Quaternion.Euler(new Vector3(-rotated,0,90));

 		// on-screen rotation is tied to the value
 	}


Update ArkAccountResponse.cs

Update ArkAccountResponse.cs

--- ark-net/Model/Account/ArkAccountResponse.cs
+++ ark-net/Model/Account/ArkAccountResponse.cs
@@ -1,5 +1,5 @@
 // --------------------------------------------------------------------------------------------------------------------
-// <copyright file="ArkAccountResponse.cs" company="Ark Labs">
+// <copyright file="ArkAccountResponse.cs" company="Ark">
 //   MIT License
 //   //
 //   // Copyright (c) 2017 Kristjan Košič


increment version

increment version

--- HUSauth/Properties/AssemblyInfo.cs
+++ HUSauth/Properties/AssemblyInfo.cs
@@ -46,5 +46,5 @@
 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
 // 既定値にすることができます:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.5.*")]
+[assembly: AssemblyVersion("1.1.6.*")]
 [assembly: AssemblyFileVersion("1.0.0.0")]


adding header

adding header

--- src/NLog/LayoutRenderers/AppDomainLayoutRenderer.cs
+++ src/NLog/LayoutRenderers/AppDomainLayoutRenderer.cs
@@ -1,4 +1,37 @@
-using System;
+//
+// Copyright (c) 2004-2011 Jaroslaw Kowalski <jaak@jkowalski.net>
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+//   this list of conditions and the following disclaimer.
+//
+// * Redistributions in binary form must reproduce the above copyright notice,
+//   this list of conditions and the following disclaimer in the documentation
+//   and/or other materials provided with the distribution.
+//
+// * Neither the name of Jaroslaw Kowalski nor the names of its
+//   contributors may be used to endorse or promote products derived from this
+//   software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+// THE POSSIBILITY OF SUCH DAMAGE.
+//
+
+using System;
 using System.ComponentModel;
 using System.Linq;
 using System.Text;


Removed unused Attributes

Removed unused Attributes

--- src/coreDox.Core/Attributes/ConfigForAttribute.cs
+++ src/coreDox.Core/Attributes/ConfigForAttribute.cs
@@ -1,14 +0,0 @@
-using System;
-
-namespace coreDox.Core.Attributes
-{
-    public class ConfigForAttribute : Attribute
-    {
-        public ConfigForAttribute(Type type)
-        {
-            Type = type;
-        }
-
-        public Type Type { get; }
-    }
-}


Register bug fix

Register bug fix

--- UpgradeIt/Model/RegisterViewModel.cs
+++ UpgradeIt/Model/RegisterViewModel.cs
@@ -19,7 +19,7 @@

         [Required]
         [StringLength(255, MinimumLength = 8)]
-        [Display(Name = "Confirm password")]
+        [Display(Name = "Confirm password")]
         [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
         public string ConfirmPassword { get; set; }
     }


typo in category

typo in category

--- Utilities/GlobalUtilities_Utility.cs
+++ Utilities/GlobalUtilities_Utility.cs
@@ -22,7 +22,7 @@
 using System.Globalization;

 /// <summary>
-/// Version: 1.5.21
+/// Version: 1.5.22
 /// -------------------------------------------------------------------------
 /// Simon Pucher 2016
 /// Christian Kovar 2016
@@ -1761,7 +1761,7 @@
 #endregion

 [Description("We use this indicator to share global code in AgenaTrader.")]
-[Category("Script-Trading Basic Package")]
+[Category("GlobalUtility")]
 public class GlobalUtility : AgenaTrader.UserCode.UserIndicator
 {
     //https://www.youtube.com/watch?v=5NNOrp_83RU


Optimize waiting on native thread exit

Optimize waiting on native thread exit

--- osu.Framework/Threading/GameThread.cs
+++ osu.Framework/Threading/GameThread.cs
@@ -341,9 +341,22 @@
             }
             else
             {
-                while (state.Value != targetState)
-                    Thread.Sleep(1);
-            }
+                switch (targetState)
+                {
+                    case GameThreadState.Exited:
+                    case GameThreadState.Paused:
+                        Thread.Join();
+                        break;
+
+                    default:
+                        while (state.Value != targetState)
+                            Thread.Sleep(1);
+
+                        break;
+                }
+            }
+
+            Debug.Assert(state.Value == targetState);
         }

         /// <summary>


Add license header to the new file

Add license header to the new file

--- osu.Game/Graphics/DrawableJoinDate.cs
+++ osu.Game/Graphics/DrawableJoinDate.cs
@@ -1,4 +1,7 @@
-using System;
+// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
+// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
+
+using System;
 using System.Collections.Generic;
 using System.Text;


Use RestartPoint

Use RestartPoint

--- osu.Game/Screens/Multi/Multiplayer.cs
+++ osu.Game/Screens/Multi/Multiplayer.cs
@@ -251,13 +251,11 @@

                 if (track != null)
                 {
+                    track.RestartPoint = Beatmap.Value.Metadata.PreviewTime;
                     track.Looping = true;

                     if (!track.IsRunning)
-                    {
-                        track.Seek(Beatmap.Value.Metadata.PreviewTime);
-                        track.Start();
-                    }
+                        track.Restart();
                 }

                 createButton.Hide();


Make FriendlyName virtual.

Make FriendlyName virtual.

--- cslacs/Csla/PropertyInfo.cs
+++ cslacs/Csla/PropertyInfo.cs
@@ -101,7 +101,7 @@
     /// property name itself is returned as a
     /// result.
     /// </remarks>
-    public string FriendlyName
+    public virtual string FriendlyName
     {
       get
       {


Version 1.0.0-alpha10

Version 1.0.0-alpha10

--- Utilitron/Properties/AssemblyInfo.cs
+++ Utilitron/Properties/AssemblyInfo.cs
@@ -33,9 +33,9 @@
 //    Minor Version : Increased for each non-api-breaking release
 //    Build Number : 0 for alpha versions, 1 for beta versions, 2 for release candidates, 3 for releases
 //    Revision : Always 0 for release versions, always 1+ for alpha, beta, rc versions to indicate the alpha/beta/rc number
-[assembly: AssemblyVersion("1.0.0.9")]
-[assembly: AssemblyFileVersion("1.0.0.9")]
+[assembly: AssemblyVersion("1.0.0.10")]
+[assembly: AssemblyFileVersion("1.0.0.10")]

 // This version number will roughly follow semantic versioning : http://semver.org
 // The first three numbers will always match the first the numbers of the version above.
-[assembly: AssemblyInformationalVersion("1.0.0-alpha9")]
+[assembly: AssemblyInformationalVersion("1.0.0-alpha10")]