naming

naming

--- QuickFile/Editor/QuickFileEditorWindow.cs
+++ QuickFile/Editor/QuickFileEditorWindow.cs
@@ -15,7 +15,7 @@
     public static void OpenEditorWindow()
     {
         var w = EditorWindow.GetWindow<QuickFileEditorWindow>();
-        w.titleContent = new GUIContent("QuickScene");
+        w.titleContent = new GUIContent("QuickFile");
         w.Show();
     }


Version bump to 3.1.0.0

Version bump to 3.1.0.0

--- Version.cs
+++ Version.cs
@@ -12,6 +12,6 @@
 // [assembly: AssemblyVersion("1.0.*")]

 //It's impossible to make these a define, don't say I didn't warn you
-[assembly: AssemblyVersion("3.0.90.2")]
-[assembly: AssemblyFileVersion("3.0.90.2")]
-[assembly: AssemblyInformationalVersion("3.0.90.2")]
+[assembly: AssemblyVersion("3.1.0.0")]
+[assembly: AssemblyFileVersion("3.1.0.0")]
+[assembly: AssemblyInformationalVersion("3.1.0.0")]


Fixed intitial parsing issue.

Fixed intitial parsing issue.

--- gifbot/Controllers/GifBotController.cs
+++ gifbot/Controllers/GifBotController.cs
@@ -35,7 +35,7 @@

 		    var roomId = rootObject.resource.postedRoomId;

-		    var input = roomMessage.Substring(roomMessage.LastIndexOf(_configuration.BotName, StringComparison.OrdinalIgnoreCase));
+		    var input = roomMessage.Substring(_configuration.BotName.Length + 1);

 		    try
 		    {


Added method to load report from string XML with setting ConnectionString

--- RdlGtkViewer/RdlGtkViewer/ReportViewer.cs
+++ RdlGtkViewer/RdlGtkViewer/ReportViewer.cs
@@ -100,22 +100,37 @@
             ShowErrors = false;
         }

-        /// <summary>
-        /// Loads the report.
-        /// </summary>
-        /// <param name="filename">Filename.</param>
-        /// <param name="parameters">Example: parameter1=someValue&parameter2=anotherValue</param>
-        /// <param name="connectionString">Relace all Connection string in report.</param>
-		/// <param name="overwriteConSubreport">If true connection string in subreport also will be overwrite</param>
-		public void LoadReport(Uri filename, string parameters, string connectionString, bool overwriteSubreportConnection = false)
-        {
+		/// <summary>
+		/// Loads the report.
+		/// </summary>
+		/// <param name="filename">Filename.</param>
+		/// <param name="parameters">Example: parameter1=someValue&parameter2=anotherValue</param>
+		/// <param name="connectionString">Relace all Connection string in report.</param>
+		/// <param name="overwriteSubreportConnection">If true connection string in subreport also will be overwrite</param>
+		public void LoadReport (Uri filename, string parameters, string connectionString, bool overwriteSubreportConnection = false)
+		{
 			SourceFile = filename;

 			this.connectionString = connectionString;
 			this.overwriteSubreportConnection = overwriteSubreportConnection;

-			LoadReport(filename, parameters);
-        }
+			LoadReport (filename, parameters);
+		}
+
+		/// <summary>
+		/// Loads the report.
+		/// </summary>
+		/// <param name="source">Xml source of report</param>
+		/// <param name="parameters">Example: parameter1=someValue&parameter2=anotherValue</param>
+		/// <param name="connectionString">Relace all Connection string in report.</param>
+		/// <param name="overwriteSubreportConnection">If true connection string in subreport also will be overwrite</param>
+		public void LoadReport(string source, string parameters, string connectionString, bool overwriteSubreportConnection = false)
+		{
+			this.connectionString = connectionString;
+			this.overwriteSubreportConnection = overwriteSubreportConnection;
+
+			LoadReport(source, parameters);
+		}

         /// <summary>
         /// Loads the report.


fixed bug with selection of multi component not forcing selection of a single selection. added more comments. removed commented out code

--- RelicModManager/Forms/ModSelectionList.cs
+++ RelicModManager/Forms/ModSelectionList.cs
@@ -1301,6 +1301,7 @@
             {
                 //check it and propagate change
                 spc.Checked = true;
+                //if it's a user checkbox end here
                 if (ipc is RelhaxUserCheckBox)
                     return;
                 //down
@@ -1327,11 +1328,15 @@
         {
             //the parent of the package we just checked
             SelectablePackage parent = null;
+            //if we're going up the tree, set the package to it's parent
+            //else use itself
             if (upDown)
                 parent = spc.Parent;
             else
                 parent = spc;
+            //first of all, check itself (if not checked already)
             parent.Checked = true;
+            //for each type of requried single selection, check if the package has them, and if any are enabled
             bool hasSingles = false;
             bool singleSelected = false;
             bool hasDD1 = false;
@@ -1340,12 +1345,16 @@
             bool DD2Selected = false;
             foreach (SelectablePackage childPackage in parent.Packages)
             {
+                //if the pacakge is enabled and it is of single type
                 if ((childPackage.Type.Equals("single") || childPackage.Type.Equals("single1")) && childPackage.Enabled)
                 {
+                    //then this package does have single type packages
                     hasSingles = true;
+                    //if it's checked, set that bool as well
                     if (childPackage.Checked)
                         singleSelected = true;
                 }
+                //same idea as above
                 else if ((childPackage.Type.Equals("single_dropdown") || childPackage.Type.Equals("single_dropdown1")) && childPackage.Enabled)
                 {
                     hasDD1 = true;
@@ -1359,7 +1368,8 @@
                         DD2Selected = true;
                 }
             }
-            //if going up, will only ever see radiobuttons
+            //if going up, will only ever see radiobuttons (not dropDown)
+            //check if this package is of single type, if it is then we need to unselect all other packages of this level
             if (upDown && (parent.Type.Equals("single") || parent.Type.Equals("single1")))
             {
                 foreach (SelectablePackage childPackage in parent.Parent.Packages)
@@ -1373,7 +1383,7 @@
                         }
                     }
                 }
-                singleSelected = true;
+                //singleSelected = true;
             }
             if (hasSingles && !singleSelected)
             {
@@ -1416,7 +1426,8 @@
                 }
             }
             if(upDown)
-                if (spc.Parent.Level >= 0)
+                if (parent.Level >= 0)
+                    //recursivly propagate the change back up the selection list
                     PropagateChecked(parent,true);
         }

@@ -1452,32 +1463,6 @@
                     PropagateDownNotChecked(childPackage);
             }
         }
-
-        /*
-        //propagaetes the change down the selection tree
-        void PropagateDownChecked(SelectablePackage spc)
-        {
-            bool singleSelected = false;
-            foreach (SelectablePackage childPackage in spc.Packages)
-            {
-                if ((childPackage.Type.Equals("single") || childPackage.Type.Equals("single1")) && childPackage.Enabled)
-                {
-                    if (!singleSelected)
-                    {
-                        childPackage.Checked = true;
-                        singleSelected = true;
-                        PropagateDownChecked(childPackage);
-                    }
-                    else
-                    {
-                        childPackage.Checked = false;
-                    }
-                }
-                //TODO: dropdown options
-
-            }
-        }
-        */

         //method for finding the location of which to put a control
         private int GetYLocation(System.Windows.Forms.Control.ControlCollection ctrl)


Instead of getting the Forms folder from the root web, GetFormsFolderFromList now gets it from the list's parent web. For root webs these two things are the same, but for subwebs, an error was thrown, "File not found."

--- Core/OfficeDevPnP.Core/Extensions/ListExtensions.cs
+++ Core/OfficeDevPnP.Core/Extensions/ListExtensions.cs
@@ -1869,7 +1869,7 @@
             Folder formsFolder = null;
             try
             {
-                formsFolder = clientContext.Web.GetFolderByServerRelativeUrl(list.RootFolder.ServerRelativeUrl + "/Forms");
+                formsFolder = list.ParentWeb.GetFolderByServerRelativeUrl(list.RootFolder.ServerRelativeUrl + "/Forms");
                 clientContext.ExecuteQueryRetry();
             }
             catch (FileNotFoundException)


Changed size of pyramid blocks in demo1 in advanced samples to be 32x32

--- Demos/AdvancedSamplesXNA/Demos/Demo1/Demo1Screen.cs
+++ Demos/AdvancedSamplesXNA/Demos/Demo1/Demo1Screen.cs
@@ -68,17 +68,17 @@

         public override void LoadContent()
         {
-            _rectangleTexture = DrawingHelper.CreateRectangleTexture(ScreenManager.GraphicsDevice, 25, 25, 2, 0, 0,
+            _rectangleTexture = DrawingHelper.CreateRectangleTexture(ScreenManager.GraphicsDevice, 32, 32, 2, 0, 0,
                                                                      Color.White, Color.Black);

-            _rectangleBody = BodyFactory.Instance.CreateRectangleBody(25, 25, 1f); //template
-            _rectangleGeom = GeomFactory.Instance.CreateRectangleGeom(_rectangleBody, 25, 25); //template
+            _rectangleBody = BodyFactory.Instance.CreateRectangleBody(32, 32, 1f); //template
+            _rectangleGeom = GeomFactory.Instance.CreateRectangleGeom(_rectangleBody, 32, 32); //template
             _rectangleGeom.FrictionCoefficient = .4f;
             _rectangleGeom.RestitutionCoefficient = 0f;

-            //create the _pyramid near the bottom of the screen.
-            _multithreadedPyramid = new MultithreadedPyramid(_rectangleBody, _rectangleGeom, 25f/8f, 25f/8f, 25, 25, pyramidBaseBodyCount,
-                                   new Vector2(ScreenManager.ScreenCenter.X - pyramidBaseBodyCount*.5f*(25 + 25/3),
+            //create the pyramid near the bottom of the screen.
+            _multithreadedPyramid = new MultithreadedPyramid(_rectangleBody, _rectangleGeom, 32f / 8f, 32f / 8f, 32, 32, pyramidBaseBodyCount,
+                                   new Vector2(ScreenManager.ScreenCenter.X - pyramidBaseBodyCount * .5f * (32 + 32 / 3),
                                                ScreenManager.ScreenHeight - 80));
             // POINT OF INTEREST
             // It needs the processor to register the links


removed dead code

removed dead code

--- DotJEM.Json.Storage.Test/Adapter/StorageAreaTest.cs
+++ DotJEM.Json.Storage.Test/Adapter/StorageAreaTest.cs
@@ -160,9 +160,6 @@

             long countBefore = area.Count();
             for (int i = 1; i < 101; i++) area.Insert("fiz", JObject.FromObject(new { i, text = "Just an item" }));
-
-            List<JObject> ten = area.Get("fiz", 20, 10).ToList();
-
             Assert.That(area.Count(), Is.EqualTo(countBefore+100));
         }
     }


further refactoring

further refactoring

--- EADatabaseTransformer/EADatabaseTransformerAddin.cs
+++ EADatabaseTransformer/EADatabaseTransformerAddin.cs
@@ -122,7 +122,7 @@
 			if (selectedPackage != null)
 			{
 				//debug
-				test(selectedPackage);
+				transform(selectedPackage);
 				//figure out which the database model is for this package
 				//if the database model is not defined yet then ask the user
 				//make a list of all the differences and show it to the user
@@ -130,66 +130,28 @@
 			}
 		}

-		void test(UML.Classes.Kernel.Package selectedPackage)
-		{
-			//TODO: setup DB2 factory, from config somewhere? Could be taken from EA?
-			List<DB_EA.BaseDataType> baseDatatypes = new List<DB_EA.BaseDataType>();
-			baseDatatypes.Add(new DB_EA.BaseDataType("CHAR",true, false));
-			baseDatatypes.Add(new DB_EA.BaseDataType("TIMESTAMP",false, false));
-			baseDatatypes.Add(new DB_EA.BaseDataType("DATE",false, false));
-			baseDatatypes.Add(new DB_EA.BaseDataType("DECIMAL",true, true));
-			DB_EA.DatabaseFactory.addFactory("DB2",baseDatatypes);
-			var factory = DB_EA.DatabaseFactory.getFactory("DB2");
-
-
-
-			var newDatabase = transformLDMToDB(selectedPackage  as UTF_EA.Package, factory);
+		void transform(UML.Classes.Kernel.Package selectedPackage)
+		{
+			var db2Transformer = new DB_EA.Transformation.DB2.DB2DatabaseTransformer(this.model);
+			var newDatabase = db2Transformer.transformLogicalPackage(selectedPackage);
 			this.dbCompareControl.loadNewDatabase(newDatabase);

 			var traces = selectedPackage.relationships.Where(x => x.stereotypes.Any(y => y.name.Equals("trace",StringComparison.InvariantCultureIgnoreCase))).Cast<UTF_EA.ConnectorWrapper>();
-			foreach (var trace in traces) {
+			foreach (var trace in traces)
+			{
 				if (trace.target.Equals(selectedPackage)
 				    && trace.source is UTF_EA.Package
 				    && trace.source.stereotypes.Any(x => x.name.Equals("Database",StringComparison.InvariantCultureIgnoreCase)))
 				{
-					DB_EA.Database originalDatabase = factory.createDataBase(trace.source as UTF_EA.Package);
+					DB_EA.Database originalDatabase = db2Transformer.factory.createDataBase(trace.source as UTF_EA.Package);
 					this.dbCompareControl.loadOriginalDatabase(originalDatabase);
 					break;//show only one
 				}
 			}
-
 		}
-//			Logger.log ("Database: " + database.name);
-//			foreach (var table in database.tables)
-//			{
-//				Logger.log("Table: " + table.name);
-//				foreach (var column in table.columns)
-//				{
-//					Logger.log("column: " + column.name +" "+ column.type.type.name + "(" + column.type.length + "," + column.type.precision + ")" + " Not Null: " + column.isNotNullable.ToString());
-//				}
-//				foreach (var constraint in table.constraints)
-//				{
-//					Logger.log("constraint: " + constraint.name);
-//					var foreignKey = constraint as DB.ForeignKey;
-//					if (foreignKey != null)
-//					{
-//						if (foreignKey.foreignTable  != null)
-//						{
-//							Logger.log("foreign table: " + foreignKey.foreignTable.name);
-//						}
-//						else
-//						{
-//							Logger.log("foreign table is null");
-//						}
-//					}
-//					foreach (var involvedColumn in constraint.involvedColumns)
-//					{
-//						Logger.log("involvedColumn: " + involvedColumn.name);
-//					}
-//				}
-//			}
+

-		//transform the daabase to
+		//transform the daabase to (not needed anymore)
 		private DB.Database transformLDMToDB(UTF_EA.Package ldmPackage, DB_EA.DatabaseFactory factory)
 		{
 			DB_EA.Database database = factory.createDatabase(ldmPackage.alias);


[CFM_759] Meanstreet Marshal

[CFM_759] Meanstreet Marshal

--- SabberStoneCore/CardSets/GangsCardsGen.cs
+++ SabberStoneCore/CardSets/GangsCardsGen.cs
@@ -808,11 +808,12 @@
 			// - DEATHRATTLE = 1
 			// --------------------------------------------------------
 			cards.Add("CFM_759", new List<Enchantment> {
-				// TODO [CFM_759] Meanstreet Marshal && Test: Meanstreet Marshal_CFM_759
 				new Enchantment
 				{
 					Activation = EnchantmentActivation.DEATHRATTLE,
-					SingleTask = null,
+					SingleTask = ComplexTask.Create(
+                        new SelfConditionTask(EntityType.SOURCE, SelfCondition.IsTagValue(GameTag.ATK, 2, RelaSign.GEQ)),
+                        new FlagTask(true, new DrawTask()))
 				},
 			});


We should activate the owner before forwarding mouse messages to it

--- src/ControlzEx/Controls/GlowWindow.xaml.cs
+++ src/ControlzEx/Controls/GlowWindow.xaml.cs
@@ -410,8 +410,10 @@
                 case WM.NCLBUTTONDOWN:
                     if (this.ownerWindowHandle != IntPtr.Zero)
                     {
+                        // WA_CLICKACTIVE = 2
+                        NativeMethods.SendMessage(this.ownerWindowHandle, WM.ACTIVATE, new IntPtr(2), IntPtr.Zero);
                         // Forward message to owner
-                        NativeMethods.PostMessage(this.ownerWindowHandle, WM.NCLBUTTONDOWN, wParam, IntPtr.Zero);
+                        NativeMethods.PostMessage(this.ownerWindowHandle, (WM)msg, wParam, IntPtr.Zero);
                     }
                     break;


Missing PageView crefs

Missing PageView crefs

--- src/Core/Managed/Shared/TelemetryClient.cs
+++ src/Core/Managed/Shared/TelemetryClient.cs
@@ -378,7 +378,7 @@

         /// <summary>
         /// Send information about the page viewed in the application.
-        /// Create a separate PageViewTelemetry instance for each call to TrackPageView.
+        /// Create a separate <see cref="PageViewTelemetry"/> instance for each call to <see cref="Microsoft.ApplicationInsights.TelemetryClient.TrackPageView(Microsoft.ApplicationInsights.Extensibility.DataContracts.PageViewTelemetry)"/>.
         /// </summary>
         public void TrackPageView(PageViewTelemetry telemetry)
         {


Fix compilation

Fix compilation

--- src/Core/Managed/Shared/TelemetryClient.cs
+++ src/Core/Managed/Shared/TelemetryClient.cs
@@ -104,7 +104,7 @@

         /// <summary>
         /// Send an <see cref="EventTelemetry"/> for display in Diagnostic Search and aggregation in Metrics Explorer.
-        /// Create a separate <see cref="EventTelemetry"/> instance for each call to <see cref="Microsoft.ApplicationInsights.TelemetryClient.TrackEvent(Microsoft.ApplicationInsights.Extensibility.DataContracts.EventTelemetry)"/>.
+        /// Create a separate <see cref="EventTelemetry"/> instance for each call to <see cref="TrackEvent(EventTelemetry)"/>.
         /// </summary>
         /// <param name="telemetry">An event log item.</param>
         public void TrackEvent(EventTelemetry telemetry)
@@ -173,7 +173,7 @@

         /// <summary>
         /// Send a trace message for display in Diagnostic Search.
-        /// Create a separate <see cref="TraceTelemetry"/> instance for each call to <see cref="Microsoft.ApplicationInsights.TelemetryClient.TrackTrace(Microsoft.ApplicationInsights.Extensibility.DataContracts.TraceTelemetry)"/>.
+        /// Create a separate <see cref="TraceTelemetry"/> instance for each call to <see cref="TrackTrace(TraceTelemetry)"/>.
         /// </summary>
         /// <param name="telemetry">Message with optional properties.</param>
         public void TrackTrace(TraceTelemetry telemetry)
@@ -201,7 +201,7 @@

         /// <summary>
         /// Send a <see cref="MetricTelemetry"/> for aggregation in Metric Explorer.
-        /// Create a separate <see cref="MetricTelemetry"/> instance for each call to <see cref="Microsoft.ApplicationInsights.TelemetryClient.TrackMetric(Microsoft.ApplicationInsights.Extensibility.DataContracts.MetricTelemetry)"/>.
+        /// Create a separate <see cref="MetricTelemetry"/> instance for each call to <see cref="TrackMetric(MetricTelemetry)"/>.
         /// </summary>
         public void TrackMetric(MetricTelemetry telemetry)
         {
@@ -243,7 +243,7 @@

         /// <summary>
         /// Send an <see cref="ExceptionTelemetry"/> for display in Diagnostic Search.
-        /// Create a separate <see cref="ExceptionTelemetry"/> instance for each call to <see cref="Microsoft.ApplicationInsights.TelemetryClient.TrackException(Microsoft.ApplicationInsights.Extensibility.DataContracts.ExceptionTelemetry)"/>
+        /// Create a separate <see cref="ExceptionTelemetry"/> instance for each call to <see cref="TrackException(ExceptionTelemetry)"/>
         /// </summary>
         public void TrackException(ExceptionTelemetry telemetry)
         {
@@ -274,7 +274,7 @@

         /// <summary>
         /// Send information about external dependency call in the application.
-        /// Create a separate <see cref="DependencyTelemetry"/> instance for each call to <see cref="Microsoft.ApplicationInsights.TelemetryClient.TrackDependency(Microsoft.ApplicationInsights.Extensibility.DataContracts.DependencyTelemetry)"/>
+        /// Create a separate <see cref="DependencyTelemetry"/> instance for each call to <see cref="TrackDependency(DependencyTelemetry)"/>
         /// </summary>
         public void TrackDependency(DependencyTelemetry telemetry)
         {
@@ -377,7 +377,7 @@

         /// <summary>
         /// Send information about the page viewed in the application.
-        /// Create a separate <see cref="PageViewTelemetry"/> instance for each call to <see cref="Microsoft.ApplicationInsights.TelemetryClient.TrackPageView(Microsoft.ApplicationInsights.Extensibility.DataContracts.PageViewTelemetry)"/>.
+        /// Create a separate <see cref="PageViewTelemetry"/> instance for each call to <see cref="TrackPageView(PageViewTelemetry)"/>.
         /// </summary>
         public void TrackPageView(PageViewTelemetry telemetry)
         {
@@ -404,7 +404,7 @@

         /// <summary>
         /// Send information about a request handled by the application.
-        /// Create a separate <see cref="RequestTelemetry"/> instance for each call to <see cref="Microsoft.ApplicationInsights.TelemetryClient.TrackRequest(Microsoft.ApplicationInsights.Extensibility.DataContracts.RequestTelemetry)"/>.
+        /// Create a separate <see cref="RequestTelemetry"/> instance for each call to <see cref="TrackRequest(RequestTelemetry)"/>.
         /// </summary>
         public void TrackRequest(RequestTelemetry request)
         {


Exposed IDependencyMap in CommandService.Execute

--- src/Discord.Net.Commands/CommandService.cs
+++ src/Discord.Net.Commands/CommandService.cs
@@ -188,9 +188,9 @@
                 return SearchResult.FromError(CommandError.UnknownCommand, "Unknown command.");
         }

-        public Task<IResult> Execute(CommandContext context, int argPos, MultiMatchHandling multiMatchHandling = MultiMatchHandling.Exception)
-            => Execute(context, context.Message.Content.Substring(argPos), multiMatchHandling);
-        public async Task<IResult> Execute(CommandContext context, string input, MultiMatchHandling multiMatchHandling = MultiMatchHandling.Exception)
+        public Task<IResult> Execute(CommandContext context, int argPos, IDependencyMap dependencyMap = null, MultiMatchHandling multiMatchHandling = MultiMatchHandling.Exception)
+            => Execute(context, context.Message.Content.Substring(argPos), dependencyMap, multiMatchHandling);
+        public async Task<IResult> Execute(CommandContext context, string input, IDependencyMap dependencyMap = null, MultiMatchHandling multiMatchHandling = MultiMatchHandling.Exception)
         {
             var searchResult = Search(context, input);
             if (!searchResult.IsSuccess)
@@ -199,7 +199,7 @@
             var commands = searchResult.Commands;
             for (int i = commands.Count - 1; i >= 0; i--)
             {
-                var preconditionResult = await commands[i].CheckPreconditions(context).ConfigureAwait(false);
+                var preconditionResult = await commands[i].CheckPreconditions(context, dependencyMap).ConfigureAwait(false);
                 if (!preconditionResult.IsSuccess)
                 {
                     if (commands.Count == 1)


Fix compile error.

Fix compile error.

--- ServiceBelt/Services/Data/MongoService.cs
+++ ServiceBelt/Services/Data/MongoService.cs
@@ -127,7 +127,7 @@
                 return new ListResponse<TSmo>
                     { Items = smoList, Count = smoList.Count, Limit = limit, Offset = skip, DbQuery = (query == null ? "" : query.ToString()) };
                 #else
-                return new Smo.ListResponse<TSmo>
+                return new ListResponse<TSmo>
                     { Items = smoList, Count = smoList.Count, Limit = limit, Offset = skip };
                 #endif
             }


DataPager: Removed some noise in generated HTML

--- src/DotVVM.Framework/Controls/DataPager.cs
+++ src/DotVVM.Framework/Controls/DataPager.cs
@@ -319,8 +319,7 @@

             // render page number
             NumberButtonsPlaceHolder.Children.Clear();
-            var li = CreatePageNumberButton(writer, context);
-            li.Render(writer, context);
+            RenderPageNumberButton(writer, context);

             writer.WriteKnockoutDataBindEndComment();

@@ -333,7 +332,7 @@
             GoToLastPageButton.Render(writer, context);
         }

-        protected virtual HtmlGenericControl CreatePageNumberButton(IHtmlWriter writer, IDotvvmRequestContext context)
+        protected virtual void RenderPageNumberButton(IHtmlWriter writer, IDotvvmRequestContext context)
         {
             HtmlGenericControl li = new HtmlGenericControl("li");
             var currentPageTextContext = DataContextStack.Create(typeof(int), NumberButtonsPlaceHolder.GetDataContextType());
@@ -346,17 +345,18 @@

             if (!RenderLinkForCurrentPage)
             {
-                writer.AddKnockoutDataBind("visible", "$data == $parent.PagingOptions().PageIndex()");
+                writer.AddKnockoutDataBind("if", "$data == $parent.PagingOptions().PageIndex()");
                 AddItemCssClass(writer, context);
-                AddKnockoutActiveCssDataBind(writer, context, "$data == $parent.PagingOptions().PageIndex()");
+                writer.AddAttribute("class", "active");
                 var literal = new Literal();
                 literal.DataContext = 0;
                 literal.SetBinding(Literal.TextProperty, currentPageTextBinding);
                 li.Children.Add(literal);
                 NumberButtonsPlaceHolder.Children.Add(li);
+
                 li.Render(writer, context);

-                writer.AddKnockoutDataBind("visible", "$data != $parent.PagingOptions().PageIndex()");
+                writer.AddKnockoutDataBind("if", "$data != $parent.PagingOptions().PageIndex()");
             }

             li = new HtmlGenericControl("li");
@@ -365,7 +365,10 @@

             NumberButtonsPlaceHolder.Children.Add(li);
             AddItemCssClass(writer, context);
-            AddKnockoutActiveCssDataBind(writer, context, "$data == $parent.PagingOptions().PageIndex()");
+
+            if (RenderLinkForCurrentPage)
+                AddKnockoutActiveCssDataBind(writer, context, "$data == $parent.PagingOptions().PageIndex()");
+
             li.SetValue(Internal.PathFragmentProperty, "PagingOptions.NearPageIndexes[$index]");
             var link = new LinkButton();
             li.Children.Add(link);
@@ -374,7 +377,8 @@
             link.SetBinding(ButtonBase.ClickProperty, commonBindings.GoToThisPageCommand);
             object enabledValue = GetValueRaw(EnabledProperty);
             if (!true.Equals(enabledValue)) link.SetValue(LinkButton.EnabledProperty, enabledValue);
-            return li;
+
+            li.Render(writer, context);
         }

         protected override void RenderEndTag(IHtmlWriter writer, IDotvvmRequestContext context)


Removed initialization as per codacy

Removed initialization as per codacy

--- src/FubarDev.FtpServer/FtpServerOptions.cs
+++ src/FubarDev.FtpServer/FtpServerOptions.cs
@@ -44,6 +44,6 @@
         /// This will cause connections to be refused if count is exceeded.
         /// 0 (default) means no control over connection count.
         /// </summary>
-        public int MaxActiveConnections { get; set; } = 0;
+        public int MaxActiveConnections { get; set; }
     }
 }


~commit 修复用户登录问题

~commit 修复用户登录问题

--- src/Joke.Web/Controllers/HomeController.cs
+++ src/Joke.Web/Controllers/HomeController.cs
@@ -38,6 +38,11 @@
         public ActionResult Login()
         {
             ViewBag.BgClass = "indexPage-body";
+            if(Request.IsAuthenticated)
+            {
+                return RedirectToAction("Profile","User",null);
+            }
+
             return View();
         }


Fix M-1303: Update an existing address when calling SaveCustomerAddress

--- src/Merchello.Core/Extensions.ICustomer.cs
+++ src/Merchello.Core/Extensions.ICustomer.cs
@@ -361,17 +361,21 @@
             {
                 if (address.IsDefault && adr.Key != address.Key && adr.AddressType == address.AddressType) adr.IsDefault = false;

-                if (addresses.Any(x => x.Key == address.Key))
+                if (adr.Key == address.Key)
                 {
+                    //Update, add the new address
                     isUpdate = true;
+                    addressList.Add(address);
                 }
-
-                addressList.Add(adr);
+                else
+                {
+                    addressList.Add(adr);
+                }
             }

-            if (!isUpdate) addresses.Add(address);
-
-            ((Customer)customer).Addresses = addresses;
+            if (!isUpdate) addressList.Add(address);
+
+            ((Customer)customer).Addresses = addressList;

             merchelloContext.Services.CustomerService.Save(customer);


Removed time-out from default values of MsSql

SVN: 488784591515bd4cdaa016be4ec9b172dc4e7caf@5512

--- src/NHibernate/Dialect/MsSql2000Dialect.cs
+++ src/NHibernate/Dialect/MsSql2000Dialect.cs
@@ -60,7 +60,6 @@
 		{
 			DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.SqlClientDriver";
 			DefaultProperties[Environment.BatchSize] = "20";
-			DefaultProperties[Environment.CommandTimeout] = "10";
 			DefaultProperties[Environment.QuerySubstitutions] = "true 1, false 0, yes 'Y', no 'N'";
 		}


Typos

Typos

--- src/NRoles.Engine/Core/operation_result.cs
+++ src/NRoles.Engine/Core/operation_result.cs
@@ -1,97 +1,97 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace NRoles.Engine {
-
-  /// <summary>
-  /// Encapulates the result of an operation.
-  /// </summary>
-  /// <remarks>
-  /// The result of an operation includes whether it was successful and
-  /// any generated messages.
-  /// </remarks>
-  public interface IOperationResult : IMessageContainer {
-
-    /// <summary>
-    /// Indicates if the operation was successful.
-    /// </summary>
-    bool Success { get; }
-  }
-
-  /// <summary>
-  /// Encapulates the result of an operation. Default implementation for <see cref="IOperationResult"/>.
-  /// </summary>
-  public class OperationResult : IOperationResult, Does<RMessageContainer> {
-
-    /// <summary>
-    /// Indicates if the operation was successful.
-    /// </summary>
-    /// <remarks>
-    /// Just checks if there are any error messages in this operation result's messages.
-    /// </remarks>
-    public bool Success {
-      get { return !this.HasError(); }
-    }
-
-    public IEnumerable<Message> Messages { [Placeholder] get { throw Away.Code; } }
-    [Placeholder] public void AddMessage(Message message) { throw Away.Code; }
-
-  }
-
-  /// <summary>
-  /// An operation result that encapsulates other operation results.
-  /// </summary>
-  public class CompositeOperationResult : IOperationResult {
-    List<IOperationResult> _children = new List<IOperationResult>();
-    OperationResult _defaultResult = new OperationResult();
-
-    /// <summary>
-    /// Creates a new instance of this class.
-    /// </summary>
-    public CompositeOperationResult() {
-      _children.Add(_defaultResult);
-    }
-
-    /// <summary>
-    /// The messages of the operation result. Combines all messages of the encapsulated results.
-    /// </summary>
-    public IEnumerable<Message> Messages {
-      get {
-        return _children.SelectMany(child => child.Messages);
-      }
-    }
-
-    /// <summary>
-    /// Adds a message to this operation result.
-    /// </summary>
-    /// <param name="message">Message to add.</param>
-    public void AddMessage(Message message) {
-      if (message == null) throw new ArgumentNullException("message");
-      _defaultResult.AddMessage(message);
-    }
-
-    /// <summary>
-    /// Indicates if the operation was successful.
-    /// </summary>
-    /// <remarks>
-    /// Checks if all of the encapsulated results are successful.
-    /// </remarks>
-    public bool Success {
-      get { return _children.All(child => child.Success); }
-    }
-
-    /// <summary>
-    /// Adds an operation result to this instance's encapsulated results.
-    /// </summary>
-    /// <param name="result">Result to add.</param>
-    public virtual void AddResult(IOperationResult result) {
-      if (result == null) return;
-      if (_children.Contains(result)) return; // this doesn't detect cycles if a child is also a composite
-      _children.Add(result);
-    }
-
-  }
-
-}
+ using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace NRoles.Engine {
+
+  /// <summary>
+  /// Encapsulates the result of an operation.
+  /// </summary>
+  /// <remarks>
+  /// The result of an operation includes whether it was successful and
+  /// any generated messages.
+  /// </remarks>
+  public interface IOperationResult : IMessageContainer {
+
+    /// <summary>
+    /// Indicates if the operation was successful.
+    /// </summary>
+    bool Success { get; }
+  }
+
+  /// <summary>
+  /// Encapsulates the result of an operation. Default implementation for <see cref="IOperationResult"/>.
+  /// </summary>
+  public class OperationResult : IOperationResult, Does<RMessageContainer> {
+
+    /// <summary>
+    /// Indicates if the operation was successful.
+    /// </summary>
+    /// <remarks>
+    /// Just checks if there are any error messages in this operation result's messages.
+    /// </remarks>
+    public bool Success {
+      get { return !this.HasError(); }
+    }
+
+    public IEnumerable<Message> Messages { [Placeholder] get { throw Away.Code; } }
+    [Placeholder] public void AddMessage(Message message) { throw Away.Code; }
+
+  }
+
+  /// <summary>
+  /// An operation result that encapsulates other operation results.
+  /// </summary>
+  public class CompositeOperationResult : IOperationResult {
+    List<IOperationResult> _children = new List<IOperationResult>();
+    OperationResult _defaultResult = new OperationResult();
+
+    /// <summary>
+    /// Creates a new instance of this class.
+    /// </summary>
+    public CompositeOperationResult() {
+      _children.Add(_defaultResult);
+    }
+
+    /// <summary>
+    /// The messages of the operation result. Combines all messages of the encapsulated results.
+    /// </summary>
+    public IEnumerable<Message> Messages {
+      get {
+        return _children.SelectMany(child => child.Messages);
+      }
+    }
+
+    /// <summary>
+    /// Adds a message to this operation result.
+    /// </summary>
+    /// <param name="message">Message to add.</param>
+    public void AddMessage(Message message) {
+      if (message == null) throw new ArgumentNullException("message");
+      _defaultResult.AddMessage(message);
+    }
+
+    /// <summary>
+    /// Indicates if the operation was successful.
+    /// </summary>
+    /// <remarks>
+    /// Checks if all of the encapsulated results are successful.
+    /// </remarks>
+    public bool Success {
+      get { return _children.All(child => child.Success); }
+    }
+
+    /// <summary>
+    /// Adds an operation result to this instance's encapsulated results.
+    /// </summary>
+    /// <param name="result">Result to add.</param>
+    public virtual void AddResult(IOperationResult result) {
+      if (result == null) return;
+      if (_children.Contains(result)) return; // this doesn't detect cycles if a child is also a composite
+      _children.Add(result);
+    }
+
+  }
+
+}


hotfix, $shop cmd help broken with no args

--- src/NadekoBot/Modules/Gambling/Gambling.cs
+++ src/NadekoBot/Modules/Gambling/Gambling.cs
@@ -377,8 +377,6 @@
         [RequireContext(ContextType.Guild)]
         public async Task Shop(params string[] args) //string item, string shopparams, [Remainder] string extraparams = null
         {
-            //if (args.Count() == 0)
-
             // Get user
             IGuildUser user = await Context.Guild.GetUserAsync(Context.User.Id);

@@ -390,7 +388,7 @@
             }

             // Sticker Shop Item
-            if (args[0] == "sticker")
+            if (args.Count() > 0 && args[0] == "sticker")
             {
                 bool expired = true;

@@ -438,7 +436,7 @@
             }

             // Name Color Shop Item
-            else if (args[0] == "namecolor")
+            else if (args.Count() > 0 && args[0] == "namecolor")
             {
                 long cost = 30;
                 bool custom = false;


Minor change which introduces repetition yet "buffs" gambling

--- src/NadekoBot/Modules/Gambling/Gambling.cs
+++ src/NadekoBot/Modules/Gambling/Gambling.cs
@@ -197,24 +197,26 @@
             if (rng < 67)
             {
                 str += "Better luck next time.";
+                await channel.SendErrorAsync(str).ConfigureAwait(false);
             }
             else if (rng < 91)
             {
                 str += $"Congratulations! You won {toWin}{Gambling.CurrencySign} for rolling above 66";
                 await CurrencyHandler.AddCurrencyAsync(guildUser, "Betroll Gamble", toWin, false).ConfigureAwait(false);
+                await channel.SendConfirmAsync(str).ConfigureAwait(false);
             }
             else if (rng < 100)
             {
                 str += $"Congratulations! You won {amount * 5}{Gambling.CurrencySign} for rolling above 90.";
                 await CurrencyHandler.AddCurrencyAsync(guildUser, "Betroll Gamble", amount * 5, false).ConfigureAwait(false);
+                await channel.SendConfirmAsync(str).ConfigureAwait(false);
             }
             else
             {
                 str += $"👑 Congratulations! You won {amount * 10}{Gambling.CurrencySign} for rolling **100**. 👑";
                 await CurrencyHandler.AddCurrencyAsync(guildUser, "Betroll Gamble", amount * 10, false).ConfigureAwait(false);
-            }
-
-            await channel.SendConfirmAsync(str).ConfigureAwait(false);
+                await channel.SendConfirmAsync(str).ConfigureAwait(false);
+            }
         }

         [NadekoCommand, Usage, Description, Aliases]


(TFS CS 6744)

(TFS CS 6744)

--- Signum.Web/LineHelpers/ValueLineHelper.cs
+++ Signum.Web/LineHelpers/ValueLineHelper.cs
@@ -32,7 +32,7 @@
         private static MvcHtmlString InternalValueLine(this HtmlHelper helper, ValueLine valueLine)
         {
             if (!valueLine.Visible || (valueLine.HideIfNull && valueLine.UntypedValue == null))
-                return null;
+                return MvcHtmlString.Empty;

             HtmlStringBuilder sb = new HtmlStringBuilder();
             if (valueLine.OnlyValue)


Removed some comment references to ditflo

--- src/Our.Umbraco.Ditto/Web/Mvc/DittoView.cs
+++ src/Our.Umbraco.Ditto/Web/Mvc/DittoView.cs
@@ -26,14 +26,14 @@
         /// <param name="viewData">The view data.</param>
         protected override void SetViewData(ViewDataDictionary viewData)
         {
-            // If model is already ditflo view model, use it
+            // If model is already ditto view model, use it
             if (viewData.Model is DittoViewModel<TViewModel>)
             {
                 base.SetViewData(viewData);
                 return;
             }

-            // Gather dit flow view model properties
+            // Gather ditto view model properties
             var model = viewData.Model;
             var processorContexts = new List<DittoProcessorContext>();

@@ -44,7 +44,7 @@
                 processorContexts = transferModel.ProcessorContexts;
             }

-            // Check to see if we are a dit flo view model at least and copy processors
+            // Check to see if we are a ditto view model at least and copy processors
             var baseDittoViewModel = model as BaseDittoViewModel;
             if (baseDittoViewModel != null)
             {


Temporairly changed daily to 1 mil for testing

--- SoraBot/SoraBot.Bot/Modules/CoinModule.cs
+++ SoraBot/SoraBot.Bot/Modules/CoinModule.cs
@@ -16,7 +16,7 @@
     public class CoinModule : SoraSocketCommandModule
     {
         public const short DAILY_COOLDOWN_HOURS = 20;
-        public const uint DAILY_REWARD = 500;
+        public const uint DAILY_REWARD = 1000000; // TODO CHANGE THIS BEFORE LAUNCH!!!

         private readonly IUserRepository _userRepo;
         private readonly ICoinRepository _coinRepo;


(#64) Remove comment

(#64) Remove comment

--- Source/Elements/TimerBars/TimerBarBase.cs
+++ Source/Elements/TimerBars/TimerBarBase.cs
@@ -179,10 +179,7 @@

             float w = TB.BgWidth;
             float h = Thin ? TB.BgSmallHeight : TB.BgDefaultHeight;
-            /*
-             0.028f -> 0.012f
-             0.036f -> 0.008f
-             */
+
             if (Highlight.HasValue)
             {
                 Color c = Highlight.Value;


Fix AllowAuditTracking(..) to enable audit trigger generation for static data entities.

--- Source/nHydrate.Generator/Models/Table.cs
+++ Source/nHydrate.Generator/Models/Table.cs
@@ -687,7 +687,8 @@
             get
             {
                 return _allowAuditTracking &&
-                    this.TypedTable == TypedTableConstants.None &&
+                    (this.TypedTable == TypedTableConstants.None ||
+                    this.TypedTable == TypedTableConstants.DatabaseTable) &&
                     !this.AssociativeTable;
             }
             set


Implement RunCommand function

Implement RunCommand function

--- src/Pomelo.NetCore.Node/Hubs/ProjectHub.cs
+++ src/Pomelo.NetCore.Node/Hubs/ProjectHub.cs
@@ -31,9 +31,32 @@
             }
         }

-        public Task<object> RunCommand(string projectName, string cmd, string projectPath)
-        {
-            throw new NotImplementedException();
+        public object RunCommand(string projectName, string args, string projectPath)
+        {
+            var proc = new Process();
+            try
+            {
+                proc.StartInfo.UseShellExecute = true;
+                proc.StartInfo.RedirectStandardError = true;
+                proc.StartInfo.RedirectStandardOutput = true;
+                proc.StartInfo.RedirectStandardInput = true;
+                proc.StartInfo.CreateNoWindow = true;
+                proc.StartInfo.WorkingDirectory = Path.Combine(Config.RootPath, projectName, projectPath);
+                proc.StartInfo.FileName = "dotnet";
+                proc.StartInfo.Arguments = "run " + args;
+                proc.Start();
+            }
+            catch (Exception ex)
+            {
+                return new { isSucceeded = false, msg = ex.ToString() };
+            }
+
+            ProcessPool.Add(proc);
+
+            // 将Caller加入process-id广播组
+            Groups.Add(Context.ConnectionId, "process-" + proc.Id);
+
+            return new { isSucceeded = true, pid = proc.Id };
         }

         public Task<object> ConsoleWrite(string sessionId, int sequence, char inputChar)


Fix area and _viewstart page does not include issue

--- src/Postal.AspNetCore/EmailViewRenderer.cs
+++ src/Postal.AspNetCore/EmailViewRenderer.cs
@@ -105,7 +105,10 @@

             // if populated will add searching the named Area for the view
             if (!string.IsNullOrWhiteSpace(areaName))
-                routeData.DataTokens["Area"] = areaName;
+            {
+                routeData.Values["area"] = areaName;
+                routeData.DataTokens["area"] = areaName;
+            }

             var actionDescriptor = new ActionDescriptor();
             actionDescriptor.RouteValues = routeData.Values.ToDictionary(kv => kv.Key, kv => kv.Value.ToString());
@@ -188,7 +191,7 @@
             List<string> searchedList = null;
             for (var i = 0; i < viewEngines.Count; i++)
             {
-                var result = viewEngines[i].FindView(context, viewName, false);
+                var result = viewEngines[i].FindView(context, viewName, true);
                 if (result.Success)
                 {
                     return result.View;


Just use result for now.

Just use result for now.

--- src/Projects/MyCouch/Net/HttpExtensions.cs
+++ src/Projects/MyCouch/Net/HttpExtensions.cs
@@ -24,14 +24,9 @@
                 : headers.ETag.Tag.Substring(1, headers.ETag.Tag.Length - 2);
         }

-        internal static async Task<Stream> ReadAsNonMarshalledStreamAsync(this HttpContent content)
-        {
-            return await content.ReadAsStreamAsync().ConfigureAwait(false);
-        }
-
         internal static Stream ReadAsStream(this HttpContent content)
         {
-            return content.ReadAsNonMarshalledStreamAsync().Result;
+            return content.ReadAsStreamAsync().Result;
         }
     }
 }


Fixes a bug where health checks were being serialized incorrectly.

--- Structurizr.Core/Model/HttpHealthCheck.cs
+++ Structurizr.Core/Model/HttpHealthCheck.cs
@@ -8,6 +8,7 @@
     /// <summary>
     /// Represents a HTTP-based health check.
     /// </summary>
+    [DataContract]
     public sealed class HttpHealthCheck : IEquatable<HttpHealthCheck>
     {


Fixed starts-with and ends-with

Fixed starts-with and ends-with

--- src/Searchlight.MongoDB/MongoDbExecutor.cs
+++ src/Searchlight.MongoDB/MongoDbExecutor.cs
@@ -155,10 +155,10 @@
                                 new BsonRegularExpression((string)rawValue, "i"));
                         case OperationType.StartsWith:
                             return Builders<T>.Filter.Regex(criteria.Column.FieldName,
-                                new BsonRegularExpression((string)rawValue, "i"));
+                                new BsonRegularExpression($"^{rawValue}", "i"));
                         case OperationType.EndsWith:
                             return Builders<T>.Filter.Regex(criteria.Column.FieldName,
-                                new BsonRegularExpression((string)rawValue, "i"));
+                                new BsonRegularExpression($"{rawValue}$", "i"));
                         default:
                             throw new NotImplementedException();
                     }


Fix exception message when migration number <= 0

--- src/SimpleMigrations/SimpleMigratorBase.cs
+++ src/SimpleMigrations/SimpleMigratorBase.cs
@@ -71,7 +71,7 @@
                              select new MigrationData(attribute.Version, attribute.Description ?? type.Name, type, attribute.UseTransaction)).ToList();

             if (migrations.Any(x => x.Version <= 0))
-                throw new MigrationException("Migrations must all have a version >= 0");
+                throw new MigrationException("Migrations must all have a version > 0");

             var initialMigration = new MigrationData(0, "Empty Schema", null, false);
             this.Migrations = new[] { initialMigration }.Concat(migrations).ToList().AsReadOnly();


fix wrong url in api for posting comments

--- src/Solomobro.Instagram/Endpoints/Media.cs
+++ src/Solomobro.Instagram/Endpoints/Media.cs
@@ -58,7 +58,7 @@

         internal async Task<Response> PostCommentAsync(string mediaId, string text)
         {
-            var uri = new Uri($"{EndpointUri}/{mediaId}?access_token={_accessToken}");
+            var uri = new Uri($"{EndpointUri}/{mediaId}/comments?access_token={_accessToken}");
             var data = new FormUrlEncodedContent(
                 new []{new KeyValuePair<string, string>("text", text), }
             );


Cleanup.

Cleanup.

--- src/TestLinker/Caching/LinkedNamesCache.cs
+++ src/TestLinker/Caching/LinkedNamesCache.cs
@@ -24,7 +24,6 @@
 using JetBrains.ReSharper.Psi.Files;
 using JetBrains.ReSharper.Psi.Tree;
 using JetBrains.Util;
-using NuGet;

 namespace TestLinker.Caching
 {


Replacing ContentTypeBase PropertyGroups/Types entirely should dirty the ppty

--- src/Umbraco.Core/Models/ContentTypeBase.cs
+++ src/Umbraco.Core/Models/ContentTypeBase.cs
@@ -373,6 +373,7 @@
             {
                 _propertyGroups = value;
                 _propertyGroups.CollectionChanged += PropertyGroupsChanged;
+                PropertyGroupsChanged(_propertyGroups, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
             }
         }

@@ -401,6 +402,7 @@
             {
                 _propertyTypes = new PropertyTypeCollection(value);
                 _propertyTypes.CollectionChanged += PropertyTypesChanged;
+                PropertyTypesChanged(_propertyTypes, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
             }
         }


change default ct icon

change default ct icon

--- src/Umbraco.Core/Models/ContentTypeBase.cs
+++ src/Umbraco.Core/Models/ContentTypeBase.cs
@@ -26,7 +26,7 @@
         private string _alias;
         private string _description;
         private int _sortOrder;
-        private string _icon = "folder.png";
+        private string _icon = "icon-folder";
         private string _thumbnail = "folder.png";
         private int _creatorId;
         private bool _allowedAsRoot;


Fixes: SqlMainDomLock when configured via appSettings cannot be used unless umbraco is installed #7967

--- src/Umbraco.Core/Runtime/SqlMainDomLock.cs
+++ src/Umbraco.Core/Runtime/SqlMainDomLock.cs
@@ -32,6 +32,7 @@
             // unique id for our appdomain, this is more unique than the appdomain id which is just an INT counter to its safer
             _lockId = Guid.NewGuid().ToString();
             _logger = logger;
+
             _dbFactory = new UmbracoDatabaseFactory(
                Constants.System.UmbracoConnectionName,
                _logger,
@@ -40,6 +41,12 @@

         public async Task<bool> AcquireLockAsync(int millisecondsTimeout)
         {
+            if (!_dbFactory.Configured)
+            {
+                // if we aren't configured, then we're in an install state, in which case we have no choice but to assume we can acquire
+                return true;
+            }
+
             if (!(_dbFactory.SqlContext.SqlSyntax is SqlServerSyntaxProvider sqlServerSyntaxProvider))
                 throw new NotSupportedException("SqlMainDomLock is only supported for Sql Server");

@@ -125,6 +132,12 @@
             {
                 // poll every 1 second
                 Thread.Sleep(1000);
+
+                if (!_dbFactory.Configured)
+                {
+                    // if we aren't configured, we just keep looping since we can't query the db
+                    continue;
+                }

                 lock (_locker)
                 {
@@ -358,41 +371,44 @@
                         _cancellationTokenSource.Cancel();
                         _cancellationTokenSource.Dispose();

-                        var db = GetDatabase();
-                        try
-                        {
-                            db.BeginTransaction(IsolationLevel.ReadCommitted);
-
-                            // get a write lock
-                            _sqlServerSyntax.WriteLock(db, Constants.Locks.MainDom);
-
-                            // When we are disposed, it means we have released the MainDom lock
-                            // and called all MainDom release callbacks, in this case
-                            // if another maindom is actually coming online we need
-                            // to signal to the MainDom coming online that we have shutdown.
-                            // To do that, we update the existing main dom DB record with a suffixed "_updated" string.
-                            // Otherwise, if we are just shutting down, we want to just delete the row.
-                            if (_mainDomChanging)
+                        if (_dbFactory.Configured)
+                        {
+                            var db = GetDatabase();
+                            try
                             {
-                                _logger.Debug<SqlMainDomLock>("Releasing MainDom, updating row, new application is booting.");
-                                db.Execute($"UPDATE umbracoKeyValue SET [value] = [value] + '{UpdatedSuffix}' WHERE [key] = @key", new { key = MainDomKey });
+                                db.BeginTransaction(IsolationLevel.ReadCommitted);
+
+                                // get a write lock
+                                _sqlServerSyntax.WriteLock(db, Constants.Locks.MainDom);
+
+                                // When we are disposed, it means we have released the MainDom lock
+                                // and called all MainDom release callbacks, in this case
+                                // if another maindom is actually coming online we need
+                                // to signal to the MainDom coming online that we have shutdown.
+                                // To do that, we update the existing main dom DB record with a suffixed "_updated" string.
+                                // Otherwise, if we are just shutting down, we want to just delete the row.
+                                if (_mainDomChanging)
+                                {
+                                    _logger.Debug<SqlMainDomLock>("Releasing MainDom, updating row, new application is booting.");
+                                    db.Execute($"UPDATE umbracoKeyValue SET [value] = [value] + '{UpdatedSuffix}' WHERE [key] = @key", new { key = MainDomKey });
+                                }
+                                else
+                                {
+                                    _logger.Debug<SqlMainDomLock>("Releasing MainDom, deleting row, application is shutting down.");
+                                    db.Execute("DELETE FROM umbracoKeyValue WHERE [key] = @key", new { key = MainDomKey });
+                                }
                             }
-                            else
+                            catch (Exception ex)
                             {
-                                _logger.Debug<SqlMainDomLock>("Releasing MainDom, deleting row, application is shutting down.");
-                                db.Execute("DELETE FROM umbracoKeyValue WHERE [key] = @key", new { key = MainDomKey });
+                                ResetDatabase();
+                                _logger.Error<SqlMainDomLock>(ex, "Unexpected error during dipsose.");
+                                _hasError = true;
                             }
-                        }
-                        catch (Exception ex)
-                        {
-                            ResetDatabase();
-                            _logger.Error<SqlMainDomLock>(ex, "Unexpected error during dipsose.");
-                            _hasError = true;
-                        }
-                        finally
-                        {
-                            db?.CompleteTransaction();
-                            ResetDatabase();
+                            finally
+                            {
+                                db?.CompleteTransaction();
+                                ResetDatabase();
+                            }
                         }
                     }
                 }


Fixes: SqlMainDom setting for Azure does not work in Load Balancing #8038

--- src/Umbraco.Core/Runtime/SqlMainDomLock.cs
+++ src/Umbraco.Core/Runtime/SqlMainDomLock.cs
@@ -5,6 +5,7 @@
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
+using System.Web;
 using Umbraco.Core.Logging;
 using Umbraco.Core.Persistence;
 using Umbraco.Core.Persistence.Dtos;
@@ -16,7 +17,7 @@
     internal class SqlMainDomLock : IMainDomLock
     {
         private string _lockId;
-        private const string MainDomKey = "Umbraco.Core.Runtime.SqlMainDom";
+        private const string MainDomKeyPrefix = "Umbraco.Core.Runtime.SqlMainDom";
         private const string UpdatedSuffix = "_updated";
         private readonly ILogger _logger;
         private IUmbracoDatabase _db;
@@ -125,6 +126,14 @@
             return Task.Factory.StartNew(ListeningLoop, _cancellationTokenSource.Token, TaskCreationOptions.LongRunning, TaskScheduler.Default);

         }
+
+        /// <summary>
+        /// Returns the keyvalue table key for the current server/app
+        /// </summary>
+        private string MainDomKey { get; } = MainDomKeyPrefix + "-"
+                                                + (NetworkHelper.MachineName    // eg DOMAIN\SERVER
+                                                + HttpRuntime.AppDomainAppId)   // eg /LM/S3SVC/11/ROOT
+                                            .GenerateHash();

         private void ListeningLoop()
         {


wrapping table name in brackets for CopyTable

--- TeslaSQL/DataCopy/MSSQLToMSSQLDataCopy.cs
+++ TeslaSQL/DataCopy/MSSQLToMSSQLDataCopy.cs
@@ -39,7 +39,7 @@
             CopyTableDefinition(sourceDB, table, schema, destDB);

             //can't parametrize tablename or schema name but they have already been validated against the server so it's safe
-            SqlCommand cmd = new SqlCommand("SELECT * FROM " + schema + "." + table);
+            SqlCommand cmd = new SqlCommand("SELECT * FROM [" + schema + "].[" + table + "]");
             CopyDataFromQuery(sourceDB, destDB, cmd, table, schema, timeout, timeout);
         }


Xamarin.Forms: Added InvalidateCache with string param

--- source/FFImageLoading.Forms/CachedImage.cs
+++ source/FFImageLoading.Forms/CachedImage.cs
@@ -563,6 +563,18 @@
 		}

 		/// <summary>
+		/// Invalidates cache for a specified key.
+		/// </summary>
+		/// <param name="source">Image key.</param>
+		/// <param name="cacheType">Cache type.</param>
+		/// <param name = "removeSimilar">If set to <c>true</c> removes all image cache variants
+		/// (downsampling and transformations variants)</param>
+		public static async Task InvalidateCache(string key, Cache.CacheType cacheType, bool removeSimilar = false)
+		{
+			await ImageService.Instance.InvalidateCacheEntryAsync(key, cacheType, removeSimilar);
+		}
+
+		/// <summary>
 		/// Occurs after image loading success.
 		/// </summary>
 		public event EventHandler<CachedImageEvents.SuccessEventArgs> Success;


out parameter discards simplified

out parameter discards simplified

--- source/Karambolo.Common/TypeNameBuilder.cs
+++ source/Karambolo.Common/TypeNameBuilder.cs
@@ -193,7 +193,7 @@
         public TypeName() { }

         public TypeName(string typeName)
-            : this(typeName, out var _) { }
+            : this(typeName, out _) { }

         public TypeName(string typeName, out string @namespace)
         {


Removed not used GetMethodsIgnoreCase

Removed not used GetMethodsIgnoreCase

--- Framework.Core/Theraot/Reflection/TypeExtensions.cs
+++ Framework.Core/Theraot/Reflection/TypeExtensions.cs
@@ -112,19 +112,6 @@
             return (TAttribute[])info.GetCustomAttributes(typeof(TAttribute), inherit);
         }

-        public static MethodInfo[] GetMethodsIgnoreCase(this Type type, BindingFlags flags, string name)
-        {
-            var list = new List<MethodInfo>();
-            foreach (var method in type.GetMethods(flags))
-            {
-                if (method.Name.Equals(name, StringComparison.CurrentCultureIgnoreCase))
-                {
-                    list.Add(method);
-                }
-            }
-            return list.ToArray();
-        }
-
         public static Type GetNonNullableType(this Type type)
         {
             if (type.IsNullable())


TRIF-1359: Can't export a CDA IG  - APTA Companion Guide for C-CDA R2.1

--- Trifolia.Export/MSWord/CodeSystemTable.cs
+++ Trifolia.Export/MSWord/CodeSystemTable.cs
@@ -33,15 +33,23 @@

             var implementationGuides = this.templates.Select(y => y.OwningImplementationGuideId).Distinct();

-            this.codeSystems = (from igcs in this.tdb.ViewImplementationGuideCodeSystems
-                                join ig in implementationGuides on igcs.ImplementationGuideId equals ig
-                                select new CodeSystemTable.CodeSystem()
-                                {
-                                    Name = igcs.Name,
-                                    Identifier = igcs.Identifier
-                                })
-                                .Distinct()
-                                .OrderBy(y => y.Name);
+            // Perform the query first, then determine the distinct values next. This is for performance. Without it being
+            // done like this, the DB query hangs forever.
+            var igCodeSytsems = (from igcs in this.tdb.ViewImplementationGuideCodeSystems
+                                 join ig in implementationGuides on igcs.ImplementationGuideId equals ig
+                                 select new CodeSystemTable.CodeSystem()
+                                 {
+                                     Name = igcs.Name,
+                                     Identifier = igcs.Identifier
+                                 }).ToList();
+            this.codeSystems = igCodeSytsems
+                .GroupBy(y => new { y.Identifier, y.Name })
+                .Select(y => new CodeSystemTable.CodeSystem()
+                {
+                    Name = y.First().Name,
+                    Identifier = y.First().Identifier
+                })
+                .OrderBy(y => y.Name);
         }

         /// <summary>


Added validation of audio ID when creating/updating exhibit pages

--- HiP-DataStore/Controllers/ExhibitPagesController.cs
+++ HiP-DataStore/Controllers/ExhibitPagesController.cs
@@ -330,6 +330,11 @@
                 ModelState.AddModelError(nameof(args.Image),
                     ErrorMessages.ImageNotFound(args.Image.Value));

+            // ensure referenced audio exists
+            if (args.Audio != null && !_mediaIndex.IsAudio(args.Audio.Value))
+                ModelState.AddModelError(nameof(args.Audio),
+                    ErrorMessages.AudioNotFound(args.Audio.Value));
+
             // ensure referenced slider page images exist
             if (args.Images != null)
             {


Improve click behavior

Improve click behavior

--- WalletWasabi.Gui/Controls/MultiTextBox.cs
+++ WalletWasabi.Gui/Controls/MultiTextBox.cs
@@ -91,9 +91,21 @@

 			Observable.FromEventPattern(text, nameof(text.PointerPressed))
 				.Merge(Observable.FromEventPattern(border, nameof(text.PointerPressed)))
-				.Subscribe(async _ =>
-				{
-					await OnClickedAsync();
+				.Throttle(TimeSpan.FromMilliseconds(500))
+				.Subscribe(async x =>
+				{
+					try
+					{
+						var eargs = x.EventArgs as Avalonia.Input.PointerPressedEventArgs;
+						if (eargs.MouseButton == Avalonia.Input.MouseButton.Left)
+						{
+							await OnClickedAsync();
+						}
+					}
+					catch (Exception ex)
+					{
+						Logging.Logger.LogInfo<MultiTextBox>(ex);
+					}
 				}).DisposeWith(Disposables);

 			this.WhenAnyValue(x => x.ClipboardNotificationVisible).Subscribe(visible =>


Commented out language preference because it is throwing too much error every time a user uses the application.

--- Web/Content/Filters/LocalizationFilter.cs
+++ Web/Content/Filters/LocalizationFilter.cs
@@ -15,11 +15,11 @@
             Translator.CurrentLanguage = Translator.defaultLanguage ?? "en";
             try
             {
-                UserIdentity user = (UserIdentity)HttpContext.Current.User.Identity;
-                if (user != null)
-                {
-                    Translator.CurrentLanguage = user.Profile.LanguageCode;
-                }
+                //UserIdentity user = (UserIdentity)HttpContext.Current.User.Identity;
+                //if (user != null)
+                //{
+                //    Translator.CurrentLanguage = user.Profile.LanguageCode;
+                //}
             }
             catch(Exception e){}
         }


Code cleanup / refactor (use foreach instead of for)

--- Xwt.XamMac/Xwt.Mac/MacClipboardBackend.cs
+++ Xwt.XamMac/Xwt.Mac/MacClipboardBackend.cs
@@ -86,8 +86,8 @@
 					return false;
 				}
 				var item = pb.PasteboardItems[0];
-				for (int i= 0; i< item.Types.Length; i++) {
-					if (item.Types[i].Equals("public.tiff") || item.Types[i].Equals("public.png")) {
+				foreach (string itemType in item.Types) {
+					if (itemType == "public.tiff" || itemType == "public.png") {
 						return true;
 					}
 				}


Refactor SendCardEmbedAsync to just use RespondAsync

--- YuGiOh.Bot/Modules/MainInteractionBase.cs
+++ YuGiOh.Bot/Modules/MainInteractionBase.cs
@@ -115,12 +115,7 @@

             embed = await embed.WithCardPrices(minimal, web ?? Web);

-            if (IsDeferred)
-                await FollowupAsync(embed: embed.Build());
-            else if (Context.Interaction.HasResponded)
-                await ReplyAsync(embed: embed.Build());
-            else
-                await RespondAsync(embed: embed.Build());
+            await RespondAsync(embed: embed.Build());

         }


Remove commented code (no implicit routing is required anymore)

--- src/Zinc.WebServices/Rest/ZincApiConfig.cs
+++ src/Zinc.WebServices/Rest/ZincApiConfig.cs
@@ -91,12 +91,6 @@
              * Web API routes
              */
             config.MapHttpAttributeRoutes();
-
-            //config.Routes.MapHttpRoute(
-            //    name: "ActionApi",
-            //    routeTemplate: "api/{controller}/{action}",
-            //    defaults: new { }
-            //);
         }
     }
 }


Add comment about PKCS#1/same as MSAL

Add comment about PKCS#1/same as MSAL

--- src/ADAL.PCL.CoreCLR/CryptographyHelper.cs
+++ src/ADAL.PCL.CoreCLR/CryptographyHelper.cs
@@ -64,6 +64,8 @@
             var privateKey = certificate.GetRSAPrivateKey();
             var messageBytes = Encoding.UTF8.GetBytes(message);

+            // Using PKCS#1 padding scheme – same as in MSAL:
+            // https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/blob/7fe94109/src/Microsoft.Identity.Client/Platforms/netstandard1.3/CryptographyHelper.cs#L68
             return privateKey.SignData(messageBytes, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
         }
     }


Make the pulling of PresentedViewController recursive to allow for a deeper modal chain then just one.

--- src/Acr.UserDialogs.iOS/UserDialogsImpl.cs
+++ src/Acr.UserDialogs.iOS/UserDialogsImpl.cs
@@ -345,9 +345,15 @@
                 return nav.VisibleViewController;

             if (root.PresentedViewController != null)
-                return root.PresentedViewController;
+                return this.GetCorrectPresentedViewController(root.PresentedViewController);

             return root;
+        }
+
+        private UIViewController GetCorrectPresentedViewController(UIViewController viewController) {
+            if (viewController.PresentedViewController != null)
+                return this.GetCorrectPresentedViewController(viewController.PresentedViewController);
+            return viewController;
         }
     }
 }


Change Lib.cs to use async/await

Change Lib.cs to use async/await

--- libs/lib1/Lib.cs
+++ libs/lib1/Lib.cs
@@ -5,6 +5,7 @@
 #else
 // Generic collections are just a part of
 using System.Net.Http;
+//using System.Threading.Tasks;
 #endif

 using System.Text.RegularExpressions;
@@ -18,20 +19,30 @@
 #else
         private readonly HttpClient _client = new HttpClient();
 #endif
-        public string Whee()
+
+#if NET40
+        public string GetDotNetCount()
         {
             string url = "http://www.dotnetfoundation.org/";
-
-#if NET40
+
             var uri = new Uri(url);
             var result = _client.DownloadString(uri);
-#else
-            var result = _client.GetStringAsync(url).Result;
-#endif

             int dotNetCount = Regex.Matches(result, ".NET").Count;

             return $"Dotnet Foundation mentions .NET {dotNetCount} times!";
         }
+#else
+        public string GetDotNetCountAsync()
+        {
+            string url = "http://www.dotnetfoundation.org/";
+
+            var result = await _client.GetStringAsync(url);
+
+            int dotNetCount = Regex.Matches(result, ".NET").Count;
+
+            return $"Dotnet Foundation mentions .NET {dotNetCount} times!";
+        }
+#endif
     }
 }


Incremented WebApi project minor version number

--- LinqToQuerystring.WebApi/Properties/AssemblyInfo.cs
+++ LinqToQuerystring.WebApi/Properties/AssemblyInfo.cs
@@ -32,5 +32,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.3.0.*")]
-[assembly: AssemblyFileVersion("1.3.0.0")]
+[assembly: AssemblyVersion("1.3.1.*")]
+[assembly: AssemblyFileVersion("1.3.1.0")]


Removed param

Removed param

--- LmpClient/Systems/VesselCrewSys/VesselCrewEvents.cs
+++ LmpClient/Systems/VesselCrewSys/VesselCrewEvents.cs
@@ -48,7 +48,6 @@
         /// <summary>
         /// Kerbal in eva is initialized with orbit data and ready to be sent to the server
         /// </summary>
-        /// <param name="evaVessel"></param>
         public void CrewEvaReady(Vessel evaVessel)
         {
             VesselProtoSystem.Singleton.MessageSender.SendVesselMessage(evaVessel);


Bump version to 0.1

Bump version to 0.1

--- MCServer-World-Converter/Properties/AssemblyInfo.cs
+++ MCServer-World-Converter/Properties/AssemblyInfo.cs
@@ -56,5 +56,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.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: AssemblyVersion("0.1.0.0")]
+[assembly: AssemblyFileVersion("0.1.0.0")]


No point adding an extra method call - we can afford the stack space either way...

--- src/Channels.WebSockets/WebSocketServer.cs
+++ src/Channels.WebSockets/WebSocketServer.cs
@@ -1046,17 +1046,13 @@
                     }
                     else
                     {
-                        return TryReadFrameHeaderMultiSpan(ref buffer, out frame);
-                    }
-                }
-                internal unsafe bool TryReadFrameHeaderMultiSpan(ref ReadableBuffer buffer, out WebSocketsFrame frame)
-                {
-                    // header is at most 14 bytes; can afford the stack for that - but note that if we aim for 16 bytes instead,
-                    // we will usually benefit from using 2 qword copies (handled internally); very very small messages ('a') might
-                    // have to use the slower version, but... meh
-                    byte* header = stackalloc byte[16];
-                    int inspectableBytes = SlowCopyFirst(buffer, header, 16);
-                    return TryReadFrameHeader(inspectableBytes, header, ref buffer, out frame);
+                        // header is at most 14 bytes; can afford the stack for that - but note that if we aim for 16 bytes instead,
+                        // we will usually benefit from using 2 qword copies (handled internally); very very small messages ('a') might
+                        // have to use the slower version, but... meh
+                        byte* header = stackalloc byte[16];
+                        int inspectableBytes = SlowCopyFirst(buffer, header, 16);
+                        return TryReadFrameHeader(inspectableBytes, header, ref buffer, out frame);
+                    }
                 }
                 internal unsafe bool TryReadFrameHeader(int inspectableBytes, byte* header, ref ReadableBuffer buffer, out WebSocketsFrame frame)
                 {


Adding source file standard header

Adding source file standard header

--- src/CommandLine/Core/KeyValuePairHelper.cs
+++ src/CommandLine/Core/KeyValuePairHelper.cs
@@ -1,8 +1,7 @@
-using System;
+// Copyright 2005-2015 Giacomo Stelluti Scala & Contributors. All rights reserved. See doc/License.md in the project root for license information.
+
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-
 using CommandLine.Infrastructure;

 namespace CommandLine.Core


remove unneeded method

remove unneeded method

--- src/Core/XmlTransformDocumentExtensions.cs
+++ src/Core/XmlTransformDocumentExtensions.cs
@@ -133,11 +133,6 @@

                 return this;
             }
-
-            public XmlDocument Done()
-            {
-                return _document;
-            }
         }
     }
 }


Support constraints involving multiple columns.

Patch from jiaguilera.

Possible fix to issue 34 (or at least fixes comment 7 in issue 34).

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

--- src/DbLinq.PostgreSql/PgsqlSchemaLoader.cs
+++ src/DbLinq.PostgreSql/PgsqlSchemaLoader.cs
@@ -106,7 +106,7 @@
                 //In Sasha's DB, they don't end with "_pkey", you need to rely on ReadForeignConstraints().
                 //In Northwind, they do end with "_pkey".
                 bool isPrimaryKey = keyColRow.ConstraintName.EndsWith("_pkey")
-                    || primaryKeys.Count(k => k.ConstraintName == keyColRow.ConstraintName) == 1;
+                    || primaryKeys.Count(k => k.ConstraintName == keyColRow.ConstraintName) > 0;

                 if (isPrimaryKey)
                 {


change help

change help

--- src/EventStore/esquery/CommandProcessor.cs
+++ src/EventStore/esquery/CommandProcessor.cs
@@ -271,7 +271,7 @@
         public override string ToString()
         {
             return "esquery help:\n" +
-                   "\th/help: prints help" +
+                   "\th/help: prints help\n" +
                    "\tq/query {js query} executes a query.\n" +
                    "\ta/append {stream} {js object}: appends to a stream.\n";
         }


+ FacebookSettings contains copy constructor

--- src/FacebookSharp.Core/FacebookSettings.cs
+++ src/FacebookSharp.Core/FacebookSettings.cs
@@ -8,6 +8,30 @@
         public FacebookSettings()
         {
             UserAgent = "FacebookSharp";
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="FacebookSettings"/> class.
+        /// </summary>
+        /// <param name="facebookSettings">
+        /// The facebook settings.
+        /// </param>
+        /// <remarks>
+        /// Copy constructor
+        /// </remarks>
+        public FacebookSettings(FacebookSettings facebookSettings)
+        {
+            if (facebookSettings == null)
+                return;
+
+            AccessToken = facebookSettings.AccessToken;
+            ApplicationKey = facebookSettings.ApplicationKey;
+            ApplicationSecret = facebookSettings.ApplicationSecret;
+            PostAuthorizeUrl = facebookSettings.PostAuthorizeUrl;
+            CanvasUrl = facebookSettings.CanvasUrl;
+            AccessExpires = facebookSettings.AccessExpires;
+            DefaultApplicationPermissions = facebookSettings.DefaultApplicationPermissions;
+            UserAgent = facebookSettings.UserAgent;
         }

         public string AccessToken { get; set; }
@@ -42,13 +66,13 @@
                     DefaultApplicationPermissions);
             }
         }
-
-		public string FacebookCanvasLoginStatusUrl
-		{
-			get
-			{
-				return Facebook.GenerateFacebookLoginStatusUrl(
-					new Dictionary<string, string>
+
+        public string FacebookCanvasLoginStatusUrl
+        {
+            get
+            {
+                return Facebook.GenerateFacebookLoginStatusUrl(
+                    new Dictionary<string, string>
 						{
 							{ "api_key", ApplicationKey },
 							{ "no_session", FacebookCanvasLoginUrl },
@@ -56,8 +80,8 @@
 							{ "ok_session", CanvasUrl },
 							{ "session_version", "3" }
 						});
-			}
-		}
+            }
+        }

         public string FacebookCanvasLoginJavascript
         {


Fixed typo

Fixed typo

--- src/Framework/N2/Persistence/IPersister.cs
+++ src/Framework/N2/Persistence/IPersister.cs
@@ -8,7 +8,7 @@
 	///
 	public interface IPersister: IDisposable
 	{
-        /// Gets the repository implementation used by this persister. Please note that using the using the repository circumvent events exposed by the persister and is not run in a transaction. Do net expect the behaviour to be exactly the same.
+        /// Gets the repository implementation used by this persister. Please note that using the using the repository circumvent events exposed by the persister and is not run in a transaction. Don't expect the behaviour to be exactly the same.
         IContentItemRepository Repository { get; }

 		/// Loads the content item with the supplied id or returns null if no items matches that identifier.


Reworked C++/CLI pointer type printing.

Reworked C++/CLI pointer type printing.

--- src/Generator/Generators/CLI/CLIMarshal.cs
+++ src/Generator/Generators/CLI/CLIMarshal.cs
@@ -1,7 +1,6 @@
 using System;
 using System.Text;
 using CppSharp.AST;
-using CppSharp.Generators.CSharp;
 using CppSharp.Types;
 using Delegate = CppSharp.AST.Delegate;

@@ -323,7 +322,7 @@
             // explicit GCHandle if necessary.

             var sb = new StringBuilder();
-            sb.AppendFormat("static_cast<::{0}>(", type);
+            sb.AppendFormat("static_cast<{0}>(", type);
             sb.Append("System::Runtime::InteropServices::Marshal::");
             sb.Append("GetFunctionPointerForDelegate(");
             sb.AppendFormat("{0}).ToPointer())", Context.Parameter.Name);
@@ -336,20 +335,9 @@
         {
             var pointee = pointer.Pointee;

-            var isVoidPtr = pointee.Desugar().IsPrimitiveType(PrimitiveType.Void);
-
-            var isUInt8Ptr = pointee.Desugar().IsPrimitiveType(PrimitiveType.UInt8);
-
-            if (isVoidPtr || isUInt8Ptr)
-            {
-                if (isUInt8Ptr)
-                    Context.Return.Write("({0})", "uint8*");
-                Context.Return.Write("{0}.ToPointer()", Context.Parameter.Name);
-                return true;
-            }
-
-            if (pointee.IsPrimitiveType(PrimitiveType.Char) ||
-                pointee.IsPrimitiveType(PrimitiveType.WideChar))
+            if ((pointee.IsPrimitiveType(PrimitiveType.Char) ||
+                pointee.IsPrimitiveType(PrimitiveType.WideChar)) &&
+                pointer.QualifiedPointee.Qualifiers.IsConst)
             {
                 Context.SupportBefore.WriteLine(
                     "auto _{0} = clix::marshalString<clix::E_UTF8>({1});",
@@ -362,8 +350,22 @@
             if (pointee is FunctionType)
             {
                 var function = pointee as FunctionType;
-                // TODO: We have to translate the function type typedef to C/C++
-                return VisitDelegateType(function, function.ToString());
+
+                var cppTypePrinter = new CppTypePrinter(Context.Driver.TypeDatabase);
+                var cppTypeName = pointer.Visit(cppTypePrinter, quals);
+
+                return VisitDelegateType(function, cppTypeName);
+            }
+
+            PrimitiveType primitive;
+            if (pointee.Desugar().IsPrimitiveType(out primitive))
+            {
+                var cppTypePrinter = new CppTypePrinter(Context.Driver.TypeDatabase);
+                var cppTypeName = pointer.Visit(cppTypePrinter, quals);
+
+                Context.Return.Write("({0})", cppTypeName);
+                Context.Return.Write("{0}.ToPointer()", Context.Parameter.Name);
+                return true;
             }

             return pointee.Visit(this, quals);


Extra tweaks to campaign/show view

Extra tweaks to campaign/show view

--- src/GiveCRM.Web/Views/Campaign/Show.cshtml
+++ src/GiveCRM.Web/Views/Campaign/Show.cshtml
@@ -18,9 +18,8 @@
 		@using (Html.BeginForm())
 		{
 			@Html.ValidationSummary(true)
-
+
General Details

 			<fieldset>
-				<legend>General</legend>
 				@Html.HiddenFor(m => m.Campaign.Id)

@@ -38,35 +37,39 @@

 			</fieldset>

-			<fieldset>
-				<legend>Recipient List</legend>
-				@* TODO(BS) Build logic to create recipient list generation *@
-

-

-						@Html.ActionLink("Add new search filter", "AddMembershipSearchFilter", new { campaignId = Model.Campaign.Id })
+
Recipient Listing

+
+			@* TODO(BS) Build logic to create recipient list generation *@
+
Search Filters

+

+				@if (Model.SearchFilters.Any() == false) {
+					@Model.NoSearchFiltersText;
+				}
+				else {
+					foreach (MemberSearchFilterViewModel filterViewModel in Model.SearchFilters) {
+

+							@filterViewModel.CriteriaDisplayText
+							@Html.ActionLink("[x]", "DeleteMemberSearchFilter", new {
+								campaignId = filterViewModel.CampaignId,
+								memberSearchFilterId = filterViewModel.MemberSearchFilterId
+							})
+

+					}
+				}

-						@if (Model.SearchFilters.Any() == false) {
-							@Model.NoSearchFiltersText;
-						}
-

-						@foreach (MemberSearchFilterViewModel filterViewModel in Model.SearchFilters) {
-

-								@filterViewModel.CriteriaDisplayText
-								@Html.ActionLink("[x]", "DeleteMemberSearchFilter", new	{
-									campaignId = filterViewModel.CampaignId,
-									memberSearchFilterId = filterViewModel.MemberSearchFilterId
-								})
-

-						}
-

-
-					@* TODO(BS) search results goes here *@
-

-

-					<input type="submit" value="Create Campaign" class="btn primary @formWidthClass" />
-

-			</fieldset>
-		}
+

+					@Html.ActionLink("Add new search filter", "AddMembershipSearchFilter", new { campaignId = Model.Campaign.Id })
+

+

+
+
Matched Recipient Listing

+			@* TODO *@
+
+
+

+				<input type="submit" value="Save Campaign" class="btn primary @formWidthClass" />
+

+  }


Fix the GaugeLogMetrics Rejection increment

--- src/Hudl.Mjolnir/Events/GaugeLogMetrics.cs
+++ src/Hudl.Mjolnir/Events/GaugeLogMetrics.cs
@@ -109,7 +109,7 @@
             var log = $"RejectedByBulkhead - [Bulkhead={bulkheadName}, Command={commandName}]";
             _diagnosticLog.Debug(log);
             _concurrencyExceededLog.Debug(log);
-            _currentBulkheadsRejected.AddOrUpdate(bulkheadName, 1, (bh, current) => current++);
+            _currentBulkheadsRejected.AddOrUpdate(bulkheadName, 1, (bh, current) => ++current);
         }
     }
 }


Reverted the UserAgent change as apps fail cert with that approach

--- src/HybridWebApp.Toolkit/BrowserWrapper.cs
+++ src/HybridWebApp.Toolkit/BrowserWrapper.cs
@@ -33,22 +33,7 @@
             get { return this.WebView.CanGoForward; }
         }

-        private string _UserAgent;
-
-        public string UserAgent
-        {
-            get { return _UserAgent; }
-            internal set
-            {
-                if (_UserAgent == value)
-                {
-                    return;
-                }
-
-                _UserAgent = value;
-                _SetUserAgent(_UserAgent);
-            }
-        }
+        public string UserAgent { get; internal set; }

         private Uri _CurrentUri;

@@ -139,6 +124,16 @@

             var httpRequestMessage = new Windows.Web.Http.HttpRequestMessage(httpMethod, uri);

+            foreach (var httpHeader in httpHeaders)
+            {
+                httpRequestMessage.Headers.Add(httpHeader);
+            }
+
+            if (!string.IsNullOrWhiteSpace(this.UserAgent))
+            {
+                httpRequestMessage.Headers.UserAgent.Add(new Windows.Web.Http.Headers.HttpProductInfoHeaderValue(this.UserAgent));
+            }
+
             if (httpContent != null)
             {
                 httpRequestMessage.Content = httpContent;
@@ -156,19 +151,5 @@
         {
             this.WebView.GoForward();
         }
-
-        #region User Agent Import
-
-        [DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
-        private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
-
-        const int URLMON_OPTION_USERAGENT = 0x10000001;
-
-        private void _SetUserAgent(string Agent)
-        {
-            UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, Agent, Agent.Length, 0);
-        }
-
-        #endregion
     }
 }


Changed the name of the SimpleNodeExtensions class to properly reflect the name of the type that its an extension for.

--- src/Hyde.Test/TableStorageProviderTests.cs
+++ src/Hyde.Test/TableStorageProviderTests.cs
@@ -8,7 +8,7 @@

 namespace TechSmith.Hyde.Test
 {
-   public static class SimpleNodeExtensions
+   public static class SimpleDataItemExtensions
    {
       public static bool ComesBefore( this SimpleDataItem thisNode, IEnumerable<SimpleDataItem> listOfDataItems, SimpleDataItem laterNode )
       {


Use 'nested type' nomination for OVERLAPPED

--- src/Kernel32.Shared/Kernel32+OVERLAPPED.cs
+++ src/Kernel32.Shared/Kernel32+OVERLAPPED.cs
@@ -4,11 +4,10 @@
 namespace PInvoke
 {
     using System;
-    using System.Diagnostics.CodeAnalysis;
     using System.Runtime.InteropServices;

     /// <content>
-    /// Contains the <see cref="OVERLAPPED"/> nested class.
+    /// Contains the <see cref="OVERLAPPED"/> nested type.
     /// </content>
     public partial class Kernel32
     {


Allow us to check if there are sensitive field to be checked for so we don't have to do work if there is none.

--- Mindscape.Raygun4Net/RaygunRequestMessageOptions.cs
+++ Mindscape.Raygun4Net/RaygunRequestMessageOptions.cs
@@ -45,6 +45,11 @@
     public bool IsSensitveFieldIgnored(string name)
     {
       return IsIgnored(name, _ignoredSensitiveFieldNames);
+    }
+
+    public bool HasSensitiveFieldsToIgnore()
+    {
+      return _ignoredSensitiveFieldNames.Count > 0;
     }

     // Form fields


Improve link.

Improve link.

--- MitternachtWeb/Areas/Guild/Views/Warns/Index.cshtml
+++ MitternachtWeb/Areas/Guild/Views/Warns/Index.cshtml
@@ -33,7 +33,7 @@
 						}

-
+
 							@warn.Username


ErrorCategory列挙体のXMLドキュメントを更新

ErrorCategory列挙体のXMLドキュメントを更新

--- src/Lury/Compiling/Logger/ErrorCategory.cs
+++ src/Lury/Compiling/Logger/ErrorCategory.cs
@@ -38,7 +38,7 @@
         #region Generic Error

         /// <summary>
-        /// 不明なエラー。
+        /// 不明なエラー。未分類のエラーに対しても与えられます。
         /// </summary>
         Unknown = 0,


Obsolete render method for DfmFencesBlockToken. (#1931)

--- src/Microsoft.DocAsCode.Dfm/DfmRenderer.cs
+++ src/Microsoft.DocAsCode.Dfm/DfmRenderer.cs
@@ -172,6 +172,7 @@
             return _codeRenderer.Render(renderer, token, context);
         }

+        [Obsolete]
         public virtual StringBuffer Render(IMarkdownRenderer renderer, DfmFencesBlockToken token, MarkdownBlockContext context)
         {
             return Render(renderer, token, (IMarkdownContext)context);


Add overload instead of change method sig.

--- src/Microsoft.DocAsCode.Dfm/DfmRenderer.cs
+++ src/Microsoft.DocAsCode.Dfm/DfmRenderer.cs
@@ -178,6 +178,11 @@
             }
         }

+        public virtual StringBuffer Render(IMarkdownRenderer renderer, DfmFencesBlockToken token, MarkdownBlockContext context)
+        {
+            return Render(renderer, token, (IMarkdownContext)context);
+        }
+
         public virtual StringBuffer Render(IMarkdownRenderer renderer, DfmNoteBlockToken token, MarkdownBlockContext context)
         {
             return token.Content;


Patch from Will Shaver:
Adding left & right functions to SQL 2000 / 2005 dialect.

SVN: 488784591515bd4cdaa016be4ec9b172dc4e7caf@3456

--- src/NHibernate/Dialect/MsSql2000Dialect.cs
+++ src/NHibernate/Dialect/MsSql2000Dialect.cs
@@ -113,6 +113,9 @@
 			RegisterFunction("tan", new StandardSQLFunction("tan", NHibernateUtil.Double));
 			RegisterFunction("variance", new StandardSQLFunction("variance", NHibernateUtil.Double));

+			RegisterFunction("left", new SQLFunctionTemplate(NHibernateUtil.String, "left(?1, ?2)"));
+			RegisterFunction("right", new SQLFunctionTemplate(NHibernateUtil.String, "right(?1, ?2)"));
+
 			RegisterFunction("current_timestamp", new NoArgSQLFunction("getdate", NHibernateUtil.DateTime, true));
 			RegisterFunction("second", new SQLFunctionTemplate(NHibernateUtil.Int32, "datepart(second, ?1)"));
 			RegisterFunction("minute", new SQLFunctionTemplate(NHibernateUtil.Int32, "datepart(minute, ?1)"));
@@ -479,4 +482,4 @@
 			return new MsSqlDataBaseSchema(connection);
 		}
 	}
-}+}


otherProjectDirectories cached outside loop

--- src/OmniSharp.Roslyn/OmniSharpWorkspace.cs
+++ src/OmniSharp.Roslyn/OmniSharpWorkspace.cs
@@ -374,6 +374,10 @@
                 var fileDirectory = new FileInfo(fileName).Directory;
                 var projectPath = project.FilePath;
                 var projectDirectory = new FileInfo(projectPath).Directory.FullName;
+                var otherProjectDirectories = CurrentSolution.Projects
+                    .Where(p => p != project && !string.IsNullOrWhiteSpace(p.FilePath))
+                    .Select(p => new FileInfo(p.FilePath).Directory.FullName)
+                    .ToImmutableArray();

                 while (fileDirectory != null)
                 {
@@ -383,8 +387,7 @@
                     }

                     // if any project is closer to the file, file should belong to that project.
-                    if (CurrentSolution.Projects.Any(p => !string.IsNullOrWhiteSpace(p.FilePath) &&
-                        string.Equals(fileDirectory.FullName, Path.GetDirectoryName(p.FilePath), StringComparison.OrdinalIgnoreCase)))
+                    if (otherProjectDirectories.Contains(fileDirectory.FullName, StringComparer.OrdinalIgnoreCase))
                     {
                         return false;
                     }


added missing file

added missing file

--- Mongo.Migration.Test/Performance/PerformanceTest.cs
+++ Mongo.Migration.Test/Performance/PerformanceTest.cs
@@ -14,7 +14,22 @@
     [TestFixture]
     public class PerformanceTest
     {
-        private void InsertMany(int number, bool withVersion, MongoClient client)
+        [TearDown]
+        public void TearDown()
+        {
+            MongoMigration.Reset();
+        }
+
+        [SetUp]
+        public void SetUp()
+        {
+            var runner = MongoDbRunner.StartForDebugging();
+            _client = new MongoClient(runner.ConnectionString);
+        }
+
+        private MongoClient _client;
+
+        private void InsertMany(int number, bool withVersion)
         {
             var documents = new List<BsonDocument>();
             for (var n = 0; n < number; n++)
@@ -28,84 +43,71 @@
                 documents.Add(document);
             }

-            client.GetDatabase("PerformanceTest").GetCollection<BsonDocument>("Tests").InsertManyAsync(documents)
+            _client.GetDatabase("PerformanceTest").GetCollection<BsonDocument>("Tests").InsertManyAsync(documents)
                 .Wait();
         }

-        private void MigrateAll(MongoClient client, bool withVersion)
+        private void MigrateAll(bool withVersion)
         {
             if (withVersion)
             {
-                var versionedCollectin = client.GetDatabase("PerformanceTest")
+                var versionedCollectin = _client.GetDatabase("PerformanceTest")
                     .GetCollection<TestDocumentWithTwoMigrationHighestVersion>("Tests");
                 var versionedResult = versionedCollectin.FindAsync(_ => true).Result.ToListAsync().Result;
                 return;
             }

-            var collection = client.GetDatabase("PerformanceTest")
+            var collection = _client.GetDatabase("PerformanceTest")
                 .GetCollection<TestClass>("Tests");
             var result = collection.FindAsync(_ => true).Result.ToListAsync().Result;
         }

-        [TearDown]
-        public void TearDown()
+        private void AddDocumentsToCache()
         {
-            MongoMigration.Reset();
+            InsertMany(1000, false);
+            MigrateAll(false);
         }

-        [SetUp]
-        public void SetUp()
+        private void ClearCollection()
         {
-
+            _client.GetDatabase("PerformanceTest").DropCollection("Tests");
         }

         [Test]
         public void When_migrating_number_of_documents()
         {
             // Arrange
-            var swWithMigration = new Stopwatch();
-            var runner = MongoDbRunner.StartForDebugging();
-            var client = new MongoClient(runner.ConnectionString);

-
-            AddDocumentsToCache(client);
-            client.GetDatabase("PerformanceTest").DropCollection("Tests");
+            ClearCollection();
+            AddDocumentsToCache();
+            ClearCollection();

             // Act
             // Measure time of MongoDb processing without Mongo.Migration
             var sw = new Stopwatch();
             sw.Start();
-            InsertMany(1000, false, client);
-            MigrateAll(client, false);
+            InsertMany(1000, false);
+            MigrateAll(false);
             sw.Stop();
-            client.GetDatabase("PerformanceTest").DropCollection("Tests");
+            ClearCollection();

             // Measure time of MongoDb processing without Mongo.Migration
             MongoMigration.Initialize();

+            var swWithMigration = new Stopwatch();
             swWithMigration.Start();
-            InsertMany(1000, true, client);
-            MigrateAll(client, true);
+            InsertMany(1000, true);
+            MigrateAll(true);
             swWithMigration.Stop();

-            client.GetDatabase("PerformanceTest").DropCollection("Tests");
+            ClearCollection();

             var result = swWithMigration.ElapsedMilliseconds - sw.ElapsedMilliseconds;

-            Console.WriteLine($"MongoDB: {sw.ElapsedMilliseconds}, Mongo.Migration: {swWithMigration.ElapsedMilliseconds}, Diff: {result}");
+            Console.WriteLine(
+                $"MongoDB: {sw.ElapsedMilliseconds}, Mongo.Migration: {swWithMigration.ElapsedMilliseconds}, Diff: {result}");

             result.Should().BeLessThan(500);
         }
-
-        private void AddDocumentsToCache(MongoClient client)
-        {
-            InsertMany(1000, false, client);
-            MigrateAll(client, false);
-        }
-
-        private void ClearCollection(client)
-        {
-            client.GetDatabase("PerformanceTest").DropCollection("Tests");
-        }
     }
 }


Closes #28

Closes #28

--- NControl.Controls/NControl.Controls/WizardLayout.cs
+++ NControl.Controls/NControl.Controls/WizardLayout.cs
@@ -86,7 +86,7 @@
         /// <value>The pages.</value>
         public IList<View> Pages
 		{
-			get { return _pages; }
+			get { return _pages; }
 		}

         #endregion


Fixed the TextBox template.

Fixed the TextBox template.

Previous change to add floating watermark had broken vertical scrolling.

--- src/Perspex.Themes.Default/TextBoxStyle.cs
+++ src/Perspex.Themes.Default/TextBoxStyle.cs
@@ -60,35 +60,35 @@
                 [~Border.BorderBrushProperty] = control[~TemplatedControl.BorderBrushProperty],
                 [~Border.BorderThicknessProperty] = control[~TemplatedControl.BorderThicknessProperty],

-                Child = new StackPanel
+                Child = new ScrollViewer
                 {
-                    Children = new Controls.Controls
+                    [~ScrollViewer.CanScrollHorizontallyProperty] = control[~ScrollViewer.CanScrollHorizontallyProperty],
+                    [~ScrollViewer.HorizontalScrollBarVisibilityProperty] = control[~ScrollViewer.HorizontalScrollBarVisibilityProperty],
+                    [~ScrollViewer.VerticalScrollBarVisibilityProperty] = control[~ScrollViewer.VerticalScrollBarVisibilityProperty],
+                    Content = new StackPanel
                     {
-                        new TextBlock
+                        Children = new Controls.Controls
                         {
-                            Name  = "floatingWatermark",
-                            Foreground = SolidColorBrush.Parse("#007ACC"),
-                            FontSize = 10,
-                            [~TextBlock.TextProperty] = control[~TextBox.WatermarkProperty],
-                            [~TextBlock.IsVisibleProperty] = control[~TextBox.TextProperty].Cast<string>().Select(x => (object)(!string.IsNullOrEmpty(x) && control.UseFloatingWatermark))
-                        },
-                        new Panel
-                        {
-                            Children = new Controls.Controls
+                            new TextBlock
                             {
-                                new TextBlock
+                                Name  = "floatingWatermark",
+                                Foreground = SolidColorBrush.Parse("#007ACC"),
+                                FontSize = 10,
+                                [~TextBlock.TextProperty] = control[~TextBox.WatermarkProperty],
+                                [~TextBlock.IsVisibleProperty] = control[~TextBox.TextProperty].Cast<string>().Select(x => (object)(!string.IsNullOrEmpty(x) && control.UseFloatingWatermark))
+                            },
+                            new Panel
+                            {
+                                Children = new Controls.Controls
                                 {
-                                    Name = "watermark",
-                                    Opacity = 0.5,
-                                    [~TextBlock.TextProperty] = control[~TextBox.WatermarkProperty],
-                                    [~TextBlock.IsVisibleProperty] = control[~TextBox.TextProperty].Cast<string>().Select(x => (object)string.IsNullOrEmpty(x))
-                                },
-                                new ScrollViewer
-                                {
-                                    [~ScrollViewer.CanScrollHorizontallyProperty] = control[~ScrollViewer.CanScrollHorizontallyProperty],
-                                    [~ScrollViewer.HorizontalScrollBarVisibilityProperty] = control[~ScrollViewer.HorizontalScrollBarVisibilityProperty],
-                                    [~ScrollViewer.VerticalScrollBarVisibilityProperty] = control[~ScrollViewer.VerticalScrollBarVisibilityProperty],
-                                    Content = new TextPresenter
+                                    new TextBlock
+                                    {
+                                        Name = "watermark",
+                                        Opacity = 0.5,
+                                        [~TextBlock.TextProperty] = control[~TextBox.WatermarkProperty],
+                                        [~TextBlock.IsVisibleProperty] = control[~TextBox.TextProperty].Cast<string>().Select(x => (object)string.IsNullOrEmpty(x))
+                                    },
+                                    new TextPresenter
                                     {
                                         Name = "textPresenter",
                                         [~TextPresenter.CaretIndexProperty] = control[~TextBox.CaretIndexProperty],
@@ -99,9 +99,9 @@
                                     }
                                 }
                             }
-                        }
+                        }
                     }
-                },
+                }
             };

             return result;