added setters for supported jquery getter methods

--- src/Selenium.WebDriver.Extensions.JQuery/Models/ChainJQueryHelper.cs
+++ src/Selenium.WebDriver.Extensions.JQuery/Models/ChainJQueryHelper.cs
@@ -44,6 +44,17 @@
         }

         /// <summary>
+        /// Sets the inner text for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="text">The text to be set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Text(string text)
+        {
+            this.Set("text('" + text + "')");
+            return this;
+        }
+
+        /// <summary>
         /// Searches for DOM elements using jQuery selector and gets the HTML contents of the first element in the set
         /// of matched elements or set the HTML contents of every matched element.
         /// </summary>
@@ -54,6 +65,17 @@
         public string Html()
         {
             return this.Find<string>("html()");
+        }
+
+        /// <summary>
+        /// Sets the inner HTML for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="htmlString">The HTML string to be set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Html(string htmlString)
+        {
+            this.Set("html('" + htmlString + "')");
+            return this;
         }

         /// <summary>
@@ -65,6 +87,18 @@
         public string Attribute(string attributeName)
         {
             return this.Find<string>("attr('" + attributeName + "')");
+        }
+
+        /// <summary>
+        /// Sets the attribute value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="attributeName">The name of the attribute to set.</param>
+        /// <param name="attributeValue">The value of the attribute to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Attribute(string attributeName, string attributeValue)
+        {
+            this.Set("attr('" + attributeName + "', '" + attributeValue + "')");
+            return this;
         }

         /// <summary>
@@ -96,6 +130,97 @@
         }

         /// <summary>
+        /// Sets the property value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="propertyName">The name of the property to set.</param>
+        /// <param name="propertyValue">The value of the property to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Property(string propertyName, string propertyValue)
+        {
+            this.Set("prop('" + propertyName + "', '" + propertyValue + "')");
+            return this;
+        }
+
+        /// <summary>
+        /// Sets the property value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="propertyName">The name of the property to set.</param>
+        /// <param name="propertyValue">The value of the property to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Property(string propertyName, short propertyValue)
+        {
+            return this.Property(propertyName, Convert.ToDecimal(propertyValue));
+        }
+
+        /// <summary>
+        /// Sets the property value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="propertyName">The name of the property to set.</param>
+        /// <param name="propertyValue">The value of the property to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Property(string propertyName, int propertyValue)
+        {
+            return this.Property(propertyName, Convert.ToDecimal(propertyValue));
+        }
+
+        /// <summary>
+        /// Sets the property value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="propertyName">The name of the property to set.</param>
+        /// <param name="propertyValue">The value of the property to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Property(string propertyName, long propertyValue)
+        {
+            return this.Property(propertyName, Convert.ToDecimal(propertyValue));
+        }
+
+        /// <summary>
+        /// Sets the property value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="propertyName">The name of the property to set.</param>
+        /// <param name="propertyValue">The value of the property to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Property(string propertyName, float propertyValue)
+        {
+            return this.Property(propertyName, Convert.ToDecimal(propertyValue));
+        }
+
+        /// <summary>
+        /// Sets the property value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="propertyName">The name of the property to set.</param>
+        /// <param name="propertyValue">The value of the property to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Property(string propertyName, double propertyValue)
+        {
+            return this.Property(propertyName, Convert.ToDecimal(propertyValue));
+        }
+
+        /// <summary>
+        /// Sets the property value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="propertyName">The name of the property to set.</param>
+        /// <param name="propertyValue">The value of the property to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Property(string propertyName, decimal propertyValue)
+        {
+            this.Set("prop('" + propertyName + "', " + propertyValue + ")");
+            return this;
+        }
+
+        /// <summary>
+        /// Sets the property value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="propertyName">The name of the property to set.</param>
+        /// <param name="propertyValue">The value of the property to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Property(string propertyName, bool propertyValue)
+        {
+            this.Set("prop('" + propertyName + "', " + (propertyValue ? "true" : "false") + ")");
+            return this;
+        }
+
+        /// <summary>
         /// Searches for DOM elements using jQuery selector and gets the current value of the first element in the set
         /// of matched elements.
         /// </summary>
@@ -106,6 +231,17 @@
         }

         /// <summary>
+        /// Sets the value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Value(string value)
+        {
+            this.Set("val('" + value + "')");
+            return this;
+        }
+
+        /// <summary>
         /// Searches for DOM elements using jQuery selector and get the value of a style property for the first
         /// element in the set of matched elements or set one or more CSS properties for every matched element.
         /// </summary>
@@ -120,6 +256,18 @@
         }

         /// <summary>
+        /// Sets the CSS property value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="propertyName">The name of the CSS property to set.</param>
+        /// <param name="propertyValue">The value of the CSS property to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Value(string propertyName, string propertyValue)
+        {
+            this.Set("css('" + propertyName + "', '" + propertyValue + "')");
+            return this;
+        }
+
+        /// <summary>
         /// Searches for DOM elements using jQuery selector and gets the current computed width for the first element
         /// in the set of matched elements or set the width of every matched element.
         /// </summary>
@@ -133,6 +281,67 @@
         }

         /// <summary>
+        /// Sets the width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Width(short value)
+        {
+            return this.Width(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Width(int value)
+        {
+            return this.Width(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Width(long value)
+        {
+            return this.Width(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Width(float value)
+        {
+            return this.Width(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Width(double value)
+        {
+            return this.Width(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Width(decimal value)
+        {
+            this.Set("width(" + value + ")");
+            return this;
+        }
+
+        /// <summary>
         /// Searches for DOM elements using jQuery selector and gets the current computed height for the first element
         /// in the set of matched elements or set the width of every matched element.
         /// </summary>
@@ -143,6 +352,67 @@
         public long? Height()
         {
             return this.Find<long?>("height()");
+        }
+
+        /// <summary>
+        /// Sets the height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Height(short value)
+        {
+            return this.Height(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Height(int value)
+        {
+            return this.Height(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Height(long value)
+        {
+            return this.Height(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Height(float value)
+        {
+            return this.Height(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Height(double value)
+        {
+            return this.Height(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Height(decimal value)
+        {
+            this.Set("height(" + value + ")");
+            return this;
         }

         /// <summary>
@@ -160,6 +430,67 @@
         }

         /// <summary>
+        /// Sets the inner width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerWidth(short value)
+        {
+            return this.InnerWidth(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the inner width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerWidth(int value)
+        {
+            return this.InnerWidth(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the inner width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerWidth(long value)
+        {
+            return this.InnerWidth(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the inner width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerWidth(float value)
+        {
+            return this.InnerWidth(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the inner width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerWidth(double value)
+        {
+            return this.InnerWidth(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the inner width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerWidth(decimal value)
+        {
+            this.Set("innerWidth(" + value + ")");
+            return this;
+        }
+
+        /// <summary>
         /// Searches for DOM elements using jQuery selector and gets the current computed inner height (including
         /// padding but not border) for the first element in the set of matched elements or set the inner width of
         /// every matched element.
@@ -174,6 +505,67 @@
         }

         /// <summary>
+        /// Sets the inner height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerHeight(short value)
+        {
+            return this.InnerHeight(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the inner height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerHeight(int value)
+        {
+            return this.InnerHeight(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the inner height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerHeight(long value)
+        {
+            return this.InnerHeight(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the inner height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerHeight(float value)
+        {
+            return this.InnerHeight(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the inner height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerHeight(double value)
+        {
+            return this.InnerHeight(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the inner height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the inner height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper InnerHeight(decimal value)
+        {
+            this.Set("innerHeight(" + value + ")");
+            return this;
+        }
+
+        /// <summary>
         /// Searches for DOM elements using jQuery selector and gets the current computed width for the first element
         /// in the set of matched elements, including padding and border.
         /// </summary>
@@ -190,6 +582,67 @@
         }

         /// <summary>
+        /// Sets the outer width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterWidth(short value)
+        {
+            return this.OuterWidth(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the outer width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterWidth(int value)
+        {
+            return this.OuterWidth(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the outer width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterWidth(long value)
+        {
+            return this.OuterWidth(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the outer width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterWidth(float value)
+        {
+            return this.OuterWidth(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the outer width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterWidth(double value)
+        {
+            return this.OuterWidth(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the outer width value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer width to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterWidth(decimal value)
+        {
+            this.Set("outerWidth(" + value + ")");
+            return this;
+        }
+
+        /// <summary>
         /// Searches for DOM elements using jQuery selector and gets the current computed height for the first element
         /// in the set of matched elements, including padding and border.
         /// </summary>
@@ -203,6 +656,67 @@
         public long? OuterHeight(bool includeMargin = false)
         {
             return this.Find<long?>("outerHeight(" + (includeMargin ? "true" : string.Empty) + ")");
+        }
+
+        /// <summary>
+        /// Sets the outer height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterHeight(short value)
+        {
+            return this.OuterHeight(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the outer height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterHeight(int value)
+        {
+            return this.OuterHeight(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the outer height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterHeight(long value)
+        {
+            return this.OuterHeight(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the outer height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterHeight(float value)
+        {
+            return this.OuterHeight(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the outer height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterHeight(double value)
+        {
+            return this.OuterHeight(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the outer height value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the outer height to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper OuterHeight(decimal value)
+        {
+            this.Set("outerHeight(" + value + ")");
+            return this;
         }

         /// <summary>
@@ -261,6 +775,67 @@
         }

         /// <summary>
+        /// Sets the scroll left value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll left to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollLeft(short value)
+        {
+            return this.ScrollLeft(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the scroll left value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll left to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollLeft(int value)
+        {
+            return this.ScrollLeft(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the scroll left value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll left to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollLeft(long value)
+        {
+            return this.ScrollLeft(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the scroll left value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll left to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollLeft(float value)
+        {
+            return this.ScrollLeft(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the scroll left value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll left to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollLeft(double value)
+        {
+            return this.ScrollLeft(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the scroll left value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll left to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollLeft(decimal value)
+        {
+            this.Set("scrollLeft(" + value + ")");
+            return this;
+        }
+
+        /// <summary>
         /// Searches for DOM elements using jQuery selector and gets the current vertical position of the scroll bar
         /// for the first element in the set of matched elements or set the vertical position of the scroll bar for
         /// every matched element.
@@ -272,6 +847,67 @@
         public long? ScrollTop()
         {
             return this.Find<long?>("scrollTop()");
+        }
+
+        /// <summary>
+        /// Sets the scroll top value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll top to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollTop(short value)
+        {
+            return this.ScrollTop(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the scroll top value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll top to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollTop(int value)
+        {
+            return this.ScrollTop(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the scroll top value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll top to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollTop(long value)
+        {
+            return this.ScrollTop(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the scroll top value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll top to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollTop(float value)
+        {
+            return this.ScrollTop(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the scroll top value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll top to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollTop(double value)
+        {
+            return this.ScrollTop(Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the scroll top value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="value">The value of the scroll top to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper ScrollTop(decimal value)
+        {
+            this.Set("scrollTop(" + value + ")");
+            return this;
         }

         /// <summary>
@@ -311,6 +947,97 @@
         }

         /// <summary>
+        /// Sets the data value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="key">The name of the data stored.</param>
+        /// <param name="value">The value of the data to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Data(string key, string value)
+        {
+            this.Set("data('" + key + "', '" + value + "')");
+            return this;
+        }
+
+        /// <summary>
+        /// Sets the data value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="key">The name of the data stored.</param>
+        /// <param name="value">The value of the data to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Data(string key, short value)
+        {
+            return this.Data(key, Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the data value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="key">The name of the data stored.</param>
+        /// <param name="value">The value of the data to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Data(string key, int value)
+        {
+            return this.Data(key, Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the data value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="key">The name of the data stored.</param>
+        /// <param name="value">The value of the data to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Data(string key, long value)
+        {
+            return this.Data(key, Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the data value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="key">The name of the data stored.</param>
+        /// <param name="value">The value of the data to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Data(string key, float value)
+        {
+            return this.Data(key, Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the data value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="key">The name of the data stored.</param>
+        /// <param name="value">The value of the data to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Data(string key, double value)
+        {
+            return this.Data(key, Convert.ToDecimal(value));
+        }
+
+        /// <summary>
+        /// Sets the data value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="key">The name of the data stored.</param>
+        /// <param name="value">The value of the data to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Data(string key, decimal value)
+        {
+            this.Set("data('" + key + "', " + value + ")");
+            return this;
+        }
+
+        /// <summary>
+        /// Sets the data value for all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="key">The name of the data stored.</param>
+        /// <param name="value">The value of the data to set.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper Data(string key, bool value)
+        {
+            this.Set("data('" + key + "', " + (value ? "true" : "false") + ")");
+            return this;
+        }
+
+        /// <summary>
         /// Searches for DOM elements using jQuery selector and gets the number of elements in the jQuery object.
         /// </summary>
         /// <returns>The number of elements in the jQuery object.</returns>
@@ -351,8 +1078,30 @@
         }

         /// <summary>
-        /// Performs a jQuery search on the <see cref="IWebDriver"/> using given <see cref="JQuerySelector"/> selector
-        /// and script format string.
+        /// Adds the given class to all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="className">The name of the class to add.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper AddClass(string className)
+        {
+            this.Set("addClass('" + className + "')");
+            return this;
+        }
+
+        /// <summary>
+        /// Removes the given class to all elements matching current <see cref="JQuerySelector"/>.
+        /// </summary>
+        /// <param name="className">The name of the class to remove.</param>
+        /// <returns>The instance of <see cref="ChainJQueryHelper"/> to allow setter chaining.</returns>
+        public ChainJQueryHelper RemoveClass(string className)
+        {
+            this.Set("removeClass('" + className + "')");
+            return this;
+        }
+
+        /// <summary>
+        /// Performs a jQuery search on the <see cref="IWebDriver"/> using current <see cref="JQuerySelector"/>
+        /// selector and script format string.
         /// </summary>
         /// <typeparam name="T">The type of the result to be returned.</typeparam>
         /// <param name="scriptFormat">The format string of the script to be invoked.</param>
@@ -375,6 +1124,17 @@
         }

         /// <summary>
+        /// Performs a jQuery value set operation on the <see cref="IWebDriver"/> using current
+        /// <see cref="JQuerySelector"/> selector.
+        /// </summary>
+        /// <param name="script">The script to be executed in order to set the value.</param>
+        public void Set(string script)
+        {
+            this.Driver.JQuery().Load();
+            this.ExecuteScript(this.Selector, script, null);
+        }
+
+        /// <summary>
         /// Executes jQuery script.
         /// </summary>
         /// <param name="by">The Selenium jQuery selector.</param>


CountyDetailsProvider - refactoring

CountyDetailsProvider - refactoring

--- src/StatisticsRomania/StatisticsRomania/Lib/CountyDetailsProvider.cs
+++ src/StatisticsRomania/StatisticsRomania/Lib/CountyDetailsProvider.cs
@@ -14,29 +14,29 @@
         {
             if (chapter == typeof(AverageGrossSalary))
             {
-                var repo = new Repository<AverageGrossSalary>(App.AsyncDb);
-                var data = await repo.GetAll(x => x.CountyId == countyId);
+                return await GetData<AverageGrossSalary>(countyId);
+            }

-                return data.Cast<Data>().ToList();
+            if (chapter == typeof(AverageNetSalary))
+            {
+                return await GetData<AverageNetSalary>(countyId);
             }
-            else if (chapter == typeof(AverageNetSalary))
+
+            if (chapter == typeof(NumberOfTourists))
             {
-                var repo = new Repository<AverageNetSalary>(App.AsyncDb);
-                var data = await repo.GetAll(x => x.CountyId == countyId);
+                return await GetData<NumberOfTourists>(countyId);
+            }

-                return data.Cast<Data>().ToList();
-            }
-            else if (chapter == typeof(NumberOfTourists))
-            {
-                var repo = new Repository<NumberOfTourists>(App.AsyncDb);
-                var data = await repo.GetAll(x => x.CountyId == countyId);
+            return null;
+        }

-                return data.Cast<Data>().ToList();
-            }
-            else
-            {
-                return null;
-            }
+        private static async Task<List<Data>> GetData<T>(int countyId)
+            where T : Data, new()
+        {
+            var repo = new Repository<T>(App.AsyncDb);
+            var data = (await repo.GetAll(x => x.CountyId == countyId))
+                .Cast<Data>().ToList();
+            return data;
         }
     }
 }


Consider EndpointMetadata for annotations

Also consider the EndpointMetadata for operations when targeting .NET 5 and later. This allows attributes applied to ASP.NET Core 6 Minimal Actions to be discovered.

--- src/Swashbuckle.AspNetCore.Annotations/AnnotationsOperationFilter.cs
+++ src/Swashbuckle.AspNetCore.Annotations/AnnotationsOperationFilter.cs
@@ -10,18 +10,38 @@
     {
         public void Apply(OpenApiOperation operation, OperationFilterContext context)
         {
-            if (context.MethodInfo == null) return;
+            IEnumerable<object> controllerAttributes = Array.Empty<object>();
+            IEnumerable<object> actionAttributes = Array.Empty<object>();
+            IEnumerable<object> metadataAttributes = Array.Empty<object>();

-            var controllerAttributes = context.MethodInfo.DeclaringType.GetCustomAttributes(true);
-            var actionAttributes = context.MethodInfo.GetCustomAttributes(true);
+            if (context.MethodInfo != null)
+            {
+                controllerAttributes = context.MethodInfo.DeclaringType.GetCustomAttributes(true);
+                actionAttributes = context.MethodInfo.GetCustomAttributes(true);
+            }
+
+#if NET5_0_OR_GREATER
+            if (context.ApiDescription.ActionDescriptor.EndpointMetadata != null)
+            {
+                metadataAttributes = context.ApiDescription.ActionDescriptor.EndpointMetadata;
+            }
+#endif

             // NOTE: When controller and action attributes are applicable, action attributes should take precendence.
-            // Hence why they're at the end of the list (i.e. last one wins)
-            var controllerAndActionAttributes = controllerAttributes.Union(actionAttributes);
+            // Hence why they're at the end of the list (i.e. last one wins).
+            // Distinct() is applied due to an ASP.NET Core issue: https://github.com/dotnet/aspnetcore/issues/34199.
+            var allAttributes = controllerAttributes
+                .Union(actionAttributes)
+                .Union(metadataAttributes)
+                .Distinct();

-            ApplySwaggerOperationAttribute(operation, actionAttributes);
-            ApplySwaggerOperationFilterAttributes(operation, context, controllerAndActionAttributes);
-            ApplySwaggerResponseAttributes(operation, context, controllerAndActionAttributes);
+            var actionAndEndpointAttribtues = actionAttributes
+                .Union(metadataAttributes)
+                .Distinct();
+
+            ApplySwaggerOperationAttribute(operation, actionAndEndpointAttribtues);
+            ApplySwaggerOperationFilterAttributes(operation, context, allAttributes);
+            ApplySwaggerResponseAttributes(operation, context, allAttributes);
         }

         private static void ApplySwaggerOperationAttribute(


Fix the netcore test runs

Fix the netcore test runs

--- src/System.Configuration.ConfigurationManager/tests/Mono/TestUtil.cs
+++ src/System.Configuration.ConfigurationManager/tests/Mono/TestUtil.cs
@@ -58,8 +58,8 @@
         {
             get
             {
-                var asm = Assembly.GetEntryAssembly();
-                return asm.Location;
+                return Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
+                    Assembly.GetEntryAssembly().ManifestModule.Name);
             }
         }

@@ -67,7 +67,7 @@
         {
             get
             {
-                return Assembly.GetEntryAssembly().GetName().Name + ".config";
+                return Assembly.GetEntryAssembly().ManifestModule.Name + ".config";
             }
         }
     }


Delete dead code from IdnMapping (#20857)

--- src/System.Private.CoreLib/shared/System/Globalization/IdnMapping.cs
+++ src/System.Private.CoreLib/shared/System/Globalization/IdnMapping.cs
@@ -207,15 +207,6 @@
                 throw new ArgumentException(SR.Format(SR.Argument_InvalidCharSequence, unicode.Length - 1), nameof(unicode));
             }

-            // Have to correctly IDNA normalize the string and Unassigned flags
-            bool bHasLastDot = (unicode.Length > 0) && IsDot(unicode[unicode.Length - 1]);
-
-            // Make sure we didn't normalize away something after a last dot
-            if ((!bHasLastDot) && unicode.Length > 0 && IsDot(unicode[unicode.Length - 1]))
-            {
-                throw new ArgumentException(SR.Argument_IdnBadLabelSize, nameof(unicode));
-            }
-
             // May need to check Std3 rules again for non-ascii
             if (UseStd3AsciiRules)
             {


Amazing, only one static modifier is allowed per member.

--- src/Transports/MassTransit.Transports.Msmq/MsmqEndpointManagement.cs
+++ src/Transports/MassTransit.Transports.Msmq/MsmqEndpointManagement.cs
@@ -1,4 +1,4 @@
-// Copyright 2007-2011 The Apache Software Foundation.
+// Copyright 2007-2011 Chris Patterson, Dru Sellers, Travis Smith, et. al.
 //
 // Licensed under the Apache License, Version 2.0 (the "License"); you may not use
 // this file except in compliance with the License. You may obtain a copy of the
@@ -12,201 +12,206 @@
 // specific language governing permissions and limitations under the License.
 namespace MassTransit.Transports.Msmq
 {
-	using System;
-	using System.Collections.Generic;
-	using System.Messaging;
-	using System.Security.Principal;
-	using Exceptions;
-	using log4net;
-
-	public class MsmqEndpointManagement :
-		IEndpointManagement
-	{
-		private static readonly string AdministratorsGroupName;
-		private static readonly string EveryoneAccountName;
-        static static readonly string AnonymousLoginAccountName;
-		private static readonly ILog _log = LogManager.GetLogger(typeof (MsmqEndpointManagement));
-		private readonly IMsmqEndpointAddress _address;
-
-	    static MsmqEndpointManagement()
-		{
-			// WellKnowSidType.WorldSid == "Everyone";
-			// whoda thunk (http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/0737f978-a998-453d-9a6a-c348285d7ea3/)
-
-			AdministratorsGroupName = (new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null))
-				.Translate(typeof (NTAccount)).ToString();
-			EveryoneAccountName = (new SecurityIdentifier(WellKnownSidType.WorldSid, null))
-				.Translate(typeof (NTAccount)).ToString();
-		    AnonymousLoginAccountName = (new SecurityIdentifier(WellKnownSidType.AnonymousSid, null))
-		        .Translate(typeof (NTAccount)).ToString();
-		}
-
-		private MsmqEndpointManagement(IEndpointAddress address)
-		{
-			_address = address as MsmqEndpointAddress ?? new MsmqEndpointAddress(address.Uri);
-		}
-
-		public void Create(bool transactional)
-		{
-			if (!_address.IsLocal)
-				throw new InvalidOperationException("A remote queue cannot be created: " + _address);
-
-			if (CheckForExistingQueue(transactional))
-				return;
-
-			using (MessageQueue queue = MessageQueue.Create(_address.LocalName, transactional))
-			{
-				_log.Debug("A queue was created: " + _address + (transactional ? " (transactional)" : ""));
-
-				queue.SetPermissions(AdministratorsGroupName, MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
-				queue.SetPermissions(EveryoneAccountName, MessageQueueAccessRights.GenericWrite, AccessControlEntryType.Allow);
-                queue.SetPermissions(AnonymousLoginAccountName, MessageQueueAccessRights.GenericWrite, AccessControlEntryType.Allow);
-			}
-
-			VerifyQueueSendAndReceive();
-		}
-
-		public long Count()
-		{
-			return Count(long.MaxValue);
-		}
-
-		public long Count(long limit)
-		{
-			long count = 0;
-
-			using (var queue = new MessageQueue(_address.InboundFormatName, QueueAccessMode.Receive))
-			{
-				using (MessageEnumerator enumerator = queue.GetMessageEnumerator2())
-				{
-					while (enumerator.MoveNext(TimeSpan.Zero))
-					{
-						if (++count >= limit)
-							break;
-					}
-				}
-			}
-
-			return count;
-		}
-
-		public void Purge()
-		{
-			using (var queue = new MessageQueue(_address.LocalName, QueueAccessMode.ReceiveAndAdmin))
-			{
-				queue.Purge();
-			}
-		}
-
-		public bool Exists
-		{
-			get { return MessageQueue.Exists(_address.LocalName); }
-		}
-
-		public bool IsTransactional
-		{
-			get
-			{
-				if (!_address.IsLocal)
-					return true;
-
-				using (var queue = new MessageQueue(_address.InboundFormatName, QueueAccessMode.ReceiveAndAdmin))
-				{
-					return queue.Transactional;
-				}
-			}
-		}
-
-		public Dictionary<string, int> MessageTypes()
-		{
-			var dict = new Dictionary<string, int>();
-
-			using (var queue = new MessageQueue(_address.InboundFormatName, QueueAccessMode.Receive))
-			{
-				using (MessageEnumerator enumerator = queue.GetMessageEnumerator2())
-				{
-					while (enumerator.MoveNext(TimeSpan.Zero))
-					{
-						Message q = enumerator.Current;
-						if (!dict.ContainsKey(q.Label))
-							dict.Add(q.Label, 0);
-
-						dict[q.Label]++;
-					}
-				}
-			}
-
-			return dict;
-		}
-
-		private void VerifyQueueSendAndReceive()
-		{
-			using (var queue = new MessageQueue(_address.InboundFormatName, QueueAccessMode.SendAndReceive))
-			{
-				if (!queue.CanRead)
-					throw new InvalidOperationException("A queue was created but cannot be read: " + _address);
-
-				if (!queue.CanWrite)
-					throw new InvalidOperationException("A queue was created but cannot be written: " + _address);
-			}
-		}
-
-		private bool CheckForExistingQueue(bool transactional)
-		{
-			if (!MessageQueue.Exists(_address.LocalName))
-				return false;
-
-			using (var queue = new MessageQueue(_address.InboundFormatName, QueueAccessMode.ReceiveAndAdmin))
-			{
-				if (transactional && !queue.Transactional)
-				{
-					throw new InvalidOperationException("A non-transactional queue already exists with the same name: " + _address);
-				}
-
-				if (!transactional && queue.Transactional)
-				{
-					throw new InvalidOperationException("A transactional queue already exists with the same name: " + _address);
-				}
-			}
-
-			_log.Debug("The queue already exists: " + _address);
-			return true;
-		}
-
-		public static void Manage(IEndpointAddress address, Action<IEndpointManagement> action)
-		{
-			try
-			{
-				var management = new MsmqEndpointManagement(address);
-				action(management);
-			}
-			catch (EndpointException)
-			{
-				throw;
-			}
-			catch (Exception ex)
-			{
-				throw new TransportException(address.Uri, "There was a problem managing the transport", ex);
-			}
-		}
-
-		public static IEndpointManagement New(Uri uri)
-		{
-			try
-			{
-				var address = new MsmqEndpointAddress(uri);
-
-				return New(address);
-			}
-			catch (UriFormatException ex)
-			{
-				throw new EndpointException(uri, "The MSMQ queue address is invalid.", ex);
-			}
-		}
-
-		public static IEndpointManagement New(IEndpointAddress address)
-		{
-			return new MsmqEndpointManagement(address);
-		}
-	}
+    using System;
+    using System.Collections.Generic;
+    using System.Messaging;
+    using System.Security.Principal;
+    using Exceptions;
+    using log4net;
+
+    public class MsmqEndpointManagement :
+        IEndpointManagement
+    {
+        static readonly string AdministratorsGroupName;
+        static readonly string AnonymousLoginAccountName;
+        static readonly string EveryoneAccountName;
+        static readonly ILog _log = LogManager.GetLogger(typeof (MsmqEndpointManagement));
+        readonly IMsmqEndpointAddress _address;
+
+        static MsmqEndpointManagement()
+        {
+            // WellKnowSidType.WorldSid == "Everyone";
+            // whoda thunk (http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/0737f978-a998-453d-9a6a-c348285d7ea3/)
+
+            AdministratorsGroupName = (new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null))
+                .Translate(typeof (NTAccount)).ToString();
+            EveryoneAccountName = (new SecurityIdentifier(WellKnownSidType.WorldSid, null))
+                .Translate(typeof (NTAccount)).ToString();
+            AnonymousLoginAccountName = (new SecurityIdentifier(WellKnownSidType.AnonymousSid, null))
+                .Translate(typeof (NTAccount)).ToString();
+        }
+
+        MsmqEndpointManagement(IEndpointAddress address)
+        {
+            _address = address as MsmqEndpointAddress ?? new MsmqEndpointAddress(address.Uri);
+        }
+
+        public void Create(bool transactional)
+        {
+            if (!_address.IsLocal)
+                throw new InvalidOperationException("A remote queue cannot be created: " + _address);
+
+            if (CheckForExistingQueue(transactional))
+                return;
+
+            using (MessageQueue queue = MessageQueue.Create(_address.LocalName, transactional))
+            {
+                _log.Debug("A queue was created: " + _address + (transactional ? " (transactional)" : ""));
+
+                queue.SetPermissions(AdministratorsGroupName, MessageQueueAccessRights.FullControl,
+                    AccessControlEntryType.Allow);
+                queue.SetPermissions(EveryoneAccountName, MessageQueueAccessRights.GenericWrite,
+                    AccessControlEntryType.Allow);
+                queue.SetPermissions(AnonymousLoginAccountName, MessageQueueAccessRights.GenericWrite,
+                    AccessControlEntryType.Allow);
+            }
+
+            VerifyQueueSendAndReceive();
+        }
+
+        public long Count()
+        {
+            return Count(long.MaxValue);
+        }
+
+        public long Count(long limit)
+        {
+            long count = 0;
+
+            using (var queue = new MessageQueue(_address.InboundFormatName, QueueAccessMode.Receive))
+            {
+                using (MessageEnumerator enumerator = queue.GetMessageEnumerator2())
+                {
+                    while (enumerator.MoveNext(TimeSpan.Zero))
+                    {
+                        if (++count >= limit)
+                            break;
+                    }
+                }
+            }
+
+            return count;
+        }
+
+        public void Purge()
+        {
+            using (var queue = new MessageQueue(_address.LocalName, QueueAccessMode.ReceiveAndAdmin))
+            {
+                queue.Purge();
+            }
+        }
+
+        public bool Exists
+        {
+            get { return MessageQueue.Exists(_address.LocalName); }
+        }
+
+        public bool IsTransactional
+        {
+            get
+            {
+                if (!_address.IsLocal)
+                    return true;
+
+                using (var queue = new MessageQueue(_address.InboundFormatName, QueueAccessMode.ReceiveAndAdmin))
+                {
+                    return queue.Transactional;
+                }
+            }
+        }
+
+        public Dictionary<string, int> MessageTypes()
+        {
+            var dict = new Dictionary<string, int>();
+
+            using (var queue = new MessageQueue(_address.InboundFormatName, QueueAccessMode.Receive))
+            {
+                using (MessageEnumerator enumerator = queue.GetMessageEnumerator2())
+                {
+                    while (enumerator.MoveNext(TimeSpan.Zero))
+                    {
+                        Message q = enumerator.Current;
+                        if (!dict.ContainsKey(q.Label))
+                            dict.Add(q.Label, 0);
+
+                        dict[q.Label]++;
+                    }
+                }
+            }
+
+            return dict;
+        }
+
+        void VerifyQueueSendAndReceive()
+        {
+            using (var queue = new MessageQueue(_address.InboundFormatName, QueueAccessMode.SendAndReceive))
+            {
+                if (!queue.CanRead)
+                    throw new InvalidOperationException("A queue was created but cannot be read: " + _address);
+
+                if (!queue.CanWrite)
+                    throw new InvalidOperationException("A queue was created but cannot be written: " + _address);
+            }
+        }
+
+        bool CheckForExistingQueue(bool transactional)
+        {
+            if (!MessageQueue.Exists(_address.LocalName))
+                return false;
+
+            using (var queue = new MessageQueue(_address.InboundFormatName, QueueAccessMode.ReceiveAndAdmin))
+            {
+                if (transactional && !queue.Transactional)
+                {
+                    throw new InvalidOperationException(
+                        "A non-transactional queue already exists with the same name: " + _address);
+                }
+
+                if (!transactional && queue.Transactional)
+                {
+                    throw new InvalidOperationException("A transactional queue already exists with the same name: " +
+                                                        _address);
+                }
+            }
+
+            _log.Debug("The queue already exists: " + _address);
+            return true;
+        }
+
+        public static void Manage(IEndpointAddress address, Action<IEndpointManagement> action)
+        {
+            try
+            {
+                var management = new MsmqEndpointManagement(address);
+                action(management);
+            }
+            catch (EndpointException)
+            {
+                throw;
+            }
+            catch (Exception ex)
+            {
+                throw new TransportException(address.Uri, "There was a problem managing the transport", ex);
+            }
+        }
+
+        public static IEndpointManagement New(Uri uri)
+        {
+            try
+            {
+                var address = new MsmqEndpointAddress(uri);
+
+                return New(address);
+            }
+            catch (UriFormatException ex)
+            {
+                throw new EndpointException(uri, "The MSMQ queue address is invalid.", ex);
+            }
+        }
+
+        public static IEndpointManagement New(IEndpointAddress address)
+        {
+            return new MsmqEndpointManagement(address);
+        }
+    }
 }


RemoteDepoy.ParseScope if remote configuration item is set to nothing (remote="") treat it as if it is missing (NoScopeGiven)

--- src/core/Akka.Remote/RemoteDeployer.cs
+++ src/core/Akka.Remote/RemoteDeployer.cs
@@ -18,7 +18,9 @@
         protected override Scope ParseScope(Config config)
         {
             var remote = config.GetString("remote");
-            if (remote == null)
+			//valid case for remote to be missing == null or for
+			//remote to be nothing remote = ""
+            if (string.IsNullOrWhiteSpace(remote))
                 return Deploy.NoScopeGiven;

             ActorPath actorPath;


Adding engine version to  collection

Adding engine version to  collection

--- LiteDB/Engine/SystemCollections/SysDatabase.cs
+++ LiteDB/Engine/SystemCollections/SysDatabase.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using static LiteDB.Constants;

@@ -10,6 +11,8 @@
     {
         private IEnumerable<BsonDocument> SysDatabase()
         {
+            var version = typeof(LiteEngine).GetTypeInfo().Assembly.GetName().Version;
+
             yield return new BsonDocument
             {
                 ["name"] = _disk.GetName(FileOrigin.Data),
@@ -27,6 +30,7 @@

                 ["currentReadVersion"] = _walIndex.CurrentReadVersion,
                 ["lastTransactionID"] = _walIndex.LastTransactionID,
+                ["engine"] = $"litedb-ce-v{version.Major}.{version.Minor}.{version.Build}",

                 ["pragmas"] = new BsonDocument(_header.Pragmas.Pragmas.ToDictionary(x => x.Name, x => x.Get())),


Fixed messed up container context reference passing between containers

--- src/stashbox/StashboxContainer.cs
+++ src/stashbox/StashboxContainer.cs
@@ -53,14 +53,12 @@
         }

         internal StashboxContainer(IStashboxContainer parentContainer, IContainerExtensionManager containerExtensionManager,
-            IResolverSelector resolverSelector, IServiceRegistrator serviceRegistrator, IObjectBuilderSelector objectBuilderSelector)
+            IResolverSelector resolverSelector)
         {
             this.disposed = new AtomicBool();
             this.ParentContainer = parentContainer;
             this.containerExtensionManager = containerExtensionManager;
             this.resolverSelector = resolverSelector;
-            this.ServiceRegistrator = serviceRegistrator;
-            this.objectBuilderSelector = objectBuilderSelector;
             this.registrationRepository = new RegistrationRepository(parentContainer.ContainerContext.ContainerConfigurator);
             this.ContainerContext = new ContainerContext(this.registrationRepository, new DelegateRepository(), this,
                 new ResolutionStrategy(this.resolverSelector), parentContainer.ContainerContext.ContainerConfigurator,
@@ -68,6 +66,8 @@
             this.activationContext = new Resolution.ActivationContext(this.ContainerContext, this.resolverSelector, this);
             this.containerExtensionManager.ReinitalizeExtensions(this.ContainerContext);
             this.expressionBuilder = new ExpressionBuilder(this.ContainerContext, this.containerExtensionManager);
+            this.objectBuilderSelector = new ObjectBuilderSelector(this.ContainerContext, this.expressionBuilder);
+            this.ServiceRegistrator = new ServiceRegistrator(this.ContainerContext, this.containerExtensionManager, this.objectBuilderSelector);
         }

         /// <inheritdoc />
@@ -112,8 +112,7 @@

         /// <inheritdoc />
         public IStashboxContainer CreateChildContainer() =>
-             new StashboxContainer(this, this.containerExtensionManager.CreateCopy(), this.resolverSelector,
-                 this.ServiceRegistrator, this.objectBuilderSelector);
+             new StashboxContainer(this, this.containerExtensionManager.CreateCopy(), this.resolverSelector);

         /// <inheritdoc />
         public IDependencyResolver BeginScope() => new ResolutionScope(this.activationContext);


Set wearables count to max legacy wearables for version < 0.4

--- OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
+++ OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
@@ -392,6 +392,11 @@
                     foreach (OSD o in array)
                         featuresAvailable.Add(new UUID(o.AsString()));
                 }
+
+                // Version stuff
+                if (ctx.OutboundVersion < 0.4)
+                    ctx.WearablesCount = AvatarWearable.LEGACY_VERSION_MAX_WEARABLES;
+
                 return success;
             }
             catch (Exception e)


Add "PID" alias for Get-Process -Id.

Add "PID" alias for Get-Process -Id.

--- Source/Microsoft.PowerShell.Commands.Management/GetProcessCommand.cs
+++ Source/Microsoft.PowerShell.Commands.Management/GetProcessCommand.cs
@@ -41,7 +41,8 @@
         /// <summary>
         /// Return a process that has the given ID.
         /// </summary>
-        [Parameter(
+        [Alias(new string[] { "PID" }),
+        Parameter(
             ParameterSetName = "Id",
             Mandatory = true,
             ValueFromPipelineByPropertyName = true)]


Performance improvements by replacing LINQ code with foreach loop in PlayCardActionValidator

--- Source/Santase.Logic/PlayerActionValidate/PlayCardActionValidator.cs
+++ Source/Santase.Logic/PlayerActionValidate/PlayCardActionValidator.cs
@@ -1,7 +1,6 @@
 namespace Santase.Logic.PlayerActionValidate
 {
     using System.Collections.Generic;
-    using System.Linq;

     using Santase.Logic.Cards;

@@ -41,20 +40,27 @@
                 }

                 // When a card is led, the opponent must play a higher card of the same suit if possible
-                var hasBigger =
-                    playerCards.Any(c => c.GetValue() > otherPlayerCard.GetValue() && c.Suit == otherPlayerCard.Suit);
-                if (hasBigger)
+                // ReSharper disable once LoopCanBeConvertedToQuery (performance critical)
+                foreach (var card in playerCards)
                 {
-                    return false;
+                    if (card.Suit == otherPlayerCard.Suit && card.GetValue() > otherPlayerCard.GetValue())
+                    {
+                        // Found bigger card which is not played => wrong action
+                        return false;
+                    }
                 }
             }
             else
             {
                 // Having no higher card, the second player MUST play a lower card of the suit that was led
-                var hasSameSuit = playerCards.Any(c => c.Suit == otherPlayerCard.Suit);
-                if (hasSameSuit)
+                // ReSharper disable once LoopCanBeConvertedToQuery (performance critical)
+                foreach (var card in playerCards)
                 {
-                    return false;
+                    if (card.Suit == otherPlayerCard.Suit)
+                    {
+                        // Found same suit card which is not played => wrong action
+                        return false;
+                    }
                 }

                 // Player has no card of the same suit and plays trump - OK
@@ -64,10 +70,14 @@
                 }

                 // If the player has no card of the suit played by the first player he must play a trump if possible
-                var hasTrump = playerCards.Any(c => c.Suit == trumpCard.Suit);
-                if (hasTrump)
+                // ReSharper disable once LoopCanBeConvertedToQuery (performance critical)
+                foreach (var card in playerCards)
                 {
-                    return false;
+                    // Found trump card which is not played => wrong action
+                    if (card.Suit == trumpCard.Suit)
+                    {
+                        return false;
+                    }
                 }
             }


Enable the database creation

Enable the database creation

uncomment out the creation code.

--- crisischeckin/crisicheckinweb/App_Start/DbConfig.cs
+++ crisischeckin/crisicheckinweb/App_Start/DbConfig.cs
@@ -11,8 +11,8 @@
     {
         public static void Initialize()
         {
-          //  Database.SetInitializer<CrisisCheckin>(
-          //      new MigrateDatabaseToLatestVersion<CrisisCheckin, Models.Migrations.Configuration>());
+            Database.SetInitializer<CrisisCheckin>(
+                new MigrateDatabaseToLatestVersion<CrisisCheckin, Models.Migrations.Configuration>());
         }
     }
 }


updated version to 1.1.1

updated version to 1.1.1

--- src/epvpapi/Properties/AssemblyInfo.cs
+++ src/epvpapi/Properties/AssemblyInfo.cs
@@ -31,5 +31,5 @@
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
+[assembly: AssemblyVersion("1.1.1")]
+[assembly: AssemblyFileVersion("1.1.1")]


Fix FolderExport.

Fix FolderExport.

--- extensions/Exporters/FolderExport/FolderExport.cs
+++ extensions/Exporters/FolderExport/FolderExport.cs
@@ -37,7 +37,6 @@
 using FSpot.Widgets;
 using FSpot.Utils;
 using FSpot.UI.Dialog;
-using FSpot.Imaging.Exif;

 namespace FSpotFolderExport {
 	public class FolderExport : FSpot.Extensions.IExporter {
@@ -468,37 +467,34 @@
 								      new SafeUri (path).ToString ());
 				}

-				using (ExifData data = new ExifData (photo_path)) {
-					for (int i = 1; i < requests.Length; i++) {
-
-						req = requests [i];
-						if (scale && req.AvoidScale (size))
-							continue;
-
-						FilterSet req_set = new FilterSet ();
-						req_set.Add (new ResizeFilter ((uint)Math.Max (req.Width, req.Height)));
-
-						bool sharpen;
-						try {
-							sharpen = Preferences.Get<bool> (FolderExport.SHARPEN_KEY);
-						} catch (NullReferenceException) {
-							sharpen = true;
-							Preferences.Set (FolderExport.SHARPEN_KEY, true);
-						}
-
-						if (sharpen) {
-							if (req.Name == "lq")
-								req_set.Add (new SharpFilter (0.1, 2, 4));
-							if (req.Name == "thumbs")
-								req_set.Add (new SharpFilter (0.1, 2, 5));
-						}
-						using (FilterRequest tmp_req = new FilterRequest (photo.DefaultVersion.Uri)) {
-							req_set.Convert (tmp_req);
-							MakeDir (SubdirPath (req.Name));
-							path = SubdirPath (req.Name, ImageName (image_num));
-							System.IO.File.Copy (tmp_req.Current.LocalPath, path, true);
-						}
-
+				for (int i = 1; i < requests.Length; i++) {
+
+					req = requests [i];
+					if (scale && req.AvoidScale (size))
+						continue;
+
+					FilterSet req_set = new FilterSet ();
+					req_set.Add (new ResizeFilter ((uint)Math.Max (req.Width, req.Height)));
+
+					bool sharpen;
+					try {
+						sharpen = Preferences.Get<bool> (FolderExport.SHARPEN_KEY);
+					} catch (NullReferenceException) {
+						sharpen = true;
+						Preferences.Set (FolderExport.SHARPEN_KEY, true);
+					}
+
+					if (sharpen) {
+						if (req.Name == "lq")
+							req_set.Add (new SharpFilter (0.1, 2, 4));
+						if (req.Name == "thumbs")
+							req_set.Add (new SharpFilter (0.1, 2, 5));
+					}
+					using (FilterRequest tmp_req = new FilterRequest (photo.DefaultVersion.Uri)) {
+						req_set.Convert (tmp_req);
+						MakeDir (SubdirPath (req.Name));
+						path = SubdirPath (req.Name, ImageName (image_num));
+						System.IO.File.Copy (tmp_req.Current.LocalPath, path, true);
 					}
 				}
 			}


Cleaning up

Cleaning up

--- Nodejs/Product/Nodejs/Debugger/NodeDebugger.cs
+++ Nodejs/Product/Nodejs/Debugger/NodeDebugger.cs
@@ -1220,7 +1220,7 @@
             string originalFileName = GetOriginalFileName(javaScriptFileName, stackFrame);
             if (originalFileName == null) {
                 module = new NodeModule(module.Id, javaScriptFileName);
-            } else {
+            } else {
                 string directoryName = Path.GetDirectoryName(javaScriptFileName) ?? string.Empty;
                 string fileName = CommonUtils.GetAbsoluteFilePath(directoryName, originalFileName.Replace('/', '\\'));


Fix MockFileSystem (took wrong version).

--- NuGet.Extensions.Tests/Mocks/MockFileSystem.cs
+++ NuGet.Extensions.Tests/Mocks/MockFileSystem.cs
@@ -3,14 +3,13 @@
 using System.IO;
 using System.Linq;
 using System.Text.RegularExpressions;
-using NuGet.Extensions.Tests.TestObjects;
+using NuGet.Extensions.ExtensionMethods;

 namespace NuGet.Extensions.Tests.Mocks
 {
     public class MockFileSystem : IFileSystem
     {
         private ILogger _logger;
-        private readonly Dictionary<string, DateTime> _createdTime;

         public MockFileSystem()
             : this(@"C:\MockFileSystem\")
@@ -23,7 +22,11 @@
             Root = root;
             Paths = new Dictionary<string, Func<Stream>>(StringComparer.OrdinalIgnoreCase);
             Deleted = new HashSet<string>();
-            _createdTime = new Dictionary<string, DateTime>(StringComparer.OrdinalIgnoreCase);
+        }
+
+        public DateTimeOffset GetLastAccessed(string path)
+        {
+            throw new NotImplementedException();
         }

         public virtual ILogger Logger
@@ -73,11 +76,6 @@
             Deleted.Add(path);
         }

-        public virtual string GetFullPath(string path)
-        {
-            return Path.Combine(Root, path);
-        }
-
         public virtual IEnumerable<string> GetFiles(string path, bool recursive)
         {
             var files = Paths.Select(f => f.Key);
@@ -112,15 +110,33 @@
             return files.Where(f => matcher.IsMatch(f));
         }

+        public virtual string GetFullPath(string path)
+        {
+            return Path.Combine(Root, path);
+        }
+
+        public virtual IEnumerable<string> GetFiles(string path)
+        {
+            return Paths.Select(f => f.Key)
+                        .Where(f => Path.GetDirectoryName(f).Equals(path, StringComparison.OrdinalIgnoreCase));
+        }
+
+        public virtual IEnumerable<string> GetFiles(string path, string filter)
+        {
+            Regex matcher = FindFilesPatternToRegex.Convert(filter);
+
+            return GetFiles(path).Where(f => matcher.IsMatch(Path.GetFileName(f)));
+        }
+
         private static Regex GetFilterRegex(string wildcard)
         {
-            string pattern = '^' + String.Join(@"\.", wildcard.Split('.').Select(GetPattern)) + '$';
-            return new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
+            string pattern = String.Join(String.Empty, wildcard.Split('.').Select(GetPattern));
+            return new Regex(pattern, RegexOptions.IgnoreCase);
         }

         private static string GetPattern(string token)
         {
-            return token.Replace("*", "(.*)");
+            return token == "*" ? @"(.*)" : @"(" + token + ")";
         }

         public virtual void DeleteFile(string path)
@@ -144,19 +160,6 @@
             return factory();
         }

-        public virtual Stream CreateFile(string path)
-        {
-            Paths[path] = () => Stream.Null;
-
-            Action<Stream> streamClose = (stream) =>
-            {
-                stream.Seek(0, SeekOrigin.Begin);
-                AddFile(path, stream);
-            };
-            var memoryStream = new EventMemoryStream(streamClose);
-            return memoryStream;
-        }
-
         public string ReadAllText(string path)
         {
             return OpenFile(path).ReadToEnd();
@@ -164,24 +167,22 @@

         public virtual bool DirectoryExists(string path)
         {
-            string pathPrefix = PathUtility.EnsureTrailingSlash(path);
-            return Paths.Keys
-                        .Any(file => file.Equals(path, StringComparison.OrdinalIgnoreCase) ||
-                                     file.StartsWith(pathPrefix, StringComparison.OrdinalIgnoreCase));
+            return Paths.Select(file => file.Key)
+                        .Any(file => Path.GetDirectoryName(file).Equals(path, StringComparison.OrdinalIgnoreCase));
         }

         public virtual IEnumerable<string> GetDirectories(string path)
         {
             return Paths.GroupBy(f => Path.GetDirectoryName(f.Key))
-                        .SelectMany(g => FileSystemExtensions.GetDirectories(g.Key))
-                        .Where(f => !String.IsNullOrEmpty(f) &&
-                               path.Equals(Path.GetDirectoryName(f), StringComparison.OrdinalIgnoreCase))
+                        .SelectMany(g => IFileSystemExtensions.GetDirectories(g.Key))
+                        .Where(f => Path.GetDirectoryName(f) != null && !String.IsNullOrEmpty(f) &&
+                               Path.GetDirectoryName(f).Equals(path, StringComparison.OrdinalIgnoreCase))
                         .Distinct();
         }

         public virtual void AddFile(string path)
         {
-            AddFile(path, Stream.Null);
+            AddFile(path, new MemoryStream());
         }

         public void AddFile(string path, string content)
@@ -194,8 +195,7 @@
             var ms = new MemoryStream((int)stream.Length);
             stream.CopyTo(ms);
             byte[] buffer = ms.ToArray();
-            Paths[path] = () => new MemoryStream(buffer);
-            _createdTime[path] = DateTime.UtcNow;
+            Paths[GetFullPath(path)] = () => new MemoryStream(buffer);
         }

         public virtual void AddFile(string path, Stream stream)
@@ -203,63 +203,34 @@
             AddFile(path, stream, overrideIfExists: true);
         }

-        public virtual void AddFile(string path, Action<Stream> writeToStream)
-        {
-            var ms = new MemoryStream();
-            writeToStream(ms);
-            byte[] buffer = ms.ToArray();
-            Paths[path] = () => new MemoryStream(buffer);
-            _createdTime[path] = DateTime.UtcNow;
-        }
-
         public virtual void AddFile(string path, Func<Stream> getStream)
         {
             Paths[path] = getStream;
         }

+        public virtual void AddFile(string path, Action<Stream> getStream)
+        {
+            AddFile(path, getStream.Target.ToString());
+        }
+
+        public virtual Stream CreateFile(string path)
+        {
+            return new MemoryStream();
+        }
+
         public virtual DateTimeOffset GetLastModified(string path)
         {
-            DateTime time;
-            if (_createdTime.TryGetValue(path, out time))
-            {
-                return time;
-            }
-            else
-            {
-                return DateTime.UtcNow;
-            }
+            return DateTime.UtcNow;
         }

         public virtual DateTimeOffset GetCreated(string path)
         {
-            DateTime time;
-            if (_createdTime.TryGetValue(path, out time))
-            {
-                return time;
-            }
-            else
-            {
-                return DateTime.UtcNow;
-            }
-        }
-
-        public virtual DateTimeOffset GetLastAccessed(string path)
-        {
-            DateTime time;
-            if (_createdTime.TryGetValue(path, out time))
-            {
-                return time;
-            }
-            else
-            {
-                return DateTime.UtcNow;
-            }
-        }
-
-
-        public void MakeFileWritable(string path)
-        {
-            // Nothing to do here.
+            return DateTime.UtcNow;
+        }
+
+        public virtual void MakeFileWritable(string path)
+        {
+            throw new NotImplementedException();
         }
     }
-}+}


Make UserInfo into a IDataTransferable.

Make UserInfo into a IDataTransferable.

--- OpenSim/Framework/Services/IUserInfoService.cs
+++ OpenSim/Framework/Services/IUserInfoService.cs
@@ -6,7 +6,7 @@

 namespace OpenSim.Services.Interfaces
 {
-    public class UserInfo
+    public class UserInfo : IDataTransferable
     {
         /// <summary>
         /// The user that this info is for
@@ -50,6 +50,57 @@
         /// Any other assorted into about this user
         /// </summary>
         public OSDMap Info = new OSDMap();
+
+        public OSDMap ToOSD()
+        {
+             OSDMap retVal = new OSDMap();
+             retVal["UserID"] = UserID;
+             retVal["SessionID"] = SessionID;
+             retVal["CurrentRegionID"] = CurrentRegionID;
+             retVal["CurrentPosition"] = CurrentPosition;
+             retVal["CurrentLookAt"] = CurrentLookAt;
+             retVal["HomeRegionID"] = HomeRegionID;
+             retVal["HomePosition"] = HomePosition;
+             retVal["HomeLookAt"] = HomeLookAt;
+             retVal["IsOnline"] = IsOnline;
+             retVal["LastLogin"] = LastLogin;
+             retVal["LastLogout"] = LastLogout;
+             retVal["Info"] = Info;
+             return retVal;
+        }
+
+        public void FromOSD(OSDMap retVal)
+        {
+             UserID = retVal["UserID"].AsString();
+             SessionID = retVal["SessionID"].AsUUID();
+             CurrentRegionID = retVal["CurrentRegionID"].AsUUID();
+             CurrentPosition = retVal["CurrentPosition"].AsVector3();
+             CurrentLookAt = retVal["CurrentLookAt"].AsVector3();
+             HomeRegionID = retVal["HomeRegionID"].AsUUID();
+             HomePosition = retVal["HomePosition"].AsVector3();
+             HomeLookAt = retVal["HomeLookAt"].AsVector3();
+             IsOnline = retVal["IsOnline"].AsBoolean();
+             LastLogin = retVal["LastLogin"].AsDate();
+             LastLogout = retVal["LastLogout"].AsDate();
+             Info = (OSDMap)retVal["Info"];
+        }
+
+        public override Dictionary<string, object> ToKeyValuePairs()
+        {
+            return Util.OSDToDictionary(ToOSD());
+        }
+
+        public override void FromKVP(Dictionary<string, object> KVP)
+        {
+            FromOSD(Util.DictionaryToOSD(KVP));
+        }
+
+        public override IDataTransferable Duplicate()
+        {
+            UserInfo m = new UserInfo();
+            m.FromOSD(ToOSD());
+            return m;
+        }
     }

     public interface IAgentInfoService


Part 2 of see_into_this_sim_from_neighbor configuration option removal

--- OpenSim/Region/Framework/Scenes/SceneViewer.cs
+++ OpenSim/Region/Framework/Scenes/SceneViewer.cs
@@ -84,18 +84,15 @@
         {
             if (m_pendingObjects == null)
             {
-                if (!m_presence.IsChildAgent)
-                {
-                    m_pendingObjects = new Queue<SceneObjectGroup>();
-
-                    lock (m_pendingObjects)
+                m_pendingObjects = new Queue<SceneObjectGroup>();
+
+                lock (m_pendingObjects)
+                {
+                    EntityBase[] entities = m_presence.Scene.Entities.GetEntities();
+                    foreach (EntityBase e in entities)
                     {
-                        EntityBase[] entities = m_presence.Scene.Entities.GetEntities();
-                        foreach (EntityBase e in entities)
-                        {
-                            if (e != null && e is SceneObjectGroup)
-                                m_pendingObjects.Enqueue((SceneObjectGroup)e);
-                        }
+                        if (e != null && e is SceneObjectGroup)
+                            m_pendingObjects.Enqueue((SceneObjectGroup)e);
                     }
                 }
             }


Actually pass params to the invoke call on the method bind

--- AST/ScriptQualifiedName.cs
+++ AST/ScriptQualifiedName.cs
@@ -341,7 +341,7 @@
     {
       IObjectBind methodBind = methodBind = RuntimeHost.Binder.BindToMethod(obj, Name, genericArguments, param);
       if (methodBind != null)
-        return methodBind.Invoke(context, null);
+        return methodBind.Invoke(context, param);

       throw MethodNotFoundException(Name, param);
     }


UserController modified - fixed modify and added get by id for users

--- BetMania/BetMania.Services/Controllers/UserController.cs
+++ BetMania/BetMania.Services/Controllers/UserController.cs
@@ -67,84 +67,123 @@
             }
         }

+        [HttpGet]
+        [ActionName("getuserbyid")]
+        public HttpResponseMessage GetUsers(int id, [ValueProvider(typeof(HeaderValueProviderFactory<string>))] string sessionKey)
+        {
+            HttpResponseMessage response = this.ProcessOperation<HttpResponseMessage>(() =>
+            {
+                this.ValidateSessionKey(sessionKey);
+
+                var user = this.db.Users.FirstOrDefault(x => x.SessionKey == sessionKey);
+
+                if (user == null)
+                {
+                    return Request.CreateErrorResponse(HttpStatusCode.NotFound, "User doesn't exist! Invalid session key!");
+                }
+
+                if (user.IsAdmin)
+                {
+                    var searchedUser = this.db.Users.FirstOrDefault(x => x.Id == id);
+
+                    if (searchedUser == null)
+                    {
+                        return Request.CreateErrorResponse(HttpStatusCode.NotFound, "User doesn't exist! Invalid session key!");
+                    }
+
+                    return Request.CreateResponse(HttpStatusCode.Found);
+                }
+                else
+                {
+                    return Request.CreateResponse(HttpStatusCode.Forbidden);
+                }
+            });
+
+            return response;
+        }
+
         [HttpPut]
         [ActionName("modify")]
         public HttpResponseMessage PutUser(User modifiedUser, [ValueProvider(typeof(HeaderValueProviderFactory<string>))] string sessionKey)
         {
-            this.ValidateSessionKey(sessionKey);
-
-            var user = this.db.Users.FirstOrDefault(x => x.SessionKey == sessionKey);
-
-            if (user == null)
-            {
-                return Request.CreateErrorResponse(HttpStatusCode.NotFound, "User doesn't exist! Invalid session key!");
-            }
-
-            if (user.IsAdmin)
-            {
-                int id = user.Id;
-                HttpResponseMessage response = this.ProcessOperation<HttpResponseMessage>(() =>
-                {
+            HttpResponseMessage response = this.ProcessOperation<HttpResponseMessage>(() =>
+            {
+                this.ValidateSessionKey(sessionKey);
+
+                var user = this.db.Users.FirstOrDefault(x => x.SessionKey == sessionKey);
+
+                if (user == null)
+                {
+                    return Request.CreateErrorResponse(HttpStatusCode.NotFound, "User doesn't exist! Invalid session key!");
+                }
+
+                if (user.IsAdmin)
+                {
+                    int id = user.Id;
                     var userToModify = this.db.Users.FirstOrDefault(x => x.Id == id);
-                    userToModify = new User()
+
+                    if (userToModify == null)
                     {
-                        Id = modifiedUser.Id,
-                        AuthCode = modifiedUser.AuthCode,
-                        Avatar = modifiedUser.Avatar,
-                        Balance = modifiedUser.Balance,
-                        IsAdmin = modifiedUser.IsAdmin,
-                        Nickname = modifiedUser.Nickname,
-                        SessionKey = modifiedUser.SessionKey,
-                        Username = modifiedUser.Username
-                    };
+                        return Request.CreateErrorResponse(HttpStatusCode.NotFound, "User doesn't exist! Invalid session key!");
+                    }
+
+                    userToModify.AuthCode = modifiedUser.AuthCode;
+                    userToModify.Avatar = modifiedUser.Avatar;
+                    userToModify.Balance = modifiedUser.Balance;
+                    userToModify.IsAdmin = modifiedUser.IsAdmin;
+                    userToModify.Nickname = modifiedUser.Nickname;
+                    userToModify.SessionKey = modifiedUser.SessionKey;
+                    userToModify.Username = modifiedUser.Username;

                     db.SaveChanges();

                     return Request.CreateResponse(HttpStatusCode.NoContent);
-                });
-            }
-            else
-            {
-                return Request.CreateResponse(HttpStatusCode.Forbidden);
-            }
-
-            return Request.CreateErrorResponse(HttpStatusCode.NotModified, "Modify failed!");
+                }
+                else
+                {
+                    return Request.CreateResponse(HttpStatusCode.Forbidden);
+                }
+            });
+
+            return response;
         }

         [HttpDelete]
         [ActionName("delete")]
         public HttpResponseMessage DeleteUser(int id, [ValueProvider(typeof(HeaderValueProviderFactory<string>))] string sessionKey)
         {
-            this.ValidateSessionKey(sessionKey);
-
-            var user = this.db.Users.FirstOrDefault(x => x.SessionKey == sessionKey);
-
-            if (user == null)
-            {
-                return Request.CreateErrorResponse(HttpStatusCode.NotFound, "User doesn't exist! Invalid session key!");
-            }
-
-            if (user.IsAdmin)
-            {
-                HttpResponseMessage response = this.ProcessOperation<HttpResponseMessage>(() =>
+
+            HttpResponseMessage response = this.ProcessOperation<HttpResponseMessage>(() =>
+            {
+                this.ValidateSessionKey(sessionKey);
+
+                var user = this.db.Users.FirstOrDefault(x => x.SessionKey == sessionKey);
+
+                if (user == null)
+                {
+                    return Request.CreateErrorResponse(HttpStatusCode.NotFound, "User doesn't exist! Invalid session key!");
+                }
+
+                if (user.IsAdmin)
                 {
                     var userToDelete = this.db.Users.FirstOrDefault(x => x.Id == id);
-                    if (userToDelete != null)
+                    if (userToDelete == null)
                     {
-                        this.db.Users.Remove(userToDelete);
+                        return Request.CreateErrorResponse(HttpStatusCode.NotFound, "User doesn't exist! Invalid session key!");
                     }

+                    this.db.Users.Remove(userToDelete);
                     db.SaveChanges();

                     return Request.CreateResponse(HttpStatusCode.OK, userToDelete);
-                });
-            }
-            else
-            {
-                return Request.CreateResponse(HttpStatusCode.Forbidden);
-            }
-
-            return Request.CreateErrorResponse(HttpStatusCode.NotModified, "Delete failed!");
+                }
+                else
+                {
+                    return Request.CreateResponse(HttpStatusCode.Forbidden);
+                }
+            });
+
+            return response;
         }

         // POST api/user/register


Optimized loop

Optimized loop

--- CAPPamari.Web/Models/Requirements/RequirementSetModel.cs
+++ CAPPamari.Web/Models/Requirements/RequirementSetModel.cs
@@ -100,9 +100,9 @@
                 return false;

             // check requirement set requirements
-            foreach (RequirementModel req in RequirementSetRequirements)
+            if (RequirementSetRequirements.Any(req => !req.IsFulfilled()))
             {
-                if (!req.IsFulfilled()) return false;
+                return false;
             }

             // check requirements


more disabling multiple inventory server support in LoginService

--- OpenSim/Framework/Communications/LoginService.cs
+++ OpenSim/Framework/Communications/LoginService.cs
@@ -230,7 +230,7 @@

                         try
                         {
-                            inventData = GetInventorySkeleton(agentID, userProfile.UserInventoryURI);
+                            inventData = GetInventorySkeleton(agentID, "");
                         }
                         catch (Exception e)
                         {
@@ -386,7 +386,7 @@
                         LLUUID agentID = userProfile.ID;

                         // Inventory Library Section
-                        InventoryData inventData = GetInventorySkeleton(agentID, userProfile.UserInventoryURI);
+                        InventoryData inventData = GetInventorySkeleton(agentID, "");
                         ArrayList AgentInventoryArray = inventData.InventoryArray;

                         Hashtable InventoryRootHash = new Hashtable();


Update Entity.cs

Update Entity.cs