Allow the Select operator to specify multiple expressions (using params)

--- src/ExactOnline.Client.Sdk/Helpers/ExactOnlineQuery.cs
+++ src/ExactOnline.Client.Sdk/Helpers/ExactOnlineQuery.cs
@@ -4,6 +4,7 @@
 using ExactOnline.Client.Sdk.Interfaces;
 using System.Linq.Expressions;
 using ExactOnline.Client.Sdk.Enums;
+using System.Linq;

 namespace ExactOnline.Client.Sdk.Helpers
 {
@@ -128,9 +129,9 @@
 		/// </summary>
         /// <param name="property">The property to select</param>
 		/// <returns></returns>
-        public ExactOnlineQuery<T> Select<TProperty>(Expression<Func<T, TProperty>> property)
-		{
-            return Select(fields: TransformExpressionToODataFormat(property));
+        public ExactOnlineQuery<T> Select<TProperty>(params Expression<Func<T, TProperty>>[] property)
+		{
+            return Select(fields: property.Select(x => TransformExpressionToODataFormat(x)).ToArray());
 		}

 		/// <summary>


fix(require): rm from Groups.Users

fix(require): rm from Groups.Users

--- src/StockportWebapp/Views/stockportgov/Groups/Users.cshtml
+++ src/StockportWebapp/Views/stockportgov/Groups/Users.cshtml
@@ -8,13 +8,12 @@
     ViewData["Title"] = "Users";
     ViewData["og:title"] = "Users";
     Layout = "../Shared/_Layout.cshtml";
+    var heading = "Add or remove users";
 }

 @section Breadcrumbs {
-    <partial name="Breadcrumb" model='new List<Crumb> { new Crumb("Stockport Local", "groups", "Group"), new Crumb("Manage your groups", "manage", "groups"), new Crumb(Model.Name, "manage/" + Model.Slug, "groups") }'/>
+    <partial name="Breadcrumb" model='new List<Crumb> { new Crumb("Stockport Local", "groups", "Group"), new Crumb("Manage your groups", "manage", "groups"), new Crumb(Model.Name, "manage/" + Model.Slug, "groups") }' />
 }
-
-@{ var heading = "Add or remove users";}

@@ -24,8 +23,6 @@

@heading

-
-

@@ -65,24 +62,16 @@
                                             Edit user

-                                 }
+                                }

-

-                                        <stock-button as-link="true" class="sk-table white" href="@Url.Action("NewUser", "Groups", new { slug = Model.Slug })">Add new user</stock-button>
-

+

+                                    <stock-button as-link="true" class="sk-table white" href="@Url.Action("NewUser", "Groups", new { slug = Model.Slug })">Add new user</stock-button>

-

-

+

+

-+


Fix local variable name in the services (#1746)

--- src/Stripe.net/Services/SetupIntents/SetupIntentService.cs
+++ src/Stripe.net/Services/SetupIntents/SetupIntentService.cs
@@ -24,24 +24,24 @@

         public override string BasePath => "/v1/setup_intents";

-        public virtual SetupIntent Cancel(string paymentIntentId, SetupIntentCancelOptions options, RequestOptions requestOptions = null)
+        public virtual SetupIntent Cancel(string setupIntentId, SetupIntentCancelOptions options, RequestOptions requestOptions = null)
         {
-            return this.Request(HttpMethod.Post, $"{this.InstanceUrl(paymentIntentId)}/cancel", options, requestOptions);
+            return this.Request(HttpMethod.Post, $"{this.InstanceUrl(setupIntentId)}/cancel", options, requestOptions);
         }

-        public virtual Task<SetupIntent> CancelAsync(string paymentIntentId, SetupIntentCancelOptions options, RequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
+        public virtual Task<SetupIntent> CancelAsync(string setupIntentId, SetupIntentCancelOptions options, RequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
         {
-            return this.RequestAsync(HttpMethod.Post, $"{this.InstanceUrl(paymentIntentId)}/cancel", options, requestOptions, cancellationToken);
+            return this.RequestAsync(HttpMethod.Post, $"{this.InstanceUrl(setupIntentId)}/cancel", options, requestOptions, cancellationToken);
         }

-        public virtual SetupIntent Confirm(string paymentIntentId, SetupIntentConfirmOptions options, RequestOptions requestOptions = null)
+        public virtual SetupIntent Confirm(string setupIntentId, SetupIntentConfirmOptions options, RequestOptions requestOptions = null)
         {
-            return this.Request(HttpMethod.Post, $"{this.InstanceUrl(paymentIntentId)}/confirm", options, requestOptions);
+            return this.Request(HttpMethod.Post, $"{this.InstanceUrl(setupIntentId)}/confirm", options, requestOptions);
         }

-        public virtual Task<SetupIntent> ConfirmAsync(string paymentIntentId, SetupIntentConfirmOptions options, RequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
+        public virtual Task<SetupIntent> ConfirmAsync(string setupIntentId, SetupIntentConfirmOptions options, RequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
         {
-            return this.RequestAsync(HttpMethod.Post, $"{this.InstanceUrl(paymentIntentId)}/confirm", options, requestOptions, cancellationToken);
+            return this.RequestAsync(HttpMethod.Post, $"{this.InstanceUrl(setupIntentId)}/confirm", options, requestOptions, cancellationToken);
         }

         public virtual SetupIntent Create(SetupIntentCreateOptions options, RequestOptions requestOptions = null)
@@ -54,14 +54,14 @@
             return this.CreateEntityAsync(options, requestOptions, cancellationToken);
         }

-        public virtual SetupIntent Get(string paymentIntentId, SetupIntentGetOptions options = null, RequestOptions requestOptions = null)
+        public virtual SetupIntent Get(string setupIntentId, SetupIntentGetOptions options = null, RequestOptions requestOptions = null)
         {
-            return this.GetEntity(paymentIntentId, options, requestOptions);
+            return this.GetEntity(setupIntentId, options, requestOptions);
         }

-        public virtual Task<SetupIntent> GetAsync(string paymentIntentId, SetupIntentGetOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
+        public virtual Task<SetupIntent> GetAsync(string setupIntentId, SetupIntentGetOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
         {
-            return this.GetEntityAsync(paymentIntentId, options, requestOptions, cancellationToken);
+            return this.GetEntityAsync(setupIntentId, options, requestOptions, cancellationToken);
         }

         public virtual StripeList<SetupIntent> List(SetupIntentListOptions options = null, RequestOptions requestOptions = null)
@@ -79,14 +79,14 @@
             return this.ListEntitiesAutoPaging(options, requestOptions);
         }

-        public virtual SetupIntent Update(string paymentIntentId, SetupIntentUpdateOptions options, RequestOptions requestOptions = null)
+        public virtual SetupIntent Update(string setupIntentId, SetupIntentUpdateOptions options, RequestOptions requestOptions = null)
         {
-            return this.UpdateEntity(paymentIntentId, options, requestOptions);
+            return this.UpdateEntity(setupIntentId, options, requestOptions);
         }

-        public virtual Task<SetupIntent> UpdateAsync(string paymentIntentId, SetupIntentUpdateOptions options, RequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
+        public virtual Task<SetupIntent> UpdateAsync(string setupIntentId, SetupIntentUpdateOptions options, RequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
         {
-            return this.UpdateEntityAsync(paymentIntentId, options, requestOptions, cancellationToken);
+            return this.UpdateEntityAsync(setupIntentId, options, requestOptions, cancellationToken);
         }
     }
 }


Update MaterialDatePicker.xaml.cs

Update MaterialDatePicker.xaml.cs

Custom Date Format and Displays Today's date Initially.

--- src/SuaveControls.MaterialForms/MaterialDatePicker.xaml.cs
+++ src/SuaveControls.MaterialForms/MaterialDatePicker.xaml.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Globalization;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -12,7 +13,19 @@
     public partial class MaterialDatePicker : ContentView
     {

-
+        public static BindableProperty CustomDateFormatProperty = BindableProperty.Create(nameof(CustomDateFormat), typeof(string), typeof(MaterialDatePicker), defaultBindingMode: BindingMode.TwoWay);
+        public string CustomDateFormat
+        {
+            get
+            {
+                return (string)GetValue(CustomDateFormatProperty);
+            }
+            set
+            {
+                SetValue(CustomDateFormatProperty, value);
+            }
+        }
+        private static string _defaultDateFormat = "dddd, MMMM d, yyyy";
         public static BindableProperty DateProperty = BindableProperty.Create(nameof(Date), typeof(DateTime?), typeof(MaterialDatePicker), defaultBindingMode: BindingMode.TwoWay);
         public static BindableProperty TextProperty = BindableProperty.Create(nameof(Text), typeof(string), typeof(MaterialDatePicker), defaultBindingMode: BindingMode.TwoWay);
         public static BindableProperty PlaceholderProperty = BindableProperty.Create(nameof(Placeholder), typeof(string), typeof(MaterialDatePicker), defaultBindingMode: BindingMode.TwoWay, propertyChanged: (bindable, oldVal, newval) =>
@@ -152,12 +165,20 @@
             };

             Picker.DateSelected += Picker_DateSelected;
+
+	    /* Set Today's date as Initial Value */
+            if (string.IsNullOrEmpty(CustomDateFormat))
+                CustomDateFormat = _defaultDateFormat;
+            Picker.Date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
+            EntryField.Text = Picker.Date.ToString(CustomDateFormat, CultureInfo.CurrentCulture);
         }

         private void Picker_DateSelected(object sender, DateChangedEventArgs e)
         {
-            EntryField.Text = e.NewDate.ToString("dddd, MMMM d, yyyy");
+            if (string.IsNullOrEmpty(CustomDateFormat))
+                CustomDateFormat = _defaultDateFormat;
+            EntryField.Text = e.NewDate.ToString(CustomDateFormat, CultureInfo.CurrentCulture);
             Date = e.NewDate;
         }
     }
-}+}


corrected sentence formation

corrected sentence formation

--- sBlog.Net/Areas/Prepare/Views/Database/Index.cshtml
+++ sBlog.Net/Areas/Prepare/Views/Database/Index.cshtml
@@ -21,7 +21,7 @@
 </div>

 <div>
-    You are the first stage of the sBlog.Net setup! Welcome :) This step is pretty simple!
+    You are at the first stage of the sBlog.Net setup! Welcome :) This step is pretty simple!
     You just have to enter the connection string from your web.config in order to authenticate
     yourself as the owner of this blog. Then clicking on the "Install Now »"
     button would finish the database installation of sBlog.Net! The next step would


Disable SyncRoot test for NETFX (#34563)

* Disable SyncRoot test for NETFX

* comment

--- src/System.Collections.NonGeneric/tests/SortedListTests.cs
+++ src/System.Collections.NonGeneric/tests/SortedListTests.cs
@@ -1554,6 +1554,7 @@

         [Fact]
         [OuterLoop]
+        [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "https://github.com/dotnet/corefx/pull/34339")] // Changed behavior
         public void GetSyncRootBasic()
         {
             // Testing SyncRoot is not as simple as its implementation looks like. This is the working


Remove the unused setting key `ConsolePrompting` and avoid unnecessary string creation when querying `ExecutionPolicy` setting (#10985)

--- src/System.Management.Automation/engine/PSConfiguration.cs
+++ src/System.Management.Automation/engine/PSConfiguration.cs
@@ -47,7 +47,8 @@
     /// </remarks>
     internal sealed class PowerShellConfig
     {
-        private const string configFileName = "powershell.config.json";
+        private const string ConfigFileName = "powershell.config.json";
+        private const string ExecutionPolicyDefaultShellKey = "Microsoft.PowerShell:ExecutionPolicy";

         // Provide a singleton
         internal static readonly PowerShellConfig Instance = new PowerShellConfig();
@@ -79,13 +80,13 @@
         {
             // Sets the system-wide configuration file.
             systemWideConfigDirectory = Utils.DefaultPowerShellAppBase;
-            systemWideConfigFile = Path.Combine(systemWideConfigDirectory, configFileName);
+            systemWideConfigFile = Path.Combine(systemWideConfigDirectory, ConfigFileName);

             // Sets the per-user configuration directory
             // Note: This directory may or may not exist depending upon the execution scenario.
             // Writes will attempt to create the directory if it does not already exist.
             perUserConfigDirectory = Platform.ConfigDirectory;
-            perUserConfigFile = Path.Combine(perUserConfigDirectory, configFileName);
+            perUserConfigFile = Path.Combine(perUserConfigDirectory, ConfigFileName);

             emptyConfig = new JObject();
             configRoots = new JObject[2];
@@ -153,49 +154,28 @@
         /// <returns>The execution policy if found. Null otherwise.</returns>
         internal string GetExecutionPolicy(ConfigScope scope, string shellId)
         {
-            string execPolicy = null;
-
-            string valueName = string.Concat(shellId, ":", "ExecutionPolicy");
-            string rawExecPolicy = ReadValueFromFile<string>(scope, valueName);
-
-            if (!string.IsNullOrEmpty(rawExecPolicy))
-            {
-                execPolicy = rawExecPolicy;
-            }
-
-            return execPolicy;
+            string key = GetExecutionPolicySettingKey(shellId);
+            string execPolicy = ReadValueFromFile<string>(scope, key);
+            return string.IsNullOrEmpty(execPolicy) ? null : execPolicy;
         }

         internal void RemoveExecutionPolicy(ConfigScope scope, string shellId)
         {
-            string valueName = string.Concat(shellId, ":", "ExecutionPolicy");
-            RemoveValueFromFile<string>(scope, valueName);
+            string key = GetExecutionPolicySettingKey(shellId);
+            RemoveValueFromFile<string>(scope, key);
         }

         internal void SetExecutionPolicy(ConfigScope scope, string shellId, string executionPolicy)
         {
-            string valueName = string.Concat(shellId, ":", "ExecutionPolicy");
-            WriteValueToFile<string>(scope, valueName, executionPolicy);
-        }
-
-        /// <summary>
-        /// Existing Key = HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds
-        /// Proposed value = existing default. Probably "1"
-        ///
-        /// Schema:
-        /// {
-        ///     "ConsolePrompting" : bool
-        /// }
-        /// </summary>
-        /// <returns>Whether console prompting should happen. If the value cannot be read it defaults to false.</returns>
-        internal bool GetConsolePrompting()
-        {
-            return ReadValueFromFile<bool>(ConfigScope.AllUsers, "ConsolePrompting");
-        }
-
-        internal void SetConsolePrompting(bool shouldPrompt)
-        {
-            WriteValueToFile<bool>(ConfigScope.AllUsers, "ConsolePrompting", shouldPrompt);
+            string key = GetExecutionPolicySettingKey(shellId);
+            WriteValueToFile<string>(scope, key, executionPolicy);
+        }
+
+        private string GetExecutionPolicySettingKey(string shellId)
+        {
+            return string.Equals(shellId, Utils.DefaultPowerShellShellID, StringComparison.Ordinal)
+                ? ExecutionPolicyDefaultShellKey
+                : string.Concat(shellId, ":", "ExecutionPolicy");
         }

         /// <summary>


Remove assert inside XmlException

Remove assert inside XmlException

--- src/System.Xml.ReaderWriter/src/System/Xml/XmlException.cs
+++ src/System.Xml.ReaderWriter/src/System/Xml/XmlException.cs
@@ -33,9 +33,6 @@
         //provided to meet the ECMA standards
         public XmlException(String message) : this(message, ((Exception)null), 0, 0)
         {
-#if DEBUG
-            Debug.Assert(message == null || !message.StartsWith("Xml_", StringComparison.Ordinal), "Do not pass a resource here!");
-#endif
         }

         //provided to meet ECMA standards


Fix back button navigation to MainPage causing VT reload.

--- src/TramlineFive/TramlineFive/Views/Pages/MainPage.xaml.cs
+++ src/TramlineFive/TramlineFive/Views/Pages/MainPage.xaml.cs
@@ -60,7 +60,7 @@
         {
             base.OnNavigatedTo(e);

-            if (e.Parameter is bool)
+            if (e.Parameter is bool && e.NavigationMode != NavigationMode.Back)
                 reloadVirtualTable = (bool)e.Parameter;

             if (reloadVirtualTable)


Unit Tests: more compact yet also more thorough. note on gh-21.

--- src/UnitTests/LinearAlgebraTests/VectorArithmeticTheory.cs
+++ src/UnitTests/LinearAlgebraTests/VectorArithmeticTheory.cs
@@ -43,117 +43,104 @@
         private T Subtract(T first, T second) { return Add(first, Minus(second)); }

         [Theory, Timeout(100)]
-        public void CanCloneVectorUsingUnaryPlusOperator(Vector<T> vector)
+        public void CanPlusVector(Vector<T> vector)
         {
             var hash = vector.GetHashCode();

-            var result = +vector;
+            var result1 = +vector;
+            var result2 = vector.Plus();

             Assert.That(vector.GetHashCode(), Is.EqualTo(hash));
-            Assert.That(result, Is.Not.SameAs(vector));
-            Assert.That(result.Equals(vector));
+            Assert.That(result1, Is.Not.SameAs(vector));
+            Assert.That(result1.Equals(vector));
+            Assert.That(result2, Is.Not.SameAs(vector));
+            Assert.That(result2.Equals(vector));
+            Assert.That(result1.Equals(result2));
         }

         [Theory, Timeout(100)]
-        public void CanNegateVectorUsingUnaryMinusOperator(Vector<T> vector)
+        public void CanNegateVector(Vector<T> vector)
         {
             var hash = vector.GetHashCode();

-            var result = -vector;
+            var result1 = -vector;
+            var result2 = vector.Negate();

             Assert.That(vector.GetHashCode(), Is.EqualTo(hash));
-            Assert.That(result, Is.Not.SameAs(vector));
-            Assert.That((-result).Equals(vector));
+            Assert.That(result1, Is.Not.SameAs(vector));
+            Assert.That((-result1).Equals(vector));
+            Assert.That(result2, Is.Not.SameAs(vector));
+            Assert.That((-result2).Equals(vector));
+            Assert.That(result1.Equals(result2));

             for (var i = 0; i < Math.Min(vector.Count, 20); i++)
             {
-                Assert.That(result[i], Is.EqualTo(Minus(vector[i])), i.ToString());
+                Assert.That(result1[i], Is.EqualTo(Minus(vector[i])), i.ToString());
+                Assert.That(result2[i], Is.EqualTo(Minus(vector[i])), i.ToString());
             }
         }

         [Theory, Timeout(100)]
-        public void CanAddTwoVectorsUsingOperator(Vector<T> a, Vector<T> b)
+        public void CanAddTwoVectors(Vector<T> a, Vector<T> b)
         {
             Assume.That(a.Count, Is.EqualTo(b.Count));

             var hasha = a.GetHashCode();
             var hashb = b.GetHashCode();

-            var result = a + b;
+            var result1 = a + b;
+            var result2 = a.Add(b);
+            var result3 = a.Clone();
+            result3.Add(b, result3);

             Assert.That(a.GetHashCode(), Is.EqualTo(hasha));
             Assert.That(b.GetHashCode(), Is.EqualTo(hashb));
-            Assert.That(result, Is.Not.SameAs(a));
-            Assert.That(result, Is.Not.SameAs(b));
+            Assert.That(result1, Is.Not.SameAs(a));
+            Assert.That(result1, Is.Not.SameAs(b));
+            Assert.That(result2, Is.Not.SameAs(a));
+            Assert.That(result2, Is.Not.SameAs(b));
+            Assert.That(result3, Is.Not.SameAs(a));
+            Assert.That(result3, Is.Not.SameAs(b));
+            Assert.That(result1.Equals(result2));
+            Assert.That(result1.Equals(result3));

             for (var i = 0; i < Math.Min(a.Count, 20); i++)
             {
-                Assert.That(result[i], Is.EqualTo(Add(a[i], b[i])), i.ToString());
+                Assert.That(result1[i], Is.EqualTo(Add(a[i], b[i])), i.ToString());
+                Assert.That(result2[i], Is.EqualTo(Add(a[i], b[i])), i.ToString());
+                Assert.That(result3[i], Is.EqualTo(Add(a[i], b[i])), i.ToString());
             }
         }

         [Theory, Timeout(100)]
-        public void CanAddTwoVectorsInplace(Vector<T> a, Vector<T> b)
+        public void CanSubtractTwoVectors(Vector<T> a, Vector<T> b)
         {
             Assume.That(a.Count, Is.EqualTo(b.Count));

             var hasha = a.GetHashCode();
             var hashb = b.GetHashCode();

-            var result = a.Clone();
-            result.Add(b, result);
+            var result1 = a - b;
+            var result2 = a.Subtract(b);
+            var result3 = a.Clone();
+            result3.Subtract(b, result3);

             Assert.That(a.GetHashCode(), Is.EqualTo(hasha));
             Assert.That(b.GetHashCode(), Is.EqualTo(hashb));
-            Assert.That(result, Is.Not.SameAs(a));
-            Assert.That(result, Is.Not.SameAs(b));
+            Assert.That(result1, Is.Not.SameAs(a));
+            Assert.That(result1, Is.Not.SameAs(b));
+            Assert.That(result2, Is.Not.SameAs(a));
+            Assert.That(result2, Is.Not.SameAs(b));
+            Assert.That(result3, Is.Not.SameAs(a));
+            Assert.That(result3, Is.Not.SameAs(b));
+            Assert.That(result1.Equals(result2));
+            // Assert.That(result1.Equals(result3)); BUG GH-21

             for (var i = 0; i < Math.Min(a.Count, 20); i++)
             {
-                Assert.That(result[i], Is.EqualTo(Add(a[i], b[i])), i.ToString());
-            }
-        }
-
-        [Theory, Timeout(100)]
-        public void CanSubtractTwoVectorsUsingOperator(Vector<T> a, Vector<T> b)
-        {
-            Assume.That(a.Count, Is.EqualTo(b.Count));
-
-            var hasha = a.GetHashCode();
-            var hashb = b.GetHashCode();
-
-            var result = a - b;
-
-            Assert.That(a.GetHashCode(), Is.EqualTo(hasha));
-            Assert.That(b.GetHashCode(), Is.EqualTo(hashb));
-            Assert.That(result, Is.Not.SameAs(a));
-            Assert.That(result, Is.Not.SameAs(b));
-
-            for (var i = 0; i < Math.Min(a.Count, 20); i++)
-            {
-                Assert.That(result[i], Is.EqualTo(Subtract(a[i], b[i])), i.ToString());
-            }
-        }
-
-        [Theory, Timeout(100)]
-        public void CanSubtractTwoVectorsInplace(Vector<T> a, Vector<T> b)
-        {
-            Assume.That(a.Count, Is.EqualTo(b.Count));
-
-            var hasha = a.GetHashCode();
-            var hashb = b.GetHashCode();
-
-            var result = a.Clone();
-            result.Subtract(b, result);
-
-            Assert.That(a.GetHashCode(), Is.EqualTo(hasha));
-            Assert.That(b.GetHashCode(), Is.EqualTo(hashb));
-            Assert.That(result, Is.Not.SameAs(a));
-            Assert.That(result, Is.Not.SameAs(b));
-
-            for (var i = 0; i < Math.Min(a.Count, 20); i++)
-            {
-                Assert.That(result[i], Is.EqualTo(Subtract(a[i], b[i])), i.ToString());
+                Assert.That(result1[i], Is.EqualTo(Subtract(a[i], b[i])), i.ToString());
+                Assert.That(result2[i], Is.EqualTo(Subtract(a[i], b[i])), i.ToString());
+                Assert.That(result3[i], Is.EqualTo(Subtract(a[i], b[i])), i.ToString());
             }
         }
     }


view URIs without "/api" presuming this is soon to be deprecated

--- Source/SODA/SodaUri.cs
+++ Source/SODA/SodaUri.cs
@@ -6,7 +6,7 @@
     {
         private static string metadataUrl(string domain, string resourceId)
         {
-            return String.Format("https://{0}/api/views/{1}", domain, resourceId);
+            return String.Format("https://{0}/views/{1}", domain, resourceId);
         }

         public static Uri ForMetadata(string domain, string datasetId)
@@ -18,7 +18,7 @@

         public static Uri ForResource(string domain, string resourceId, string rowId = null)
         {
-            string url = metadataUrl(domain, resourceId).Replace("api/views", "resource");
+            string url = metadataUrl(domain, resourceId).Replace("views", "resource");

             if(String.IsNullOrEmpty(rowId))
                 url = String.Format("{0}.json", url);


Verify the value in `$type` when deserializing

--- Source/fsSerializer.cs
+++ Source/fsSerializer.cs
@@ -469,13 +469,29 @@
             // objectType and data to the proper values so that when we construct an object instance later
             // and run deserialization we run it on the proper type.
             if (IsTypeSpecified(data)) {
-                string typeName = data.AsDictionary[Key_InstanceType].AsString;
-                Type type = fsTypeLookup.GetType(typeName);
-                if (type == null) {
-                    return fsFailure.Fail("Unable to find type " + typeName);
-                }
-
-                objectType = type;
+                fsData typeNameData = data.AsDictionary[Key_InstanceType];
+
+                // we wrap everything in a do while false loop so we can break out it
+                do {
+                    if (typeNameData.IsString == false) {
+                        deserializeResult.AddMessage(Key_InstanceType + " value must be a string (in " + data + ")");
+                        break;
+                    }
+
+                    string typeName = typeNameData.AsString;
+                    Type type = fsTypeLookup.GetType(typeName);
+                    if (type == null) {
+                        deserializeResult.AddMessage("Unable to locate specified type \"" + typeName + "\"");
+                        break;
+                    }
+
+                    if (storageType.IsAssignableFrom(type) == false) {
+                        deserializeResult.AddMessage("Ignoring type specifier; a field/property of type " + storageType + " cannot hold an instance of " + type);
+                        break;
+                    }
+
+                    objectType = type;
+                } while (false);
             }

             // Construct an object instance if we don't have one already. We also need to construct


fixing samples - issue #253

fixing samples - issue #253

--- samples/CacheCow.Samples.WebApi.WithQueryAndIoc/Program.cs
+++ samples/CacheCow.Samples.WebApi.WithQueryAndIoc/Program.cs
@@ -63,10 +63,8 @@
             container.Register(
                 Component.For<CarController>().ImplementedBy<CarController>()
                     .LifestyleTransient(),
-                Component.For<ITimedETagExtractor<Car>>().ImplementedBy<CarETagExtractor>()
-                    .LifestyleSingleton(),
-                Component.For<ITimedETagExtractor<IEnumerable<Car>>>().ImplementedBy<CarCollectionETagExtractor>()
-                    .LifestyleSingleton(),
+                Component.For<ITimedETagExtractor>().ImplementedBy<CarAndCollectionETagExtractor>()
+                    .LifestyleSingleton().IsDefault(),
                 Component.For<ITimedETagQueryProvider>().ImplementedBy<TimedETagQueryCarRepository>()
                     .LifestyleSingleton().IsDefault(),
                 Component.For<ICarRepository>().Instance(InMemoryCarRepository.Instance),


Android - don't check EXIF for some source types

--- source/FFImageLoading.Droid/Decoders/BaseDecoder.cs
+++ source/FFImageLoading.Droid/Decoders/BaseDecoder.cs
@@ -48,13 +48,18 @@

             // CHECK IF BITMAP IS EXIF ROTATED
             int exifRotation = 0;
-            try
+
+            if ((source == ImageSource.Filepath || source == ImageSource.Stream || source == ImageSource.Url)
+                && imageInformation.Type != ImageInformation.ImageType.SVG)
             {
-                exifRotation = imageData.GetExifRotationDegrees();
-            }
-            catch (Exception ex)
-            {
-                Logger.Error("Reading EXIF orientation failed", ex);
+                try
+                {
+                    exifRotation = imageData.GetExifRotationDegrees();
+                }
+                catch (Exception ex)
+                {
+                    Logger.Error("Reading EXIF orientation failed", ex);
+                }
             }

             if (imageData.Position != 0)


added even numbers LINQ query.

added even numbers LINQ query.

--- source/LINQFundamentals/LINQFundamentals/Program.cs
+++ source/LINQFundamentals/LINQFundamentals/Program.cs
@@ -9,6 +9,22 @@
     {
         static void Main(string[] args)
         {
+            ShowEvenNumbers();
+        }
+
+        private static void ShowEvenNumbers()
+        {
+            var numbers = Enumerable.Range(1, 30);
+            var evenNumbers = from number in numbers
+                where number%2 == 0
+                select number;
+
+            foreach (var number in evenNumbers)
+            {
+                Console.WriteLine("Even number: {0}", number);
+            }
+            Console.WriteLine("Press any key to continue...");
+            Console.ReadKey(true);
         }
     }
 }


Fixed bug introduced in this branch that did not show up until the runner was run against the sample specs.

--- NSpec/Domain/Context.cs
+++ NSpec/Domain/Context.cs
@@ -71,10 +71,8 @@

             Contexts.Do(c => c.Run(nspec));

-            foreach( Example example in Examples )
-            {
-                Exercise( example, nspec );
-            }
+            for(int i = 0; i < Examples.Count; i++)
+                Exercise(Examples[i], nspec);
         }

         public virtual void Build(nspec instance=null)


Fix RegExp toString (test 15.10.6)

Fix RegExp toString (test 15.10.6)

--- NiL.JS/Core/JSObject.cs
+++ NiL.JS/Core/JSObject.cs
@@ -843,8 +843,6 @@
                         if (self.oValue is TypeProxy)
                         {
                             var ht = (self.oValue as TypeProxy).hostedType;
-                            if (ht == typeof(RegExp))
-                                return "[object Object]";
                             return "[object " + (ht == typeof(JSObject) ? typeof(System.Object) : ht).Name + "]";
                         }
                         if (self.oValue != null)


fixed: target nodes that are not gameobjects had no scene name in their label

--- ObjectDependencyUtil.cs
+++ ObjectDependencyUtil.cs
@@ -89,6 +89,10 @@
 			}
 			else
 			{
+				// add scene name. if label has content, put the scene name in a new line
+				if ( targets.Contains( obj ) )
+					label += ((label == "") ? "" : "\n") + "Scene " + sceneName;
+
 				isSceneObj = sceneObjects.Contains( obj );
 				objects = new[] { obj };
 			}


Fixed BasicXMPPServer, now works fine when switching drivers

--- OfflineServer/Server.cs
+++ OfflineServer/Server.cs
@@ -45,6 +45,7 @@

             Byte[] baResponseArray = null;

+            Console.WriteLine("       + + ++ + : " + e.Request.Path);
             /*if (e.Request.Path.EndsWith("/carslots"))
             {
                 baResponseArray = GetResponseData(Access.CurrentSession.ActivePersona.GetCompleteGarage());
@@ -53,6 +54,11 @@
             if (File.Exists(currentIOPath))
             {
                 baResponseArray = GetResponseData(currentIOPath);
+            }
+            if (e.Request.Path.Contains("SecureLogin"))
+            {
+                Access.sXmpp.initialize();
+                Access.sXmpp.doLogin(Access.CurrentSession.ActivePersona.Id);
             }
             if (baResponseArray == null) baResponseArray = GetResponseData("<Trans/>");
             e.Response.OutputStream.Write(baResponseArray, 0, baResponseArray.Length);
@@ -116,7 +122,7 @@
             return request;
         }

-        public async void write(String message, Boolean isSSL = true)
+        public async Task write(String message, Boolean isSSL = true)
         {
             File.AppendAllText("log.txt", DateTime.Now.ToLongTimeString() + " WRITE: " + message + "\r\n");
             byte[] msg = Encoding.ASCII.GetBytes(message);
@@ -126,7 +132,7 @@
                 await stream.WriteAsync(msg, 0, msg.Length, ct).ConfigureAwait(false);
         }

-        public abstract void initialize(TcpClient client);
+        public abstract void initialize();
         public abstract void doHandshake();
         public abstract void doHandshakeWithSSL();
         public abstract void doLogin(UInt32 newPersonaId);
@@ -144,20 +150,18 @@
             jidPrepender = "nfsw";
             listener = new TcpListener(IPAddress.Parse("127.0.0.1"), port);
             listener.Start();
-            initialize(null);
-        }
-
-        public override async void initialize(TcpClient client)
+        }
+
+        public override async void initialize()
         {
             cts = new CancellationTokenSource();
             ct = cts.Token;
-            this.client = client == null ? (await listener.AcceptTcpClientAsync().ConfigureAwait(false)) : client;
-            stream = this.client.GetStream();
-            this.client.Client.NoDelay = true;
-            this.client.NoDelay = true;
-            doLogin(Access.CurrentSession.ActivePersona.Id);
-        }
-
+            client = await listener.AcceptTcpClientAsync().ConfigureAwait(false);
+            stream = client.GetStream();
+            client.Client.NoDelay = true;
+            client.NoDelay = true;
+        }
+
         public override void doLogin(UInt32 newPersonaId)
         {
             this.personaId = newPersonaId;
@@ -170,59 +174,48 @@
         public override async void doHandshake()
         {
             List<String> packets = new List<String>();
-            packets.AddRange(new string[] {"<stream:stream xmlns='jabber:client' xml:lang='en' xmlns:stream='http://etherx.jabber.org/streams' from='127.0.0.1' id='174159513' version='1.0'><stream:features/>",
-            String.Format("<iq id='EA-Chat-1' type='result' xml:lang='en'><query xmlns='jabber:iq:auth'><username>{0}.{1}</username><password/><digest/><resource/><clientlock xmlns='http://www.jabber.com/schemas/clientlocking.xsd'/></query></iq>", jidPrepender, personaId),
-            "<iq id='EA-Chat-2' type='result' xml:lang='en'/>",
-            String.Format("<presence from='channel.en__1@conference.127.0.0.1' to='{0}.{1}@127.0.0.1/EA-Chat' type='error'><error code='401' type='auth'><not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error><x xmlns='http://jabber.org/protocol/muc'/></presence>", jidPrepender, personaId) });
+            packets.AddRange(new string[] {
+                "<stream:stream xmlns='jabber:client' xml:lang='en' xmlns:stream='http://etherx.jabber.org/streams' from='127.0.0.1' id='174159513' version='1.0'><stream:features/>",
+                String.Format("<iq id='EA-Chat-1' type='result' xml:lang='en'><query xmlns='jabber:iq:auth'><username>{0}.{1}</username><password/><digest/><resource/><clientlock xmlns='http://www.jabber.com/schemas/clientlocking.xsd'/></query></iq>", jidPrepender, personaId),
+                "<iq id='EA-Chat-2' type='result' xml:lang='en'/>",
+                String.Format("<presence from='channel.en__1@conference.127.0.0.1' to='{0}.{1}@127.0.0.1/EA-Chat' type='error'><error code='401' type='auth'><not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error><x xmlns='http://jabber.org/protocol/muc'/></presence>", jidPrepender, personaId)
+            });

             for (int packetCount = 0; packetCount < packets.Count; packetCount++)
             {
                 File.AppendAllText("log.txt", "packetCount: " + packetCount + " \r\n");
-                if (packetCount == 3)
+                if (packetCount < 3)
                 {
-                    string received = "";
+                    await read(false).ConfigureAwait(false);
+                }
+                else
+                {
                     while (!ct.IsCancellationRequested)
                     {
-                        received = read(false).Result;
+                        string received = await read(false).ConfigureAwait(false);
                         if (received.StartsWith("<presence to")) break;
                     }
                 }
-                else
+                await write(packets[packetCount], false).ConfigureAwait(false);
+            }
+            listenLoop();
+        }
+        public override void doHandshakeWithSSL()
+        {
+            throw new NotImplementedException();
+        }
+        public override async void listenLoop()
+        {
+            while (!ct.IsCancellationRequested)
+            {
+                string packet = await read(false).ConfigureAwait(false);
+                if (packet.Contains("</stream:stream>"))
                 {
-                    await read(false);
+                    await write("</stream:stream>", false).ConfigureAwait(false);
+                    cts.Cancel();
+                    client.Close();
+                    break;
                 }
-                write(packets[packetCount], false);
-            }
-            listenLoop();
-        }
-        public override void doHandshakeWithSSL()
-        {
-            throw new NotImplementedException();
-        }
-        public override async void listenLoop()
-        {
-            while (!ct.IsCancellationRequested)
-            {
-                while (true)
-                {
-                    String packet = await read(false);
-                    if (packet.Contains("</stream:stream>"))
-                        break;
-                }
-                cts.Cancel();
-                client.Client.Close();
-                client.Close();
-
-                //wait for new login;
-                //if there isn't one for 30 seconds, drop the connection and retry
-                var timeoutTask = TaskEx.Delay(TimeSpan.FromSeconds(30));
-                var clientAcceptTask = listener.AcceptTcpClientAsync();
-                var completedTask = await TaskEx.WhenAny(timeoutTask, clientAcceptTask).ConfigureAwait(false);
-
-                TcpClient resultClient = null;
-                if (completedTask != timeoutTask) resultClient = clientAcceptTask.Result;
-
-                initialize(resultClient);
             }
         }


Added model loaded + trigger label changed on function setlabel

--- framework/csCommonSense/Types/DataServer/PoI/Poi.cs
+++ framework/csCommonSense/Types/DataServer/PoI/Poi.cs
@@ -23,6 +23,18 @@
             Labels = new Dictionary<string, string>();
         }

+        public event EventHandler<IModelPoiInstance> OnModelLoaded;
+
+        public void RaiseOnModelLoaded(IModelPoiInstance pModel)
+        {
+            var handler = OnModelLoaded;
+            if (handler != null) OnModelLoaded(this, pModel);
+            if (this.Service != null)
+            {
+                this.Service.RaiseModelLoaded(this, pModel);
+            }
+        }
+
         public bool IsSelected
         {
             get { return isSelected; }
@@ -138,11 +150,26 @@

         public event EventHandler<PoiSelectedEventArgs> Selected;

-        public void SetLabel(string key, string value)
-        {
+        public void SetLabel(string key, string value, bool callLabelChanged = false)
+        {
+            string oldValue = "";
+            if (callLabelChanged)
+            {
+                Labels.TryGetValue(key, out oldValue);
+            }
             Labels[key] = value;
             NotifyOfPropertyChange(() => Labels);
-        }
+            // TriggerLabelChanged MUST be called!
+            // If not: the label is not saved / synchronised
+            // See also comment MetaLabel.cs from Arnould
+            /* property callLabelChanged added for backward compatible; don't change working of old code.. */
+            if (callLabelChanged)
+            {
+                if (oldValue != value) TriggerLabelChanged(key, oldValue, value);
+        }
+        }
+
+

         public object Clone()
         {


Added comment

Added comment

--- SpaceGame/Game/Game.cs
+++ SpaceGame/Game/Game.cs
@@ -9,7 +9,7 @@
         // Set console max width and height
         private const int maxWidth = 40;
         private const int maxHeight = 40;
-
+
         // Keeps the x coordinate of our spaceship position
         static readonly int playerPosX = Console.BufferWidth / 2;
         static readonly int playerPosY = Console.BufferHeight - 1;
@@ -24,11 +24,14 @@

         // Set spaceships and shots icons
         private const char playerIcon = 'Ä';
+
+        // Multiple meteors
         public static char[] enemyIcons = new char[] { '#', '*', '@' };
         private const char shotIcon = '"';

         // Set spaceships and shots colors
         private const ConsoleColor playerColor = ConsoleColor.Cyan;
+
         public static ConsoleColor[] enemiesColors =  {ConsoleColor.Red, ConsoleColor.DarkCyan,
                                                       ConsoleColor.Blue, ConsoleColor.Magenta,
                                                       ConsoleColor.DarkYellow, ConsoleColor.DarkRed,


#6 Fixed crash

#6 Fixed crash

--- SteamShutdown/Steam.cs
+++ SteamShutdown/Steam.cs
@@ -80,7 +80,7 @@
         {
             AppInfo newInfo = new AppInfo
             {
-                ID = int.Parse((json.appid ?? json.appID).ToString()),
+                ID = int.Parse((json.appid ?? json.appID ?? json.AppID).ToString()),
                 Name = json.name ?? json.installdir,
                 State = int.Parse(json.StateFlags.ToString())
             };


Implemented Websocket methods

Implemented Websocket methods

--- binance-dotnet/Binance.cs
+++ binance-dotnet/Binance.cs
@@ -1052,16 +1052,4 @@

     }
-    //public class WebSocketUpdateReceivedEventArgs : EventArgs
-    //{
-    //    public WebSocketUpdateReceivedEventArgs(string message, bool connectionOpen)
-    //    {
-    //        Message = message;
-    //        ConnectionOpen = connectionOpen;
-    //        Timestamp = DateTime.Now;
-    //    }
-    //    public bool ConnectionOpen { get; set; }
-    //    public string Message { get; set; }
-    //    public DateTime Timestamp { get; set; }
-    //}
 }


Minor refactoring.

Minor refactoring.

--- src/AbpODataDemo.WebApi/AbpODataDemoWebApiModule.cs
+++ src/AbpODataDemo.WebApi/AbpODataDemoWebApiModule.cs
@@ -11,7 +11,10 @@
     {
         public override void PreInitialize()
         {
-            Configuration.Modules.AbpWebApiOData().ODataModelBuilder.EntitySet<Person>("Persons");
+            var builder = Configuration.Modules.AbpWebApiOData().ODataModelBuilder;
+
+            //Configure your entities here...
+            builder.EntitySet<Person>("Persons");
         }

         public override void Initialize()


Remove "Unimplemented clientbound packet" messages as the information is never up 2 date anyways

--- src/Alex.Networking/Java/Packets/MCPacketFactory.cs
+++ src/Alex.Networking/Java/Packets/MCPacketFactory.cs
@@ -286,7 +286,7 @@
 			Register(Direction.ClientBound, ConnectionState.Play, 0x39, () => new RespawnPacket());
 			Register(Direction.ClientBound, ConnectionState.Play, 0x4C, () => new TitlePacket());
 			Register(Direction.ClientBound, ConnectionState.Play, 0x1b, () => new DisconnectPacket());
-			var deserial = JsonConvert.DeserializeObject<Dictionary<string, string>>(Resources.PlayPacketID);
+			/*var deserial = JsonConvert.DeserializeObject<Dictionary<string, string>>(Resources.PlayPacketID);
 			foreach (var d in deserial)
 			{
 				try
@@ -304,7 +304,7 @@
 				{
 					Log.Warn($"Failed to parse hex number...");
 				}
-			}
+			}*/
 		}

 		private static Dictionary<int, string> _playPacketNames = new Dictionary<int, string>();


Fix AnimationExtensions

Fix AnimationExtensions

--- src/AppStudio.Uwp/Extensions/AnimationExtensions.cs
+++ src/AppStudio.Uwp/Extensions/AnimationExtensions.cs
@@ -42,7 +42,7 @@

         public static Storyboard AnimateWidth(this FrameworkElement element, double width, double duration = 250, EasingFunctionBase easingFunction = null)
         {
-            if (element.Width != width)
+            if (element.ActualWidth != width)
             {
                 return AnimateDoubleProperty(element, "Width", element.ActualWidth, width, duration, easingFunction);
             }
@@ -50,7 +50,7 @@
         }
         public static async Task AnimateWidthAsync(this FrameworkElement element, double width, double duration = 250, EasingFunctionBase easingFunction = null)
         {
-            if (element.Width != width)
+            if (element.ActualWidth != width)
             {
                 await AnimateDoublePropertyAsync(element, "Width", element.ActualWidth, width, duration, easingFunction);
             }


Samle for Kirill

Samle for Kirill

--- src/Astral/Payloads/DataContracts/Contract.Tools.cs
+++ src/Astral/Payloads/DataContracts/Contract.Tools.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Immutable;
+using System.Xml.Linq;
 using FunEx;

 namespace Astral.Payloads.DataContracts
@@ -14,6 +15,30 @@
             }

             return Make;
+        }
+
+        public static Func<Func<Type, Result<string>>, Func<Type, Result<string>>> Lift(
+            Func<Type, Result<string>> lifting) => _ => lifting;
+
+        public static Func<Func<Type, Result<string>>, Func<Type, Result<string>>> Fallback(
+            this Func<Func<Type, Result<string>>, Func<Type, Result<string>>> source,
+            Func<Func<Type, Result<string>>, Func<Type, Result<string>>> fallback)
+            => p => (t => source(p)(t).OrElse(() => source(p)(t)));
+
+        public static Func<Type, Result<string>> Loopback(Func<Func<Type, Result<string>>, Func<Type, Result<string>>> source)
+        {
+            Result<string> Make(Type type)
+            {
+                Result<string> Checked(Type tt)
+                {
+                    if (tt == type)
+                        return new RecursiveResolutionException(tt);
+                    return Make(tt);
+
+                }
+
+                return source(Checked)(type);
+            }
         }

         public static TypeToContract Fallback(this TypeToContract source, TypeToContract fallback)


Update test to verify that AM.Collection is using for the mapping and updating the existing entity instead of replacing it.

--- src/AutoMapper.Collection.Tests/NotExistingTests.cs
+++ src/AutoMapper.Collection.Tests/NotExistingTests.cs
@@ -17,7 +17,7 @@
             });
             IMapper mapper = new Mapper(configuration);

-            var system = new System
+            var originalModel = new System
             {
                 Name = "My First System",
                 Contacts = new List<Contact>
@@ -36,10 +36,16 @@
                 }
             };

-            var model = mapper.Map<SystemViewModel>(system);
-            model.Name.Should().Be(system.Name);
-            model.Contacts.Single().Name.Should().Be(system.Contacts.Single().Name);
-            model.Contacts.Single().Emails.Single().Address.Should().Be(system.Contacts.Single().Emails.Single().Address);
+            var originalEmail = originalModel.Contacts.Single().Emails.Single();
+
+            var assertModel = mapper.Map<SystemViewModel>(originalModel);
+            assertModel.Name.Should().Be(originalModel.Name);
+            assertModel.Contacts.Single().Name.Should().Be(originalModel.Contacts.Single().Name);
+            assertModel.Contacts.Single().Emails.Single().Address.Should().Be(originalModel.Contacts.Single().Emails.Single().Address);
+
+            mapper.Map(assertModel, originalModel);
+            // This tests if equality was found and mapped to pre-existing object and not defaulting to AM and clearing and regenerating the list
+            originalModel.Contacts.Single().Emails.Single().Should().Be(originalEmail);
         }

         public class System


Check for null VirtualizingPanel.

Check for null VirtualizingPanel.

The panel may not have been created when the virtualization mode is changed - handle that. Fixes #634.

--- src/Avalonia.Controls/Presenters/ItemVirtualizer.cs
+++ src/Avalonia.Controls/Presenters/ItemVirtualizer.cs
@@ -185,8 +185,12 @@
         /// <inheritdoc/>
         public virtual void Dispose()
         {
-            VirtualizingPanel.Controller = null;
-            VirtualizingPanel.Children.Clear();
+            if (VirtualizingPanel != null)
+            {
+                VirtualizingPanel.Controller = null;
+                VirtualizingPanel.Children.Clear();
+            }
+
             Owner.ItemContainerGenerator.Clear();
         }


Remove no longer needed display name fallback

--- src/Arkivverket.Arkade.Core/Base/ArkadeTestNameProvider.cs
+++ src/Arkivverket.Arkade.Core/Base/ArkadeTestNameProvider.cs
@@ -1,4 +1,3 @@
-using Arkivverket.Arkade.Core.Base.Addml.Processes;
 using Arkivverket.Arkade.Core.Resources;
 using Arkivverket.Arkade.Core.Util;

@@ -12,11 +11,7 @@

             string testName = GetTestName(testId);

-            string displayName = testName != null
-                ? string.Format(ArkadeTestDisplayNames.DisplayNameFormat, testId, testName)
-                : GetFallBackDisplayName(arkadeTest);
-
-            return displayName;
+            return string.Format(ArkadeTestDisplayNames.DisplayNameFormat, testId, testName);
         }

         private static string GetTestName(TestId testId)
@@ -28,17 +23,5 @@

             return ArkadeTestDisplayNames.ResourceManager.GetString(resourceDisplayNameKey);
         }
-
-        private static string GetFallBackDisplayName(IArkadeTest arkadeTest)
-        {
-            try
-            {
-                return ((AddmlProcess) arkadeTest).GetName(); // Process name
-            }
-            catch
-            {
-                return arkadeTest.GetType().Name; // Class name
-            }
-        }
     }
 }


Unescape volumes labels read from /dev/disk/by-label folder

This makes volumes with labels containing some special characters (e.g.
whitespace, tab, etc.) to show up correctly in the ManagedFileChooser
dialog.

--- src/Avalonia.FreeDesktop/LinuxMountedVolumeInfoListener.cs
+++ src/Avalonia.FreeDesktop/LinuxMountedVolumeInfoListener.cs
@@ -41,6 +41,8 @@

         private string UnescapePathFromProcMounts(string input) => UnescapeString(input, @"\\(\d{3})", 8);

+        private string UnescapeDeviceLabel(string input) => UnescapeString(input, @"\\x([0-9a-f]{2})", 16);
+
         private void Poll(long _)
         {
             var fProcPartitions = File.ReadAllLines(ProcPartitionsDir)
@@ -59,7 +61,7 @@
                                new DirectoryInfo(DevByLabelDir).GetFiles() : Enumerable.Empty<FileInfo>();

             var labelDevPathPairs = labelDirEnum
-                                    .Select(x => (GetSymlinkTarget(x.FullName), x.Name));
+                                    .Select(x => (GetSymlinkTarget(x.FullName), UnescapeDeviceLabel(x.Name)));

             var q1 = from mount in fProcMounts
                      join device in fProcPartitions on mount.Item1 equals device.Item2
@@ -69,7 +71,7 @@
                      {
                          VolumePath = mount.Item2,
                          VolumeSizeBytes = device.Item1,
-                         VolumeLabel = x.Name
+                         VolumeLabel = x.Item2
                      };

             var mountVolInfos = q1.ToArray();


Optimize blacklist status check

Optimize blacklist status check

Only check status of blacklisted partitions after a response has been
received (producer).

Change-Id: I24fdf7c5408da4619a83b4d22f55213752e5dfcf

--- kafka-sharp/kafka-sharp/Routing/ProducerRouter.cs
+++ kafka-sharp/kafka-sharp/Routing/ProducerRouter.cs
@@ -437,7 +437,6 @@
         {
             try
             {
-                UpdatePartitionsBlacklist();
                 switch (messageType)
                 {
                     // In this case we prioritize reading produce responses
@@ -450,6 +449,7 @@
                         ProduceAcknowledgement response;
                         if (_produceResponses.TryDequeue(out response))
                         {
+                            UpdatePartitionsBlacklist();
                             if (response.ProduceResponse.TopicsResponse != null)
                             {
                                 await HandleProduceAcknowledgement(response);


echo PhpArray fix

echo PhpArray fix

--- src/Compiler/PhpCodeAnalysis/CodeGen/CodeGenerator.Emit.cs
+++ src/Compiler/PhpCodeAnalysis/CodeGen/CodeGenerator.Emit.cs
@@ -678,6 +678,7 @@
                     }
                     else if (type == CoreTypes.PhpArray)
                     {
+                        this.EmitLoadContext();
                         EmitCall(ILOpCode.Call, CoreMethods.PhpArray.ToString_Context).Expect(SpecialType.System_String);
                         method = CoreMethods.Operators.Echo_String.Symbol;
                     }


Resolve Cross-Platform Problems with Output

Line endings were failing during CI testing due to running on a
non-Windows platform.

--- src/dbup-tests/Support/SqlServer/SqlScriptExecutorTests.cs
+++ src/dbup-tests/Support/SqlServer/SqlScriptExecutorTests.cs
@@ -226,13 +226,16 @@
             command.CommandText.ShouldBe("SELECT * FROM [foo].[Table]");

             logger.Log.Trim()
-                      .ShouldBe(@"Info:         Executing Database Server script 'Test'
-Info:         -------------
-Info:         | One | Two |
-Info:         -------------
-Info:         |   A |   B |
-Info:         -------------
-Info:");
+                      .ShouldBe(string.Join(Environment.NewLine, new[]
+                      {
+                          "Info:         Executing Database Server script 'Test'",
+                          "Info:         -------------",
+                          "Info:         | One | Two | ",
+                          "Info:         -------------",
+                          "Info:         |   A |   B | ",
+                          "Info:         -------------",
+                          "Info:"
+                      }));
         }

         [Fact]


wrong comment

wrong comment

--- ksp_plugin_adapter/planetarium_camera_adjuster.cs
+++ ksp_plugin_adapter/planetarium_camera_adjuster.cs
@@ -73,9 +73,6 @@
           camera_roll;
     }
     if (camera_roll_ != 0) {
-      // Progressively bring camera roll down to 0.  Since we do not reorient
-      // the camera when paused, keep camera roll in that case, so that there is
-      // no sudden change when unpausing.
       // TODO(egg): Should we be doing this in LateUpdate?
       const double roll_change_per_frame = 0.1 /*radians*/;
       if (Math.Abs(camera_roll_) < roll_change_per_frame) {


Add ResourceParameters.None

Add ResourceParameters.None

--- src/Glimpse.Server.Web/Framework/ResourceParameters.cs
+++ src/Glimpse.Server.Web/Framework/ResourceParameters.cs
@@ -1,3 +1,4 @@
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -9,6 +10,8 @@
         public ResourceParameters()
         {
         }
+
+        public static  ResourceParameters None { get; } = new ResourceParameters();

         public ResourceParameters(params ResourceParameter[] resourceParameters)
         {
@@ -25,6 +28,9 @@

         public string GenerateUriTemplate()
         {
+            if (Count == 0)
+                return string.Empty;
+
             var sb = new StringBuilder();

             var requiredParams = this.Where(p => p.IsRequired).ToArray();


Update interceptors example to use new GetValue method (#1624)

--- examples/Interceptor/Server/ServerLoggerInterceptor.cs
+++ examples/Interceptor/Server/ServerLoggerInterceptor.cs
@@ -94,8 +94,8 @@

             void WriteMetadata(Metadata headers, string key)
             {
-                var headerValue = headers.SingleOrDefault(h => h.Key == key)?.Value;
-                _logger.LogWarning($"{key}: {headerValue ?? "(unknown)"}");
+                var headerValue = headers.GetValue(key) ?? "(unknown)";
+                _logger.LogWarning($"{key}: {headerValue}");
             }
         }
     }


added damage chat channel in enums

added damage chat channel in enums

--- TCC.Core/Data/Enums.cs
+++ TCC.Core/Data/Enums.cs
@@ -89,6 +89,7 @@
         Enchant9 = 315, //arbitrary
         WorldBoss = 316, //arb
         Laurel = 317,
+        Damage = 318,
         TCC = 1000,
         Twitch = 1001
     }


Added Directory Tree Assembly loading for NetFramework

--- src/GladLive.Module.System.Server/Services/ModuleLoader.cs
+++ src/GladLive.Module.System.Server/Services/ModuleLoader.cs
@@ -31,22 +31,46 @@

 		private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
 		{
-			foreach(string path in Directory.GetDirectories(Directory.GetCurrentDirectory()).Concat(new string[] { Directory.GetCurrentDirectory() }))
+			Assembly ass = null;
+			string pathName = args.Name.Contains(".dll") ? args.Name : $"{args.Name}.dll";
+
+			if (File.Exists(pathName))
+				ass = Assembly.Load(File.ReadAllBytes(pathName));
+
+			if (ass != null)
+				return ass;
+			else
+				ass = TryResolveFromDirectory(Directory.GetCurrentDirectory(), args.Name);
+
+			throw new InvalidOperationException($"Unable to find required assembly in any subdirectory. Name: {args.Name}");
+		}
+
+		private static Assembly TryResolveFromDirectory(string path, string pathName)
+		{
+			foreach (string subDir in Directory.GetDirectories(path))
 			{
-				try
-				{
-					Assembly ass = Assembly.LoadWithPartialName(Path.Combine(path,args.Name).TrimEnd(".dll".ToArray()));
+				Assembly ass = null;

-					if (ass != null)
-						return ass;
-				}
-				catch(Exception e)
-				{
-					continue;
-				}
+				if (File.Exists(Path.Combine(path, pathName)))
+					ass = Assembly.Load(File.ReadAllBytes(Path.Combine(path, pathName)));
+
+				if (ass != null)
+					return ass;
 			}

-			throw new InvalidOperationException($"Unable to find required assembly in any subdirectory. Name: {args.Name}");
+			//recurse to subdirectories
+			foreach (string subDir in Directory.GetDirectories(path))
+			{
+				Assembly ass = TryResolveFromDirectory(subDir, pathName);
+
+				if (ass == null)
+					continue;
+				else
+					return ass;
+			}
+
+			//Wasn't in this tree
+			return null;
 		}
 #else
 		static ModuleLoader()


Fix unhandled exception getting build id (#268)

--- src/Microsoft.Diagnostics.Runtime/src/Linux/ElfFile.cs
+++ src/Microsoft.Diagnostics.Runtime/src/Linux/ElfFile.cs
@@ -4,6 +4,7 @@

 using System;
 using System.Collections.Generic;
+using System.IO;
 using System.Linq;
 using System.Text;

@@ -53,10 +54,18 @@
         {
             get
             {
-                foreach (ElfNote note in Notes)
-                    if (note.Type == ElfNoteType.PrpsInfo && note.Name.Equals("GNU"))
-                        return note.ReadContents(0, (int)note.Header.ContentSize);
-
+                if (Header.ProgramHeaderOffset != IntPtr.Zero && Header.ProgramHeaderEntrySize > 0 && Header.ProgramHeaderCount > 0)
+                {
+                    try
+                    {
+                        foreach (ElfNote note in Notes)
+                            if (note.Type == ElfNoteType.PrpsInfo && note.Name.Equals("GNU"))
+                                return note.ReadContents(0, (int)note.Header.ContentSize);
+                    }
+                    catch (IOException)
+                    {
+                    }
+                }
                 return null;
             }
         }


found bug - now testgraph13 works. Pretty sure cycle3 is ok too

--- PacePrototype/Faster.cs
+++ PacePrototype/Faster.cs
@@ -131,7 +131,7 @@
                 return new Tuple<int, HashSet<Edge<int>>>(k, addedEdges);

             // Find four cycle
-            List<int> cycle = FindFourCycle2(graph); //has to return four cycle in topological order
+            List<int> cycle = FindFourCycle3BUGGY(graph); //has to return four cycle in topological order
             if (cycle != null)
             {
                 //if (FindFourCycle3BUGGY(graph) == null) // || !FindFourCycle2(graph).SequenceEqual(FindFourCycle3BUGGY(graph))) // only for debug
@@ -184,7 +184,7 @@
                 var tup1 = FasterInner(graph, k - 1, r1, marked1, new List<Edge<int>> { newEdge1 }, analysis.Moplexes, addedEdges1);
                 var k1 = tup1.Item1;
                 var e1 = tup1.Item2;
-                var tup2 = FasterInner(clone, k - 1, r2, marked2, new List<Edge<int>> { newEdge2 }, analysis.Moplexes, addedEdges1);
+                var tup2 = FasterInner(clone, k - 1, r2, marked2, new List<Edge<int>> { newEdge2 }, analysis.Moplexes, addedEdges2);
                 var k2 = tup2.Item1;
                 var e2 = tup2.Item2;
                 if (k1 > k2)
@@ -210,20 +210,7 @@

             //simplicial moplex with only unmarked vertices
             List<List<int>> unmarkedMoplexes = analysis.Moplexes.Where(vl => vl.TrueForAll(v => !marked.Contains(v))).ToList();
-            List<List<int>> simplicialUnmarked = unmarkedMoplexes.Where(vl =>
-            {
-                var neighbourhood = new HashSet<int>();
-
-                foreach (var v in vl)
-                {
-                    foreach (var e in graph.AdjacentEdges(v))
-                    {
-                        neighbourhood.Add(e.GetOtherVertex(v));
-                    }
-                }
-
-                return IsClique2(neighbourhood, graph);
-            }).ToList();
+            List<List<int>> simplicialUnmarked = unmarkedMoplexes.Where(vl => IsClique2(Neighbourhood(vl, graph),graph)).ToList();

             if (simplicialUnmarked.Count > 0)
             {
@@ -309,6 +296,10 @@
                 }
                 var missingEdges = MissingEdges(neighbourhood, analysis.NeighbourLabels);
                 graph2.AddEdgeRange(missingEdges);
+                foreach (var e in missingEdges)
+                {
+                    addedEdges2.Add(e);
+                }
                 var k2 = k - (missingEdges.Count);
                 var tup2 = FasterInner(graph2, k2, r, marked, missingEdges, analysis.Moplexes, addedEdges2);
                 var b2 = tup2.Item1;
@@ -322,6 +313,21 @@

             return new Tuple<int, HashSet<Edge<int>>>(-1, null); //should never happen
+        }
+
+        private static HashSet<int> Neighbourhood(List<int> moplex, UndirectedGraph<int, Edge<int>> graph)
+        {
+            var neighbourhood = new HashSet<int>();
+
+            foreach (var v in moplex)
+            {
+                foreach (var e in graph.AdjacentEdges(v))
+                {
+                    neighbourhood.Add(e.GetOtherVertex(v));
+                }
+            }
+
+            return neighbourhood;
         }

         private static HashSet<T> CloneSet<T>(HashSet<T> org)


Hide setwd return

Hide setwd return

--- src/Host/Client/Impl/Session/RSessionEvaluationCommands.cs
+++ src/Host/Client/Impl/Session/RSessionEvaluationCommands.cs
@@ -87,7 +87,7 @@
 @"utils::assignInNamespace('setwd', function(dir) {
     old <- .Internal(setwd(dir))
     invisible(.Call('Microsoft.R.Host::Call.send_message', '~/', rtvs:::toJSON(dir)))
-    old
+    invisible(old)
   }, 'base')";
             return evaluation.EvaluateAsync(script);
         }


Disable tls-sni-01 for new certs

Disable tls-sni-01 for new certs

--- src/Certify.UI/Controls/ManagedItemSettings.xaml.cs
+++ src/Certify.UI/Controls/ManagedItemSettings.xaml.cs
@@ -61,6 +61,12 @@
                 return false;
             }

+            if (item.Id == null && item.RequestConfig.ChallengeType == SupportedChallengeTypes.CHALLENGE_TYPE_SNI)
+            {
+                MessageBox.Show("Sorry, the tls-sni-01 challenge type is not longer supported by Let's Encrypt for new certificates.", SR.SaveError, MessageBoxButton.OK, MessageBoxImage.Error);
+                return false;
+            }
+
             if (String.IsNullOrEmpty(item.Name))
             {
                 MessageBox.Show(SR.ManagedItemSettings_NameRequired, SR.SaveError, MessageBoxButton.OK, MessageBoxImage.Error);


Game.{Black,White} -> GamePlayer type

Game.{Black,White} -> GamePlayer type

--- src/ChessVariantsTraining/Models/Variant960/Game.cs
+++ src/ChessVariantsTraining/Models/Variant960/Game.cs
@@ -40,10 +40,10 @@
         public string ID { get; set; }

         [BsonElement("white")]
-        public int? White { get; set; }
+        public GamePlayer White { get; set; }

         [BsonElement("black")]
-        public int? Black { get; set; }
+        public GamePlayer Black { get; set; }

         [BsonElement("outcome")]
         public string Outcome { get; set; }
@@ -57,7 +57,7 @@
         [BsonIgnore]
         public ChessGame ChessGame { get; set; }

-        public Game(int? white, int? black, string variant, string fen)
+        public Game(GamePlayer white, GamePlayer black, string variant, string fen)
         {
             White = white;
             Black = black;


Scrolling goes now in correct direction

Scrolling goes now in correct direction

--- src/DatenMeister.WPF/Forms/Base/ItemListViewGrid.cs
+++ src/DatenMeister.WPF/Forms/Base/ItemListViewGrid.cs
@@ -120,7 +120,7 @@

         protected override void OnMouseWheel(MouseWheelEventArgs e)
         {
-            _scrollVertical.Value += e.Delta / 120.0;
+            _scrollVertical.Value -= e.Delta / 120.0;
             base.OnMouseWheel(e);
         }


fix(de-serializer): do not dasherize a public name

--- src/JsonApiDotNetCore/Serialization/JsonApiDeSerializer.cs
+++ src/JsonApiDotNetCore/Serialization/JsonApiDeSerializer.cs
@@ -93,7 +93,7 @@
                     throw new ArgumentException($"{contextEntity.EntityType.Name} does not contain an attribute named {attr.InternalAttributeName}", nameof(entity));

                 object newValue;
-                if (attributeValues.TryGetValue(attr.PublicAttributeName.Dasherize(), out newValue))
+                if (attributeValues.TryGetValue(attr.PublicAttributeName, out newValue))
                 {
                     var convertedValue = TypeHelper.ConvertType(newValue, entityProperty.PropertyType);
                     entityProperty.SetValue(entity, convertedValue);


Fixed specs to match with Win81 behavior

Timings should only be updated after closing the file handle.
This implementation assumes that NtfsDisableLastAccessUpdate = 0
(non-default).

--- src/Fakes.Tests/Specs/FakeFile/FakeFileTimeSpecs.cs
+++ src/Fakes.Tests/Specs/FakeFile/FakeFileTimeSpecs.cs
@@ -439,13 +439,12 @@
             // Act
             using (fileSystem.File.Create(path))
             {
-                // TODO: Verify if these assertions are correct.
-
-                // Assert
-                fileSystem.File.GetCreationTimeUtc(path).Should().Be(createTimeUtc);
-                fileSystem.File.GetLastAccessTimeUtc(path).Should().Be(createTimeUtc);
-                fileSystem.File.GetLastWriteTimeUtc(path).Should().Be(createTimeUtc);
             }
+
+            // Assert
+            fileSystem.File.GetCreationTimeUtc(path).Should().Be(createTimeUtc);
+            fileSystem.File.GetLastAccessTimeUtc(path).Should().Be(createTimeUtc);
+            fileSystem.File.GetLastWriteTimeUtc(path).Should().Be(createTimeUtc);
         }

         [Fact]
@@ -461,21 +460,20 @@
                 .IncludingEmptyFile(path)
                 .Build();

+            DateTime writeTimeUtc = 3.January(2017).At(23, 11);
+
+            // Act
             using (IFileStream stream = fileSystem.File.Open(path, FileMode.Open))
             {
-                DateTime writeTimeUtc = 3.January(2017).At(23, 11);
                 SystemClock.UtcNow = () => writeTimeUtc;

-                // Act
                 stream.WriteByte(0x20);
-
-                // TODO: Verify if these assertions are correct.
-
-                // Assert
-                fileSystem.File.GetCreationTimeUtc(path).Should().Be(createTimeUtc);
-                fileSystem.File.GetLastWriteTimeUtc(path).Should().Be(writeTimeUtc);
-                fileSystem.File.GetLastAccessTimeUtc(path).Should().Be(writeTimeUtc);
             }
+
+            // Assert
+            fileSystem.File.GetCreationTimeUtc(path).Should().Be(createTimeUtc);
+            fileSystem.File.GetLastWriteTimeUtc(path).Should().Be(writeTimeUtc);
+            fileSystem.File.GetLastAccessTimeUtc(path).Should().Be(writeTimeUtc);
         }

         [Fact]
@@ -494,22 +492,20 @@
             DateTime accessTimeUtc = 5.January(2017).At(23, 11);
             SystemClock.UtcNow = () => accessTimeUtc;

-            using (IFileStream stream = fileSystem.File.Open(path, FileMode.Open))
+            // Act
+            using (IFileStream stream = fileSystem.File.Open(path, FileMode.Open, FileAccess.Read))
             {
-                // Act
                 stream.ReadByte();
-
-                // TODO: Verify if these assertions are correct.
-
-                // Assert
-                fileSystem.File.GetCreationTimeUtc(path).Should().Be(createTimeUtc);
-                fileSystem.File.GetLastWriteTimeUtc(path).Should().Be(createTimeUtc);
-                fileSystem.File.GetLastAccessTimeUtc(path).Should().Be(accessTimeUtc);
             }
-        }
-
-        [Fact(Skip = "TODO")]
-        private void When_opening_existing_file_it_must_update_timings()
+
+            // Assert
+            fileSystem.File.GetCreationTimeUtc(path).Should().Be(createTimeUtc);
+            fileSystem.File.GetLastWriteTimeUtc(path).Should().Be(createTimeUtc);
+            fileSystem.File.GetLastAccessTimeUtc(path).Should().Be(accessTimeUtc);
+        }
+
+        [Fact]
+        private void When_opening_existing_file_it_must_not_update_timings()
         {
             // Arrange
             const string path = @"C:\file.txt";
@@ -527,13 +523,12 @@
             // Act
             using (fileSystem.File.Open(path, FileMode.Open, FileAccess.Read))
             {
-                // TODO: Verify if these assertions are correct.
-
-                // Assert
-                fileSystem.File.GetCreationTimeUtc(path).Should().Be(createTimeUtc);
-                fileSystem.File.GetLastWriteTimeUtc(path).Should().Be(createTimeUtc);
-                fileSystem.File.GetLastAccessTimeUtc(path).Should().Be(accessTimeUtc);
             }
+
+            // Assert
+            fileSystem.File.GetCreationTimeUtc(path).Should().Be(createTimeUtc);
+            fileSystem.File.GetLastWriteTimeUtc(path).Should().Be(createTimeUtc);
+            fileSystem.File.GetLastAccessTimeUtc(path).Should().Be(createTimeUtc);
         }
     }
 }


copyright update

copyright update

--- src/MultipartDataMediaFormatter/Properties/AssemblyInfo.cs
+++ src/MultipartDataMediaFormatter/Properties/AssemblyInfo.cs
@@ -9,7 +9,7 @@
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("Alexander Kozlovskiy")]
 [assembly: AssemblyProduct("FormMultipartEncodedMediaTypeFormatter")]
-[assembly: AssemblyCopyright("Copyright © Alexander Kozlovskiy 2013")]
+[assembly: AssemblyCopyright("Copyright © Alexander Kozlovskiy 2014")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]


Ensure default state of assigned task is "Assigned"

--- AllReadyApp/Web-App/AllReady/Areas/Admin/Features/Tasks/AssignTaskCommandHandler.cs
+++ AllReadyApp/Web-App/AllReady/Areas/Admin/Features/Tasks/AssignTaskCommandHandler.cs
@@ -33,7 +33,8 @@
                         av = new TaskSignup
                         {
                             Task = task,
-                            User = volunteerUser
+                            User = volunteerUser,
+                            Status = TaskStatus.Assigned.ToString()
                         };
                     }
                     task.AssignedVolunteers.Add(av);


tests

tests

--- src/OpenInApp.Common.Tests/Helpers/OpenInAppHelperTests.cs
+++ src/OpenInApp.Common.Tests/Helpers/OpenInAppHelperTests.cs
@@ -32,8 +32,8 @@

         [Test()]
         [Category("I")]
-        //BEATEN TO IT - HAPPILY OPENS BOTH FILES [TestCase(@"C:\Windows\system32\notepad.exe", true, false)]
-        //BEATEN TO IT - HAPPILY OPENS BOTH FILES [TestCase(@"C:\Program Files (x86)\Vim\vim80\gvim.exe", true, null)]//with mouse - graphical vim
+        //////////BEATEN TO IT - HAPPILY OPENS BOTH FILES [TestCase(@"C:\Windows\system32\notepad.exe", true, false)]
+        //////////BEATEN TO IT - HAPPILY OPENS BOTH FILES [TestCase(@"C:\Program Files (x86)\Vim\vim80\gvim.exe", true, null)]//with mouse - graphical vim
         //nothing happens [TestCase(@"C:\Users\greg\AppData\Local\atom\app-1.13.1\atom.exe", false, null)]
         //nothing happens [TestCase(@"C:\Program Files (x86)\LINQPad4\LPRun.exe", false, null)]
         //nothing happens [TestCase(@"C:\Program Files (x86)\Vim\vim80\vim.exe", false, null)]//without mouse
@@ -105,7 +105,6 @@
         //works but args ignored even if single arg that is a directory [TestCase(@"C:\Program Files (x86)\DeDup\DeDup.exe", false)]
         //works but args ignored even if single arg that is a directory or jpg [TestCase(@"C:\Program Files (x86)\Windows Live\Photo Gallery\WLXPhotoGallery.exe", null)]
         //nothing happens [TestCase(@"C:\Program Files (x86)\DeDup\DeDup.exe", null)]
-        //nothing happens even with 1 file [TestCase(@"C:\Windows\system32\mspaint.exe", null)]
         public void InvokeCommandTest_ImageApps(string executableFullPath, bool separateProcessPerFileToBeOpened, bool useShellExecute)
         {
             // Arrange


Added wrapper divs to main and tripel in the t-machine.
Work item: 17029

--HG--
branch : dev

--- src/Orchard.Web/Themes/TheThemeMachine/Views/Layout.cshtml
+++ src/Orchard.Web/Themes/TheThemeMachine/Views/Layout.cshtml
@@ -75,6 +75,7 @@
     @Zone(Model.BeforeMain)

 }
+

     @if (Model.AsideFirst != null) {

@@ -110,12 +111,14 @@

     }

+

 @if (Model.AfterMain != null) {

     @Zone(Model.AfterMain)

 }
 @if (Model.TripelFirst != null || Model.TripelSecond != null || Model.TripelThird != null) {
+

@* as in beer *@
     @if (Model.TripelFirst != null) {

@@ -132,6 +135,7 @@
         @Zone(Model.TripelThird)

     }
+

 }


Lazy create ResourceInvoker.InvokeNextResultFilterAsync statemachine

--- src/Mvc/Mvc.Core/src/Infrastructure/ResourceInvoker.cs
+++ src/Mvc/Mvc.Core/src/Infrastructure/ResourceInvoker.cs
@@ -1312,7 +1312,7 @@
             }
         }

-        private async Task InvokeNextResultFilterAsync<TFilter, TFilterAsync>()
+        private Task InvokeNextResultFilterAsync<TFilter, TFilterAsync>()
             where TFilter : class, IResultFilter
             where TFilterAsync : class, IAsyncResultFilter
         {
@@ -1324,7 +1324,11 @@
                 var isCompleted = false;
                 while (!isCompleted)
                 {
-                    await ResultNext<TFilter, TFilterAsync>(ref next, ref scope, ref state, ref isCompleted);
+                    var lastTask = ResultNext<TFilter, TFilterAsync>(ref next, ref scope, ref state, ref isCompleted);
+                    if (!lastTask.IsCompletedSuccessfully)
+                    {
+                        return Awaited(this, lastTask, next, scope, state, isCompleted);
+                    }
                 }
             }
             catch (Exception exception)
@@ -1336,6 +1340,30 @@
             }

             Debug.Assert(_resultExecutedContext != null);
+
+            return Task.CompletedTask;
+
+            static async Task Awaited(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
+            {
+                try
+                {
+                    await lastTask;
+
+                    while (!isCompleted)
+                    {
+                        await invoker.ResultNext<TFilter, TFilterAsync>(ref next, ref scope, ref state, ref isCompleted);
+                    }
+                }
+                catch (Exception exception)
+                {
+                    invoker._resultExecutedContext = new ResultExecutedContext(invoker._actionContext, invoker._filters, invoker._result, invoker._instance)
+                    {
+                        ExceptionDispatchInfo = ExceptionDispatchInfo.Capture(exception),
+                    };
+                }
+
+                Debug.Assert(invoker._resultExecutedContext != null);
+            }
         }

         private async Task<ResultExecutedContext> InvokeNextResultFilterAwaitedAsync<TFilter, TFilterAsync>()


add loadRepositoriesManifestResultAction

--- Dewey/Dewey.CLI/Program.cs
+++ Dewey/Dewey.CLI/Program.cs
@@ -20,6 +20,7 @@
     class Program
     {
         private static ComponentAction componentAction;
+        private static Action<LoadRepositoriesManifestResult> loadRepositoriesManifestResultAction;

         static void Main(string[] args)
         {
@@ -37,6 +38,9 @@
                 case "deploy":
                     componentAction = DeployComponent;
                     break;
+                case "list":
+                    loadRepositoriesManifestResultAction = ListItems.WriteList;
+                    break;
                 default:
                     break;
             }
@@ -45,7 +49,7 @@

             loadRepositoriesManifestFileResult.WriteErrors();

-            ListItems.WriteList(loadRepositoriesManifestFileResult);
+            loadRepositoriesManifestResultAction(loadRepositoriesManifestFileResult);

             Console.ResetColor();
             Console.WriteLine("Continue...");


Fixed logging

Fixed logging

--- src/Mvc/MvcTemplates/N2/Content/LinkTracker/Tracker.cs
+++ src/Mvc/MvcTemplates/N2/Content/LinkTracker/Tracker.cs
@@ -235,7 +235,7 @@
 						.OrderBy(d => d.IntValue.Value)
 						.ToList();

-					logger.DebugFormat("Updating links on {0}. Details = {2}", referrer, trackerDetails.Count);
+					logger.DebugFormat("Updating links on {0}. Details = {1}", referrer, trackerDetails.Count);

 					for (int i = 0; i < trackerDetails.Count; i++)
 					{


Added the filename to the error message when failed to load settings

--- src/NUnitEngine/nunit.engine/Internal/SettingsStore.cs
+++ src/NUnitEngine/nunit.engine/Internal/SettingsStore.cs
@@ -89,7 +89,8 @@
             }
             catch (Exception ex)
             {
-                throw new ApplicationException("Error loading settings file", ex);
+                string msg = string.Format("Error loading settings {0}.", _settingsFile);
+                throw new ApplicationException(msg, ex);
             }
         }


Making Menus listable

Making Menus listable

--- src/Orchard.Cms.Web/Modules/Orchard.Menu/Migrations.cs
+++ src/Orchard.Cms.Web/Modules/Orchard.Menu/Migrations.cs
@@ -18,6 +18,7 @@
             _contentDefinitionManager.AlterTypeDefinition("Menu", menu => menu
                 .Draftable()
                 .Creatable()
+                .Listable()
                 .WithPart("TitlePart", part => part.WithPosition("1"))
                 .WithPart("AliasPart", part => part.WithPosition("2").WithSettings(new AliasPartSettings { Pattern = "{{slug}}" }))
                 .WithPart("MenuPart", part => part.WithPosition("3"))