Return null, if there are now songs

Return null, if there are now songs

--- Espera/Espera.View/ViewModels/MainViewModel.cs
+++ Espera/Espera.View/ViewModels/MainViewModel.cs
@@ -253,14 +253,22 @@
         /// <summary>
         /// Gets the total remaining time of all songs that come after the currently played song.
         /// </summary>
-        public TimeSpan TimeRemaining
-        {
-            get
-            {
-                return this.Playlist
+        public TimeSpan? TimeRemaining
+        {
+            get
+            {
+                var songs = this.Playlist
                     .SkipWhile(song => song.IsInactive)
-                    .Select(song => song.Duration)
-                    .Aggregate((t1, t2) => t1 + t2);
+                    .ToList();
+
+                if (songs.Any())
+                {
+                    return songs
+                        .Select(song => song.Duration)
+                        .Aggregate((t1, t2) => t1 + t2);
+                }
+
+                return null;
             }
         }


Added more explanation and simplified the condition

--- Espera/Espera.View/ViewModels/MainViewModel.cs
+++ Espera/Espera.View/ViewModels/MainViewModel.cs
@@ -414,22 +414,17 @@
                 (
                     param =>
                     {
-                        // Some callers want to ignore if a song is paused and want to play the currently
-                        // selected song, instead of continuing the currently paused song.
-                        // This decision is passed as parameter.
-                        bool ignorePause;
-
+                        /*
+                         * Some callers want to ignore if a song is paused and want to play the currently
+                         * selected song, instead of continuing the currently paused song.
+                         * This decision is passed as parameter.
+                         *
+                         * XAML commands pass the parameter as string, code-behind commands pass the parameter
+                         * as boolean, so we have to check what type it is.
+                         */
                         var value = param as string;

-                        if (value != null)
-                        {
-                            ignorePause = Boolean.Parse(value);
-                        }
-
-                        else
-                        {
-                            ignorePause = (bool)param;
-                        }
+                        bool ignorePause = value == null ? (bool) param : Boolean.Parse(value);

                         if (this.library.IsPaused && !ignorePause)
                         {


Removed duplicate services

Removed duplicate services

--- Trappist/src/Promact.Trappist.Test/Bootstrap.cs
+++ Trappist/src/Promact.Trappist.Test/Bootstrap.cs
@@ -55,7 +55,6 @@
                 .AddEntityFrameworkStores<TrappistDbContext>()
                 .AddDefaultTokenProviders();
             services.AddScoped(config => config.GetService<IOptionsSnapshot<EmailSettings>>().Value);
-            services.AddIdentity<ApplicationUser, IdentityRole>().AddEntityFrameworkStores<TrappistDbContext>().AddDefaultTokenProviders();
             services.AddScoped<IQuestionRespository, QuestionRepository>();
             services.AddScoped<ICategoryRepository, CategoryRepository>();
             services.AddScoped<ITestsRepository, TestsRepository>();


Update DrawContainerView.cs

Update DrawContainerView.cs

--- src/Draw2D/Editor/DrawContainerView.cs
+++ src/Draw2D/Editor/DrawContainerView.cs
@@ -137,6 +137,7 @@
              || style.TextStyle.IsDirty
              || style.TextStyle.Stroke.IsDirty)
             {
+                Debug.WriteLine($"IsShapeStyleDirty: true");
                 return true;
             }
             return false;
@@ -146,6 +147,7 @@
         {
             if (canvasContainer.IsDirty)
             {
+                Debug.WriteLine($"canvasContainer.IsDirty: true");
                 return true;
             }

@@ -153,8 +155,15 @@
             {
                 foreach (var guide in canvasContainer.Guides)
                 {
-                    if (guide.IsDirty || IsShapeStyleDirty(guide.Style))
-                    {
+                    if (guide.IsDirty)
+                    {
+                        Debug.WriteLine($"guide.IsDirty: true");
+                        return true;
+                    }
+
+                    if (IsShapeStyleDirty(guide.Style))
+                    {
+                        Debug.WriteLine($"IsShapeStyleDirty(guide.Style): true");
                         return true;
                     }
                 }
@@ -164,8 +173,15 @@
             {
                 foreach (var shape in canvasContainer.Shapes)
                 {
-                    if (shape.IsDirty || IsShapeStyleDirty(shape.Style))
-                    {
+                    if (shape.IsDirty)
+                    {
+                        Debug.WriteLine($"shape.IsDirty: true");
+                        return true;
+                    }
+
+                    if (IsShapeStyleDirty(shape.Style))
+                    {
+                        Debug.WriteLine($"IsShapeStyleDirty(shape.Style): true");
                         return true;
                     }
                 }
@@ -181,7 +197,38 @@

             foreach (var point in points)
             {
-                point.IsDirty = false;
+                if (point.IsDirty)
+                {
+                    Debug.WriteLine($"point.IsDirty: true");
+                    return true;
+                }
+
+                if (point.Style != null)
+                {
+                    if (IsShapeStyleDirty(point.Style))
+                    {
+                        Debug.WriteLine($"IsShapeStyleDirty(point.Style): true");
+                        return true;
+                    }
+                }
+
+                if (point.Template != null)
+                {
+                    if (point.Template.IsDirty)
+                    {
+                        Debug.WriteLine($"point.Template.IsDirty: true");
+                        return true;
+                    }
+
+                    if (point.Template.Style != null)
+                    {
+                        if (IsShapeStyleDirty(point.Template.Style))
+                        {
+                            Debug.WriteLine($"IsShapeStyleDirty(point.Template.Style): true");
+                            return true;
+                        }
+                    }
+                }
             }

             return false;
@@ -204,8 +251,6 @@

             if (_pictureShapesCurrent == null || isShapesCurrentDirty == true)
             {
-                view.CurrentContainer.Invalidate();
-
                 if (_pictureShapesCurrent != null)
                 {
                     _pictureShapesCurrent.Dispose();
@@ -218,8 +263,6 @@

             if (_pictureShapesWorking == null || isShapesWorkingDirty == true)
             {
-                view.WorkingContainer.Invalidate();
-
                 if (_pictureShapesWorking != null)
                 {
                     _pictureShapesWorking.Dispose();
@@ -229,6 +272,11 @@
             }

             bool isSelectionDirty = view.Selection.IsDirty == true || isShapesCurrentDirty == true || isShapesWorkingDirty == true;
+
+            Debug.WriteLine(
+                $"{nameof(isCurrentContainerDirty)}: {isCurrentContainerDirty}, " +
+                $"{nameof(isWorkingContainerDirty)}: {isWorkingContainerDirty}, " +
+                $"{nameof(isSelectionDirty)}: {isSelectionDirty}");

             if (view.Selection.IsDirty == true)
             {
@@ -294,6 +342,9 @@
             // TODO: Dispose cached picture.
             //_pictureShapesCurrent.Dispose();
             //_pictureShapesCurrent = null;
+
+            view.CurrentContainer.Invalidate();
+            view.WorkingContainer.Invalidate();
         }

         private void DrawAvalonia(IContainerView view, DrawingContext context, double width, double height, double dx, double dy, double zx, double zy)


update version.

update version.

--- src/ECommon/Properties/AssemblyInfo.cs
+++ src/ECommon/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@
 // 可以指定所有这些值，也可以使用“生成号”和“修订号”的默认值，
 // 方法是按如下所示使用“*”:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.2.9")]
-[assembly: AssemblyFileVersion("1.2.9")]
+[assembly: AssemblyVersion("1.3.0")]
+[assembly: AssemblyFileVersion("1.3.0")]


First version of list of models

First version of list of models

--- src/EditorPrototype/MainWindow.xaml.cs
+++ src/EditorPrototype/MainWindow.xaml.cs
@@ -82,10 +82,10 @@

             InitModelComboBox();

-            this.g_zoomctrl.MouseDown += (object sender, MouseButtonEventArgs e) => this.ZoomCtrl_MouseDown(sender, e, model.ModelName);
-
-            this.InitPalette(model.ModelName);
-            this.graph.InitModel(model.ModelName);
+            this.g_zoomctrl.MouseDown += (object sender, MouseButtonEventArgs e) => this.ZoomCtrl_MouseDown(sender, e, this.model.ModelName);
+
+            this.InitPalette(this.model.ModelName);
+            this.graph.InitModel(this.model.ModelName);
             this.InitConsole();
             this.InitAndLaunchPlugins();
         }
@@ -100,8 +100,18 @@
             }

             this.modelsComboBox.SelectedIndex = 0;
-            var modelName = this.model.ModelRepo.Model(this.modelsComboBox.SelectedItem.ToString()).Name;
-
+            this.model.ModelName = this.modelsComboBox.SelectedItem.ToString();
+
+
+            this.modelsComboBox.SelectionChanged += (sender, args) =>
+            {
+                this.paletteGrid.Children.Clear();
+                this.graph.DataGraph.Clear();
+                this.model.ModelName = this.modelsComboBox.SelectedItem.ToString();
+                this.InitPalette(this.model.ModelName);
+                this.graph.InitModel(this.model.ModelName);
+            };
+            //this.modelsComboBox.PreviewMouseDown += (sender, args) => this.model.ModelNam
         }

         private void InitConsole()


no entity name should be necessary when dealing with unambiguous core definitions

--- Unity.SolrNetIntegration.Tests/RegistryTests.cs
+++ Unity.SolrNetIntegration.Tests/RegistryTests.cs
@@ -32,7 +32,7 @@
         [Test]
         public void ResolveSolrOperations() {
             using (var container = SetupContainer()) {
-                var m = container.Resolve<ISolrOperations<Entity>>("entity");
+                var m = container.Resolve<ISolrOperations<Entity>>();
                 Assert.IsNotNull(m);
             }
         }
@@ -51,7 +51,7 @@
         [Test, Category("Integration")]
         public void Ping_And_Query() {
             using (var container = SetupContainer()) {
-                var solr = container.Resolve<ISolrOperations<Entity>>("entity");
+                var solr = container.Resolve<ISolrOperations<Entity>>();
                 solr.Ping();
                 Console.WriteLine(solr.Query(SolrQuery.All).Count);
             }
@@ -68,7 +68,7 @@
             };
             using (var container = new UnityContainer()) {
                 new SolrNetContainerConfiguration().ConfigureContainer(solrServers, container);
-                container.Resolve<SolrConnection>();
+                container.Resolve<ISolrConnection>();
             }
         }

@@ -83,7 +83,7 @@
             };
             using (var container = new UnityContainer()) {
                 new SolrNetContainerConfiguration().ConfigureContainer(solrServers, container);
-                container.Resolve<SolrConnection>();
+                container.Resolve<ISolrConnection>();
             }
         }

@@ -113,7 +113,7 @@
         public void DictionaryDocument() {
             using (var container = new UnityContainer()) {
                 new SolrNetContainerConfiguration().ConfigureContainer(testServers, container);
-                var solr = container.Resolve<ISolrOperations<Entity2>>("entity2");
+                var solr = container.Resolve<ISolrOperations<Entity2>>();
                 var results = solr.Query(SolrQuery.All);
                 Assert.GreaterThan(results.Count, 0);
             }
@@ -124,7 +124,7 @@
             using (var container = new UnityContainer()) {
                 new SolrNetContainerConfiguration().ConfigureContainer(testServers, container);

-                var solr = container.Resolve<ISolrOperations<Dictionary<string, object>>>("entity2Dict");
+                var solr = container.Resolve<ISolrOperations<Dictionary<string, object>>>();

                 solr.Add(new Dictionary<string, object> {
                     {"id", "5"},


Don't swallow control keys

Don't swallow control keys

--- src/BloomExe/Shell.cs
+++ src/BloomExe/Shell.cs
@@ -305,7 +305,9 @@
 			if(Control.ModifierKeys == Keys.Control)
 			{
 				_controlKeyEvent.Raise(keyData);
-				return true;
+				//this event system doesn't actually give us a return value,, so we don't know if it was handled or not
+				//so we'll always just let it bubble. If that becomes a problem, we'll need a different design.
+				//return true;
 			}
 			return base.ProcessCmdKey(ref msg, keyData);
 		}


#CMF1-1274 Unit test AddNativeRegionUniqueName_Success is fixed and unnecessary test AddNotUniqueRegions_Success is removed

--- Sdl.Web.Tridion.Templates.Tests/PublishMappingsTest.cs
+++ Sdl.Web.Tridion.Templates.Tests/PublishMappingsTest.cs
@@ -114,7 +114,7 @@
                 Item testItem = testPackage.GetByName("/Preview/system/mappings/regions.json");
                 var content = testItem.GetAsString();
                 var definedRegions = JsonConvert.DeserializeObject<List<RegionDefinitionTest>>(content);
-                Assert.IsTrue(definedRegions.Count(x => x.Region==regionShemaTitle
+                Assert.IsTrue(definedRegions.Count(x => x.Region== regionSchema.Id.ItemId.ToString()
                                                         && x.ComponentTypes.Count == 1
                                                         && x.ComponentTypes[0].Schema == "*"
                                                         && x.ComponentTypes[0].Template == "*"
@@ -168,68 +168,6 @@
                regionSchema?.Delete();
             }
         }
-
-        [Ignore]
-        [Description("Ignore until DXA unit tests use at least 8.7 TCM version")]
-        [TestMethod]
-        public void AddNotUniqueRegions_Success()
-        {
-            const string regionShemaTitle = "AddNotUniqueRegions_Success1";
-            const string nestedRegionSchemaTitle = "AddNotUniqueRegions_Success2";
-            const string superNestedRegionSchemaTitle = "AddNotUniqueRegions_Success3";
-            Schema regionSchema = null;
-            Schema nestedRegionSchema = null;
-            Schema superNestedRegionSchema = null;
-
-            try
-            {
-                //init engine
-                Component inputItem = (Component)TestSession.GetObject(CoreCoponentWebDavUrl);
-
-                // Create TestData Regions
-                Publication testPublication = (Publication)inputItem.ContextRepository;
-
-                superNestedRegionSchema = new Schema(TestSession, testPublication.RootFolder.Id)
-                {
-                    Purpose = SchemaPurpose.Region,
-                    Title = superNestedRegionSchemaTitle,
-                    Description = superNestedRegionSchemaTitle
-                };
-                superNestedRegionSchema.Save(true);
-
-                nestedRegionSchema = new Schema(TestSession, testPublication.RootFolder.Id)
-                {
-                    Purpose = SchemaPurpose.Region,
-                    Title = nestedRegionSchemaTitle,
-                    Description = nestedRegionSchemaTitle
-                };
-                SaveRegionSchemaWithRegionList(nestedRegionSchema, new object[] { regionShemaTitle, superNestedRegionSchema, true});
-
-                regionSchema = new Schema(TestSession, testPublication.RootFolder.Id)
-                {
-                    Purpose = SchemaPurpose.Region,
-                    Title = regionShemaTitle,
-                    Description = regionShemaTitle
-                };
-                SaveRegionSchemaWithRegionList(regionSchema, new object[] { regionShemaTitle, nestedRegionSchema, true });
-
-                RenderedItem testRenderedItem;
-                Package testPackage = RunTemplate(typeof(PublishMappings), inputItem, out testRenderedItem);
-                Item testItem =  testPackage.GetByName(RegionJsonFile);
-                string content = testItem.GetAsString();
-                var definedRegions = JsonConvert.DeserializeObject<List<RegionDefinitionTest>>(content);
-                Assert.IsTrue(definedRegions.Count(x => x.Region == regionShemaTitle) == 1,
-                    "Despite Different Schemas has Regions with the same name only one of those added to Regions.json");
-
-            }
-            finally
-            {
-                //Cleanup
-                regionSchema?.Delete();
-                nestedRegionSchema?.Delete();
-                superNestedRegionSchema?.Delete();
-            }
-        }

         private void SaveRegionSchemaWithRegionList(Schema schema, params object[] args)
         {


Use interface for test browser.

Use interface for test browser.


Fix mouse chews cables covered by floor tiles

--- UnityProject/Assets/Scripts/NPC/AI/Friendly/MouseAI.cs
+++ UnityProject/Assets/Scripts/NPC/AI/Friendly/MouseAI.cs
@@ -14,8 +14,6 @@

 		protected override void MonitorExtras()
 		{
-			//TODO eat cables if haven't eaten in a while
-
 			timeWaiting += Time.deltaTime;
 			if (timeWaiting < timeForNextRandomAction)
 			{
@@ -23,7 +21,6 @@
 			}
 			timeWaiting = 0f;
 			timeForNextRandomAction = Random.Range(minTimeBetweenRandomActions, maxTimeBetweenRandomActions);
-

 			if (WIRECHEW_ENABLED && Random.Range(0, 100) < WIRECHEW_CHANCE)
 			{
@@ -66,9 +63,14 @@

 		private void DoRandomWireChew()
 		{
-			var matrix = registerObject.TileChangeManager.MetaTileMap.Layers[LayerType.Underfloor].matrix;
+			var metaTileMap = registerObject.TileChangeManager.MetaTileMap;
+			var matrix = metaTileMap.Layers[LayerType.Underfloor].matrix;
+
+			// Check if the floor plating is exposed.
+			if (metaTileMap.HasTile(registerObject.LocalPosition, LayerType.Floors, true)) return;
+
+			// Check if there's cables at this position
 			var cables = matrix.GetElectricalConnections(registerObject.LocalPosition);
-
 			if (cables == null || cables.Count < 1) return;

 			// Pick a random cable from the mouse's current tile position to chew from


Add basic constructor

Add basic constructor

--- src/Bugsnag/Client.cs
+++ src/Bugsnag/Client.cs
@@ -34,6 +34,15 @@
       Bugsnag.InternalMiddleware.AttachGlobalMetadata,
       Bugsnag.InternalMiddleware.DetermineDefaultContext,
     };
+
+    /// <summary>
+    /// Constructs a client with the given apiKey using the default configuration values.
+    /// </summary>
+    /// <param name="apiKey"></param>
+    public Client(string apiKey) : this(new Configuration(apiKey))
+    {
+
+    }

     /// <summary>
     /// Constructs a client with the default storage and delivery classes.


Program: Adding logging for fetch of messages and namespaces

Also remove the logging for the reading of namespaces, which
happens more often and isn't as interesting.

--- src/CVNBot/Project.cs
+++ src/CVNBot/Project.cs
@@ -164,6 +164,7 @@
         {
             if (!snamespacesAlreadySet)
             {
+                logger.InfoFormat("Fetching namespaces from {0}", rooturl);
                 snamespaces = CVNBotUtils.GetRawDocument(rooturl + "w/api.php?format=xml&action=query&meta=siteinfo&siprop=namespaces");
                 if (snamespaces == "")
                     throw new Exception("Can't load list of namespaces from " + rooturl);
@@ -180,7 +181,6 @@
                 namespaces.Add(namespacesNode.ChildNodes[i].Attributes["id"].Value, namespacesNode.ChildNodes[i].InnerText);
                 namespacesLogline += "id["+namespacesNode.ChildNodes[i].Attributes["id"].Value + "]="+namespacesNode.ChildNodes[i].InnerText + "; ";
             }
-            logger.Info("getNamespaces: "+namespacesLogline);
         }

         public void RetrieveWikiDetails()
@@ -189,6 +189,8 @@
             GetNamespaces(false);

             specialLogRegex = namespaces["-1"] + @":.+?/(.+)";
+
+            logger.InfoFormat("Fetching interface messages from {0}", rooturl);

             // Location of message, number of required parameters, reference to regex, allow lazy
             // Retrieve messages for all the required events and generate regexen for them


Identify library that PInvoke is calling

--- src/Compat/Program.cs
+++ src/Compat/Program.cs
@@ -263,20 +263,25 @@
         /// <returns>True if the operand is a PInvoke, otherwise false.</returns>
         static bool IsPInvoke(object operand)
         {
-            // try to cast operand to either method or field definition
+            // try to cast operand to method definition and check for PInvoke
             var mdef = operand as MethodDefinition;
             if (mdef != null)
             {
-                return mdef.IsPInvokeImpl;
-            }
-            else
-            {
-                var fdef = operand as FieldDefinition;
-                if (fdef != null)
-                {
-                    return fdef.IsPInvokeImpl;
-                }
-            }
+                if (mdef.IsPInvokeImpl)
+                {
+                    logger.Debug(mdef.PInvokeInfo.Module.Name);
+                    return true;
+                }
+            }
+            // I don't think testing fields is necessary...
+            //else
+            //{
+            //    var fdef = operand as FieldDefinition;
+            //    if (fdef != null)
+            //    {
+            //        return fdef.IsPInvokeImpl;
+            //    }
+            //}

             return false;
         }


Make default spawn implementation private

--- src/Core/Sys/Spawn.cs
+++ src/Core/Sys/Spawn.cs
@@ -60,12 +60,12 @@
     public static class Spawn
     {
         public static ISpawn Default => new SysSpawn();
-    }

-    class SysSpawn : ISpawn
-    {
-        public IObservable<T> Spawn<T>(string path, string args, string workingDirectory, Func<string, T> stdoutSelector, Func<string, T> stderrSelector) =>
-            SpawnCore(path, args, workingDirectory, stdoutSelector, stderrSelector).ToObservable();
+        sealed class SysSpawn : ISpawn
+        {
+            public IObservable<T> Spawn<T>(string path, string args, string workingDirectory, Func<string, T> stdoutSelector, Func<string, T> stderrSelector) =>
+                SpawnCore(path, args, workingDirectory, stdoutSelector, stderrSelector).ToObservable();
+        }

         // TODO Make true observable
         static IEnumerable<T> SpawnCore<T>(string path, string args, string workingDirectory, Func<string, T> stdoutSelector, Func<string, T> stderrSelector)


Add support for [Theory] attribute

Add support for [Theory] attribute

--- ExpressRunner.XunitPlugin/XunitTestAssembly.cs
+++ ExpressRunner.XunitPlugin/XunitTestAssembly.cs
@@ -26,6 +26,11 @@
             this.assemblyFileName = assemblyFileName;

             Reload();
+        }
+
+        public Test GetTestByMethod(string type, string method)
+        {
+            return tests[GetUniqueId(type, method)];
         }

         public Test GetTestByName(string testName)
@@ -89,9 +94,19 @@
         {
             var name = FormatName(testMethod);
             var path = testMethod.TestClass.TypeName.Replace('.', '/').Replace('+', '/');
-            var uniqueId = testMethod.DisplayName;
+            var uniqueId = GetUniqueId(testMethod);

             return new Test(name, path, uniqueId);
+        }
+
+        private static string GetUniqueId(TestMethod testMethod)
+        {
+            return GetUniqueId(testMethod.TestClass.TypeName, testMethod.MethodName);
+        }
+
+        private static string GetUniqueId(string type, string method)
+        {
+            return type + '.' + method;
         }

         public override void RunTests(IEnumerable<IRunnableTest> tests)
@@ -132,7 +147,7 @@

             public void TestFailed(string name, string type, string method, double duration, string output, string exceptionType, string message, string stackTrace)
             {
-                UpdateTestStatus(name, Api.TestStatus.Failed);
+                UpdateTestStatus(type, method, Api.TestStatus.Failed);
             }

             public bool TestFinished(string name, string type, string method)
@@ -142,27 +157,27 @@

             public void TestPassed(string name, string type, string method, double duration, string output)
             {
-                UpdateTestStatus(name, Api.TestStatus.Succeeded);
+                UpdateTestStatus(type, method, Api.TestStatus.Succeeded);
             }

             public void TestSkipped(string name, string type, string method, string reason)
             {
-                UpdateTestStatus(name, Api.TestStatus.NotRun);
+                UpdateTestStatus(type, method, Api.TestStatus.NotRun);
             }

             public bool TestStart(string name, string type, string method)
             {
-                return ShouldRunTest(name);
+                return ShouldRunTest(type, method);
             }

-            private bool ShouldRunTest(string testName)
+            private bool ShouldRunTest(string type, string method)
             {
-                return runningTests.ContainsKey(testName);
+                return runningTests.ContainsKey(XunitTestAssembly.GetUniqueId(type, method));
             }

-            private void UpdateTestStatus(string testName, Api.TestStatus status)
+            private void UpdateTestStatus(string type, string method, Api.TestStatus status)
             {
-                var test = runningTests[testName];
+                var test = runningTests[XunitTestAssembly.GetUniqueId(type, method)];
                 test.RecordRun(status);
             }
         }


[CSharp] Re-add osx to MonoPosixHelper os exclusions

--- Extensions/Oxide.Ext.CSharp/CSharpExtension.cs
+++ Extensions/Oxide.Ext.CSharp/CSharpExtension.cs
@@ -41,7 +41,7 @@
             if (Environment.OSVersion.Platform != PlatformID.Unix) return;
             var extDir = Interface.Oxide.ExtensionDirectory;
             File.WriteAllText(Path.Combine(extDir, "Mono.Posix.dll.config"),
-                $"<configuration>\n<dllmap dll=\"MonoPosixHelper\" target=\"{extDir}/x86/libMonoPosixHelper.so\" os=\"!windows\" cpu=\"x86\" />\n<dllmap dll=\"MonoPosixHelper\" target=\"{extDir}/x64/libMonoPosixHelper.so\" os=\"!windows\" cpu=\"x86-64\" />\n</configuration>");
+                $"<configuration>\n<dllmap dll=\"MonoPosixHelper\" target=\"{extDir}/x86/libMonoPosixHelper.so\" os=\"!windows,osx\" cpu=\"x86\" />\n<dllmap dll=\"MonoPosixHelper\" target=\"{extDir}/x64/libMonoPosixHelper.so\" os=\"!windows,osx\" cpu=\"x86-64\" />\n</configuration>");
         }

         /// <summary>


Resharper IsTitle method

Resharper IsTitle method

--- FonctionsUtiles.Fred.Csharp/FunctionsString.cs
+++ FonctionsUtiles.Fred.Csharp/FunctionsString.cs
@@ -939,13 +939,20 @@
       // //  Returns whether a string is formatted like a title, ie the first chracter of each word is capitalized.
       // //  Words must be separated by spaces.
       if (string.IsNullOrEmpty(input))
+      {
         return false;
+      }
+
       string[] words = input.Split(' ');
       for (int i = 0; i < words.Length; i++)
       {
         if (words[i].Length > 0)
+        {
           if (!char.IsUpper(words[i][0]))
+          {
             return false;
+          }
+        }
       }

       return true;


Added overload for IsBetween

Added overload for IsBetween

This is to support comparisons that will never have more than one value (e.g., FirstActionableFrame)

--- FrannHammer.Services/RangeQuantifierService.cs
+++ FrannHammer.Services/RangeQuantifierService.cs
@@ -2,8 +2,32 @@
 {
     public class RangeQuantifierService
     {
-        public bool IsBetween(int valueUnderTest, int lowBoundary, int highBoundary) =>
-             valueUnderTest > lowBoundary && valueUnderTest < highBoundary;
+        public bool IsBetween(int valueUnderTest, int lowBoundary, int highBoundary)
+        {
+            if (highBoundary > -1)
+            {
+                return valueUnderTest > lowBoundary && valueUnderTest < highBoundary;
+            }
+            else
+            {
+                return valueUnderTest > lowBoundary;
+            }
+        }
+
+        public bool IsBetween(int lowValueUnderTest, int lowBoundary, int highValueUnderTest, int highBoundary)
+        {
+            if (highBoundary > -1)
+            {
+                return (lowValueUnderTest > lowBoundary && highValueUnderTest < highBoundary) ||
+                       (lowValueUnderTest < lowBoundary && highValueUnderTest > lowBoundary);
+            }
+            else
+            {
+                return lowValueUnderTest > lowBoundary &&
+                       highValueUnderTest > lowBoundary &&
+                       highValueUnderTest >= lowValueUnderTest;
+            }
+        }

         public bool IsGreaterThan(int valueUnderTest, int boundary) =>
             valueUnderTest > boundary;


Update MockDataReaderService.cs

Update MockDataReaderService.cs

--- Ghpr.Tests.Tests/Core/MockDataReaderService.cs
+++ Ghpr.Tests.Tests/Core/MockDataReaderService.cs
@@ -19,7 +19,7 @@

         public ReportSettingsDto GetReportSettings()
         {
-            return new ReportSettingsDto(3, 5, "report", "project");
+            return new ReportSettingsDto(3, 5, "report", "project", false);
         }

         public TestRunDto GetLatestTestRun(Guid testGuid)


Fixed possible crash on bad variable reference.

--- GumRuntime/ElementSaveExtensions.GumRuntime.cs
+++ GumRuntime/ElementSaveExtensions.GumRuntime.cs
@@ -387,16 +387,19 @@

                     var component = ObjectFinder.Self.GetComponent(stripped);

-                    stateSave = component.DefaultState;
-
-                    right = right.Substring(firstDot + 1);
-
-                    if (right.Contains("."))
-                    {
-                        var dotAfterInstance = right.IndexOf(".");
-                        var instanceName = right.Substring(0, dotAfterInstance);
-                        var instance = component.GetInstance(instanceName);
-                        GetRightSideAndState(instance, ref right, ref stateSave);
+                    if(component != null)
+                    {
+                        stateSave = component.DefaultState;
+
+                        right = right.Substring(firstDot + 1);
+
+                        if (right.Contains("."))
+                        {
+                            var dotAfterInstance = right.IndexOf(".");
+                            var instanceName = right.Substring(0, dotAfterInstance);
+                            var instance = component.GetInstance(instanceName);
+                            GetRightSideAndState(instance, ref right, ref stateSave);
+                        }
                     }
                 }
             }


[Hyena.Gui] Have Grid columns expand to fill width

This way extra white space to the right of the grid is instead evenly
distributed among the columns (bgo#633290).

Signed-off-by: Gabriel Burt <ce11a5f747b579a775c140646376daaba8c3eb7d@gmail.com>

--- Hyena.Gui/Hyena.Data.Gui/DataViewLayoutGrid.cs
+++ Hyena.Gui/Hyena.Data.Gui/DataViewLayoutGrid.cs
@@ -91,6 +91,7 @@
             int last_model_row = first_model_row + Rows * Columns;

             // Setup for the layout iteration
+            int child_span_width = (int)Math.Floor (ActualAllocation.Width / Columns);
             int model_row_index = first_model_row;
             int layout_child_index = 0;
             int view_row_index = 0;
@@ -126,7 +127,7 @@
                     child_allocation.Y += ChildSize.Height;
                     child_allocation.X = ActualAllocation.X;
                 } else {
-                    child_allocation.X += ChildSize.Width;
+                    child_allocation.X += child_span_width;
                 }

                 // FIXME: clear any layout children that go beyond the model


Fixed FindAvatarOnObject (and llUnSit) to not use sit target part to find SP parent

--- InWorldz/InWorldz.Phlox.Engine/LSLSystemAPI.cs
+++ InWorldz/InWorldz.Phlox.Engine/LSLSystemAPI.cs
@@ -7868,7 +7868,7 @@

                 if (av != null)
                 {
-                    SceneObjectPart part = FindAvatarOnObject(key, false);
+                    SceneObjectPart part = FindAvatarOnObject(key);
                     if (part != null)
                     {
                         // if the avatar is sitting on this object, then
@@ -8569,10 +8569,11 @@
             llLinkSitTarget(m_host.LinkNum, offset, rot);
         }

-        private SceneObjectPart FindAvatarOnObject(UUID agentId, bool IncludeSitTargetOnly)
+        private SceneObjectPart FindAvatarOnObject(UUID agentId)
         {
             ScenePresence sp = m_host.ParentGroup.Scene.GetScenePresence(agentId);
-            return (sp == null) ? null : sp.SitTargetPart;
+            ScenePresence.PositionInfo posInfo = (sp == null) ? null : sp.GetPosInfo();
+            return (posInfo == null) ? null : posInfo.Parent;
         }

         private string AvatarOnSitTarget(int linknumber, bool IncludeSitTargetOnly)


seriously this thing needs a full rebuild

--- src/Graceful/Model.cs
+++ src/Graceful/Model.cs
@@ -3646,10 +3646,16 @@

                         // Remove any relationships from the
                         // pivot table that got removed.
-                        var columnName = relation.PivotTableSecondColumnName;
+                        string col1 = relation.PivotTableFirstColumnName;
+                        if (!relation.PivotTableFirstColumnName.Contains(relation.LocalTableNameSingular))
+                        {
+                            col1 = relation.PivotTableSecondColumnName;
+                        }
+
+                        string col2 = relation.PivotTableSecondColumnName;
                         if (!relation.PivotTableSecondColumnName.Contains(relation.ForeignTableNameSingular))
                         {
-                            columnName = relation.PivotTableFirstColumnName;
+                            col2 = relation.PivotTableFirstColumnName;
                         }

                         originalEntities.ForEach(originalEntity =>
@@ -3657,7 +3663,8 @@
                             if (!currentEntities.Contains(originalEntity))
                             {
                                 Db.Qb.DELETE_FROM(relation.PivotTableName)
-                                .WHERE(columnName, originalEntity.Id)
+                                .WHERE(col1, (int)this.DbRecord["Id"])
+                                .WHERE(col2, originalEntity.Id)
                                 .Execute();
                             }
                         });


Persist new players to TableStorage

Persist new players to TableStorage

--- src/EloWeb/Persist/AzurePlayersData.cs
+++ src/EloWeb/Persist/AzurePlayersData.cs
@@ -18,7 +18,15 @@

         public static void PersistPlayer(Player player)
         {
-            // TODO: Write to Storage table
+            var playerEntity = new PlayerEntity("kobopool", player.Name, player.IsRetired);
+            var table = GetTable("players");
+            WritePlayer(table, playerEntity);
+        }
+
+        static void WritePlayer(CloudTable table, PlayerEntity player)
+        {
+            TableOperation insertOp = TableOperation.Insert(player);
+            table.Execute(insertOp);
         }

         private static CloudTable GetTable(string tableName)


Tab children should be cast to Page (#398)

--- Xamarin.Forms.Platform.iOS/Renderers/TabbedRenderer.cs
+++ Xamarin.Forms.Platform.iOS/Renderers/TabbedRenderer.cs
@@ -375,7 +375,7 @@
 				var originalIndex = -1;
 				if (int.TryParse(viewControllers[i].TabBarItem.Tag.ToString(), out originalIndex))
 				{
-					var page = (TabbedPage)((IPageController)Tabbed).InternalChildren[originalIndex];
+					var page = (Page)((IPageController)Tabbed).InternalChildren[originalIndex];
 					TabbedPage.SetIndex(page, i);
 				}
 			}


view and maintain notes on home page

view and maintain notes on home page

--- src/FWServices/Views/Home/Index.cshtml
+++ src/FWServices/Views/Home/Index.cshtml
@@ -17,16 +17,21 @@
             foreach (var feature in ViewBag.Features[group])
             {

-                    @feature.Sparkline
-                    @feature.Name
-                    [Edit]
+

+                        @feature.Sparkline
+                        @feature.Name
+                        [Edit]
+

+
@feature.Notes

                         Group:
                         <input type="text" name="group" id="group_@(feature.Name)" value="@feature.Group"/>
+                        Notes:
+                        <textarea id="notes_@(feature.Name)" name="notes">@feature.Notes</textarea>

                         <button id="close">Close</button>
                         <button id="save">Save</button>
-

+

             }
         }
@@ -39,13 +44,14 @@
         $('.inlinesparkline').sparkline();
         $("a.edit").click(function() {
             var feature = $(this).attr("href");
+            $("#featurePanel_" + feature).slideUp();
             $("#edit_" + feature).slideDown();
-            $("#edit_" + feature + " button#close").click(function() {
+            $("#edit_" + feature + " button#close").click(function () {
                 $("#edit_" + feature + " button#close").unbind("click");
                 $("#edit_" + feature).slideUp();
+                $("#featurePanel_" + feature).slideDown();
             });
-            $("#edit_" + feature + " button#save").click(function() {
-                console.log("Saving #edit_" + feature);
+            $("#edit_" + feature + " button#save").click(function() {
                 $.ajax({
                     type: 'PUT',
                     url: '/api/Feature',
@@ -53,13 +59,11 @@
                         id: '',
                         name: feature,
                         group: $("#edit_" + feature + " input[name=group]").val(),
-                        notes: '',
+                        notes: $("#edit_" + feature + " textarea[name=notes]").val(),
                         sparkline: ''
                     }
-                }).done(function () {
-                    console.log('Saved ' + feature + '.');
-                    $("#edit_" + feature + " button#save").unbind("click");
-                    $("#edit_" + feature).slideUp();
+                }).done(function () {
+                    document.location.href = '/';
                 });
             });
             return false;


Remove overload that allows `ISqlDialect` to be null

--- src/proj/EventStore.Persistence.SqlPersistence/SqlPersistenceFactory.cs
+++ src/proj/EventStore.Persistence.SqlPersistence/SqlPersistenceFactory.cs
@@ -18,10 +18,6 @@
 		}
 		public SqlPersistenceFactory(string connectionName, ISerialize serializer, ISqlDialect dialect)
 			: this(new ConfigurationConnectionFactory(connectionName), serializer, dialect)
-		{
-		}
-		public SqlPersistenceFactory(IConnectionFactory factory, ISerialize serializer)
-			: this(factory, serializer, null)
 		{
 		}
 		public SqlPersistenceFactory(IConnectionFactory factory, ISerialize serializer, ISqlDialect dialect)


Removing unintentional changes; Adding a null check

--- src/GitHub.Unity/Views/SettingsView.cs
+++ src/GitHub.Unity/Views/SettingsView.cs
@@ -433,19 +433,16 @@
                 var defaultGitPath = FindGitTask.DefaultGitPath;

                 //TODO: Verify necessary value for a non Windows OS
-                var extension = Path.HasExtension(defaultGitPath)
+                var extension = defaultGitPath != null && Path.HasExtension(defaultGitPath)
                     ? Path.GetExtension(defaultGitPath).TrimStart('.')
                     : null;

                 var defaultGitInstallFolder = Path.GetDirectoryName(defaultGitPath);

                 Styles.PathField(ref gitInstallPath,
-                    () =>
-                    {
-                        return EditorUtility.OpenFilePanel(GitInstallBrowseTitle,
-                            defaultGitInstallFolder,
-                            extension);
-                    }, ValidateGitInstall);
+                    () => EditorUtility.OpenFilePanel(GitInstallBrowseTitle,
+                        defaultGitInstallFolder,
+                        extension), ValidateGitInstall);
             }
             if (EditorGUI.EndChangeCheck())
             {


Remove unused context type

Remove unused context type

--- src/Glimpse.Common/Context/IContext.cs
+++ src/Glimpse.Common/Context/IContext.cs
@@ -1,13 +0,0 @@
-using System;
-
-namespace Glimpse
-{
-    public interface IContext
-    {
-        IServiceProvider GlobalServices { get; }
-
-        IServiceProvider LocalServices { get; }
-
-        ISettings Settings { get; }
-    }
-}


Resolves issue #168

Resolves issue #168

--- Libraries/Hotcakes.Commerce/Contacts/Address.cs
+++ Libraries/Hotcakes.Commerce/Contacts/Address.cs
@@ -467,14 +467,21 @@
             lines.Add(Line2);
             lines.Add(Line3);

+            var cityLine = City;
+
             if (RegionData != null)
             {
-                lines.Add(City + ", " + RegionData.Abbreviation + " " + _postalCode);
+                cityLine = string.Concat(cityLine, ", ", RegionData.Abbreviation, " ", _postalCode);
             }
             else
             {
-                lines.Add(City + ", " + _postalCode);
-            }
+                if (!string.IsNullOrEmpty(_postalCode))
+                {
+                    cityLine = string.Concat(cityLine, ", ", _postalCode);
+                }
+            }
+
+            if (cityLine.Trim() != ",") lines.Add(cityLine);

             if (CountryData != null && !string.IsNullOrEmpty(CountryData.DisplayName))
             {
@@ -492,7 +499,7 @@
                 lines.Add(WebSiteUrl);
             }

-            // Remove emtpy lines
+            // Remove empty lines
             var i = 0;
             while (i < lines.Count)
             {


[Fix] #1 fixed

[Fix] #1 fixed

- 資材グラフ作成時、現在の資材数が0の場合にY軸の最大値が0とならないよう修正

--- MaterialChartPlugin/ViewModels/ToolViewModel.cs
+++ MaterialChartPlugin/ViewModels/ToolViewModel.cs
@@ -383,9 +383,9 @@
         /// <param name="mostMaterial">最も多い資材の量</param>
         private void SetMaterialYAxis(int mostMaterial)
         {
-            this.mostMaterial = mostMaterial;
-            var interval = ChartUtilities.GetInterval(0, mostMaterial);
-            YMax1 = ChartUtilities.GetYAxisMax(mostMaterial, interval);
+            this.mostMaterial = Math.Max(mostMaterial, 100);
+            var interval = ChartUtilities.GetInterval(0, this.mostMaterial);
+            YMax1 = ChartUtilities.GetYAxisMax(this.mostMaterial, interval);
         }

         /// <summary>
@@ -394,9 +394,9 @@
         /// <param name="mostRepairTool">最も多い高速修復材の量</param>
         private void SetRepairToolYAxis(int mostRepairTool)
         {
-            this.mostRepairTool = RepairTool;
-            var interval = ChartUtilities.GetInterval(0, mostRepairTool);
-            YMax2 = ChartUtilities.GetYAxisMax(mostRepairTool, interval);
+            this.mostRepairTool = Math.Max(mostRepairTool, 10);
+            var interval = ChartUtilities.GetInterval(0, this.mostRepairTool);
+            YMax2 = ChartUtilities.GetYAxisMax(this.mostRepairTool, interval);
         }

         public async void ExportAsCsv()


Consolidate and standardize Load functions

--- MatterControl.Printing/GCode/GCodeMemoryFile.cs
+++ MatterControl.Printing/GCode/GCodeMemoryFile.cs
@@ -64,7 +64,15 @@
 		public GCodeMemoryFile(string pathAndFileName, bool gcodeHasExplicitLayerChangeInfo = false)
 		{
 			this.gcodeHasExplicitLayerChangeInfo = gcodeHasExplicitLayerChangeInfo;
-			this.Load(pathAndFileName);
+
+			var loadedFile = GCodeMemoryFile.Load(pathAndFileName, null);
+			if (loadedFile != null)
+			{
+				this.indexOfChangeInZ = loadedFile.indexOfChangeInZ;
+				this.center = loadedFile.center;
+				this.parsingLastZ = loadedFile.parsingLastZ;
+				this.GCodeCommandQueue = loadedFile.GCodeCommandQueue;
+			}
 		}

 		public override PrinterMachineInstruction Instruction(int index)
@@ -105,68 +113,41 @@
 			return ParseFileContents(gcodeContents, null);
 		}

-		public static GCodeMemoryFile Load(Stream fileStream)
-		{
-			GCodeMemoryFile loadedGCode = null;
+		public static GCodeMemoryFile Load(Stream fileStream, ReportProgressRatio<(double ratio, string state)> progressReporter = null)
+		{
 			try
 			{
-				string gCodeString = "";
 				using (var reader = new StreamReader(fileStream))
 				{
-					gCodeString = reader.ReadToEnd();
-				}
-
-				loadedGCode = ParseFileContents(gCodeString, null);
-			}
-			catch (IOException e)
+					return ParseFileContents(reader.ReadToEnd(), progressReporter);
+				}
+			}
+			catch (Exception e)
 			{
 				Debug.Print(e.Message);
 			}

-			return loadedGCode;
-		}
-
-		public static async Task<GCodeMemoryFile> LoadInBackground(string fileName, ReportProgressRatio<(double ratio, string state)> progressReporter)
-		{
-			if (Path.GetExtension(fileName).ToUpper() == ".GCODE")
+			return null;
+		}
+
+		public static GCodeMemoryFile Load(string filePath, ReportProgressRatio<(double ratio, string state)> progressReporter)
+		{
+			if (Path.GetExtension(filePath).ToUpper() == ".GCODE")
 			{
 				try
 				{
-					if (File.Exists(fileName) && !FileTooBigToLoad(fileName))
-					{
-						return await Task.Run(() =>
-						{
-							return ParseFileContents(File.ReadAllText(fileName), progressReporter);
-						});
-					}
-				}
-				catch (IOException e)
+					using (var stream = File.OpenRead(filePath))
+					{
+						return Load(stream, progressReporter);
+					}
+				}
+				catch (Exception e)
 				{
 					Debug.Print(e.Message);
 				}
 			}

 			return null;
-		}
-
-		public new void Load(string gcodePathAndFileName)
-		{
-			if (!FileTooBigToLoad(gcodePathAndFileName))
-			{
-				using (FileStream fileStream = new FileStream(gcodePathAndFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
-				{
-					using (StreamReader streamReader = new StreamReader(fileStream))
-					{
-						GCodeMemoryFile loadedFile = GCodeMemoryFile.Load(streamReader.BaseStream);
-
-						this.indexOfChangeInZ = loadedFile.indexOfChangeInZ;
-						this.center = loadedFile.center;
-						this.parsingLastZ = loadedFile.parsingLastZ;
-
-						this.GCodeCommandQueue = loadedFile.GCodeCommandQueue;
-					}
-				}
-			}
 		}

 		private static IEnumerable<string> CustomSplit(string newtext, char splitChar)


Remove null reference in CanSend method in RaygunClient. Fixes #412

--- Mindscape.Raygun4Net.AspNetCore/RaygunClient.cs
+++ Mindscape.Raygun4Net.AspNetCore/RaygunClient.cs
@@ -207,11 +207,18 @@

     protected override bool CanSend(RaygunMessage message)
     {
-      if (message != null && message.Details != null && message.Details.Response != null)
-      {
-        return !GetSettings().ExcludedStatusCodes.Contains(message.Details.Response.StatusCode);
-      }
-      return true;
+      if (message?.Details?.Response == null)
+      {
+        return true;
+      }
+
+      RaygunSettings settings = GetSettings();
+      if (settings.ExcludedStatusCodes == null)
+      {
+        return true;
+      }
+
+      return !settings.ExcludedStatusCodes.Contains(message.Details.Response.StatusCode);
     }

     /// <summary>


better var names

better var names

--- Neo4jClient.Extension/Cypher/CypherExtension.cs
+++ Neo4jClient.Extension/Cypher/CypherExtension.cs
@@ -132,16 +132,19 @@
         {
             //A merge requires the properties of both merge, create and match in the cutdown object
             var merge = mergeOverride ?? CypherTypeItemHelper.PropertiesForPurpose<T, CypherMergeAttribute>(entity);
-            var create = GetCreateProperties(entity, onCreateOverride);
-            var match = onMatchOverride ?? CypherTypeItemHelper.PropertiesForPurpose<T, CypherMergeOnMatchAttribute>(entity);
-            var compare = new CypherPropertyComparer();
-            var propertyOverride = create.Union(match.Union(merge.Union(create, compare), compare), compare).ToList();
+            var createProperties = GetCreateProperties(entity, onCreateOverride);
+            var matchProperties = onMatchOverride ?? CypherTypeItemHelper.PropertiesForPurpose<T, CypherMergeOnMatchAttribute>(entity);
+            var comparer = new CypherPropertyComparer();
+            var propertyOverride = createProperties.Union(matchProperties.Union(merge.Union(createProperties, comparer), comparer), comparer).ToList();

             dynamic keyedObject = entity.CreateDynamic(merge);

             dynamic cutdown = entity.CreateDynamic(propertyOverride);
-            var setOnAction = new Action<List<CypherProperty>,ICypherFluentQuery,  Action<ICypherFluentQuery, string>>((list,q, action) => {
-                var set = string.Join(",", list.Select(x => string.Format("{0}.{1}={{{0}}}.{1}", key, x.JsonName)));
+
+            var configureCypherSet = new Action<List<CypherProperty>,ICypherFluentQuery,  Action<ICypherFluentQuery, string>>((properties, q, action) =>
+            {
+                var propertyCql = properties.Select(x => string.Format("{0}.{1}={{{0}}}.{1}", key, x.JsonName));
+                var set = string.Join(",", propertyCql);
                 if (!string.IsNullOrEmpty(set))
                 {
                     action(q, set);
@@ -150,8 +153,8 @@

             query = query.Merge(cql);

-            setOnAction(match, query, (q, s) => query = q.OnMatch().Set(s));
-            setOnAction(create, query, (q, s) => query = q.OnCreate().Set(s));
+            configureCypherSet(matchProperties, query, (q, s) => query = q.OnMatch().Set(s));
+            configureCypherSet(createProperties, query, (q, s) => query = q.OnCreate().Set(s));

             query = query.WithParam(key, cutdown);
             query = query.WithParam(GetMergeParamName(key), keyedObject);


Fixed the DeploymentsClientTests.TheGetAllMethod.RequestCorrectUrl

--- Octokit.Tests/Clients/DeploymentsClientTests.cs
+++ Octokit.Tests/Clients/DeploymentsClientTests.cs
@@ -51,9 +51,7 @@
             var expectedUrl = "repos/owner/name/deployments";

             client.GetAll("owner", "name");
-            connection.Received(1).GetAll<Deployment>(Arg.Is<Uri>(u => u.ToString() == expectedUrl),
-                                                      Arg.Any<IDictionary<string, string>>(),
-                                                      Arg.Any<string>());
+            connection.Received(1).GetAll<Deployment>(Arg.Is<Uri>(u => u.ToString() == expectedUrl));
         }
     }


korean CVVC

korean CVVC

--- OpenUtau.Plugin.Builtin/KoreanCVVCPhonemizer.cs
+++ OpenUtau.Plugin.Builtin/KoreanCVVCPhonemizer.cs
@@ -43,7 +43,7 @@
             "s=s,사,솨,쉬,싀,수,세,새,쇠,쇄,쉐,소,스,서",
             "sy=sy,샤,시,슈,셰,섀,쇼,셔",
             "ss=ss,싸,쏴,쒸,씌,쑤,쎄,쌔,쐬,쐐,쒜,쏘,쓰,써",
-            "ssy=ssy,쌰,씨,쓔,쎼,쌔,쑈,쎠",
+            "ssy=ssy,쌰,씨,쓔,쎼,,쑈,쎠",
             "j=j,자,쟈,좌,지,쥐,즤,주,쥬,제,졔,재,쟤,죄,좨,줴,조,죠,즈,저,져",
             "jj=jj,짜,쨔,쫘,찌,쮜,쯰,쭈,쮸,쩨,쪠,째,쨰,쬐,쫴,쮀,쪼,쬬,쯔,쩌,쪄",
             "ch=ch,차,챠,촤,치,취,츼,추,츄,체,쳬,채,챼,최,쵀,췌,초,쵸,츠,처,쳐",


Prefer exact match when retrieving dashboard nodes (#260)

Maintains existing behaviour if no exact match found.

--- Opserver.Core/Data/Dashboard/DashboardModule.cs
+++ Opserver.Core/Data/Dashboard/DashboardModule.cs
@@ -61,7 +61,8 @@
         public static Node GetNodeByName(string hostName)
         {
             if (!Current.Settings.Dashboard.Enabled || hostName.IsNullOrEmpty()) return null;
-            return AllNodes.Find(s => s.Name.ToLowerInvariant().Contains(hostName.ToLowerInvariant()));
+            return AllNodes.Find(s => s.Name.Equals(hostName, StringComparison.InvariantCultureIgnoreCase)) ??
+				AllNodes.Find(s => s.Name.ToLowerInvariant().Contains(hostName.ToLowerInvariant()));
         }

         public static IEnumerable<Node> GetNodesByIP(IPAddress ip) =>


Updating the sql query formatting

Updating the sql query formatting

Updating the sql query formatting to match with other queries in the
project. Also updated access modifier on the properties of
StoredProcedure class.

--- Opserver.Core/Data/SQL/SQLInstance.Databases.cs
+++ Opserver.Core/Data/SQL/SQLInstance.Databases.cs
@@ -384,38 +384,36 @@
         public class StoredProcedure : ISQLVersioned
         {
             public Version MinVersion => SQLServerVersions.SQL2005.RTM;
-
-            public int Id { get; internal set; }
             public string SchemaName { get; internal set; }
             public string ProcedureName { get; internal set; }
             public DateTime CreationDate { get; internal set; }
             public DateTime LastModifiedDate { get; internal set; }
-
-            public DateTime? LastExecuted { set; get; }
-
-            public int? ExecutionCount { set; get; }
-
-            public int? LastElapsedTime { set; get; }
-            public int? MaxElapsedTime { set; get; }
-            public int? MinElapsedTime { set; get; }
+            public DateTime? LastExecuted { get; internal set; }
+            public int? ExecutionCount { get; internal set; }
+            public int? LastElapsedTime { get; internal set; }
+            public int? MaxElapsedTime { get; internal set; }
+            public int? MinElapsedTime { get; internal set; }
             public string Definition { get; internal set; }
-            public string GetFetchSQL(Version v) => @"select p.object_id,s.name as SchemaName,
-                                                    p.name ProcedureName,
-                                                    p.create_date CreationDate,
-                                                    p.modify_date LastModifiedDate,
-                                                    max(ps.last_execution_time) as LastExecuted,
-                                                    max(ps.execution_count) as ExecutionCount,
-                                                    max(ps.last_elapsed_time/1000) as LastElapsedTime,
-                                                    max(ps.max_elapsed_time/1000) as MaxElapsedTime,
-                                                    max(ps.min_elapsed_time/1000) as MinElapsedTime,
-                                                    sm.definition Definition
-                                                    From sys.procedures p
-                                                    Join sys.schemas s	On p.schema_id = s.schema_id
-                                                    Join sys.sql_modules sm On sm.object_id = p.object_id
-                                                    left join sys.dm_exec_procedure_stats ps on ps.object_id=p.object_id
-                                                    Where p.is_ms_shipped = 0
-                                                    group by p.object_id,s.name,p.name,p.create_date ,p.modify_date,sm.definition
-                                                    order by object_id,p.name, p.create_date,p.modify_date";
+            public string GetFetchSQL(Version v) => @"
+Select p.object_id,s.name as SchemaName,
+    p.name ProcedureName,
+    p.create_date CreationDate,
+    p.modify_date LastModifiedDate,
+    max(ps.last_execution_time) as LastExecuted,
+    max(ps.execution_count) as ExecutionCount,
+    max(ps.last_elapsed_time/1000) as LastElapsedTime,
+    max(ps.max_elapsed_time/1000) as MaxElapsedTime,
+    max(ps.min_elapsed_time/1000) as MinElapsedTime,
+    sm.definition Definition
+  From sys.procedures p
+    Join sys.schemas s
+        On p.schema_id = s.schema_id
+    Join sys.sql_modules sm
+        On sm.object_id = p.object_id
+    left join sys.dm_exec_procedure_stats ps
+        On ps.object_id=p.object_id
+Where p.is_ms_shipped = 0
+  Group By p.object_id,s.name,p.name,p.create_date ,p.modify_date,sm.definition";
         }
         public class RestoreHistory : ISQLVersioned
         {


Minor test fix

Minor test fix

--- PART/Source/Core/Engine.Tests/TcpServerTests.cs
+++ PART/Source/Core/Engine.Tests/TcpServerTests.cs
@@ -70,7 +70,8 @@
             [Test]
             public void Run_OneConnection_OK()
             {
-                using (var server = new TcpServerStub() { Port = NewPort() })
+                BrokerContext.Initialize(CprBroker.Utilities.Constants.BaseApplicationToken.ToString(), "");
+                using (var server = new TcpServerStub() { Port = NewPort(), Address = "127.0.0.1" })
                 {
                     server.Start();
                     var client = new Client(server);


Fix test - still timing sensitive on hqs01


new problem added

new problem added


Add DanTsekhanskiy.cs

Add DanTsekhanskiy.cs


227: RunSpecificDemo()

227: RunSpecificDemo()


WorkItemId=9183

WorkItemId=9183

Fixed Involves deleting all folder names that only consists with numbers located in target folder of a project.

git-svn-id: ee144a4ada4e65570a65b3ba2a4ac9d4eedc8fa4@993959 13f79535-47bb-0310-9956-ffa450edef68

--- assemblies/NPanday.Utils/src/main/csharp/NPanday/Utils/MavenRunner.cs
+++ assemblies/NPanday.Utils/src/main/csharp/NPanday/Utils/MavenRunner.cs
@@ -8,7 +8,8 @@
 using System.Runtime.CompilerServices;

 using System.Threading;
-using System.Diagnostics;
+using System.Diagnostics;
+using System.Text.RegularExpressions;

@@ -75,41 +76,102 @@

             bool isFlatProject = true;

-                string[] directoryPartial = solution.FullName.Split("\\".ToCharArray());
-                string pathPartial = directoryPartial[directoryPartial.Length - 1];
-                string path = solution.FullName.Substring(0, solution.FullName.Length - pathPartial.Length);
-
-                path = path.Replace("\\", "//");
-                string baseDirectory = path;
-                path = path + "/bin";
-
-
-                string[] directories = Directory.GetDirectories(baseDirectory);
-                foreach (string dir in directories)
-                {
-                    string[] dirFiles = Directory.GetFiles(dir);
-                    foreach (string f in dirFiles)
+            string[] directoryPartial = solution.FullName.Split("\\".ToCharArray());
+            string pathPartial = directoryPartial[directoryPartial.Length - 1];
+            string path = solution.FullName.Substring(0, solution.FullName.Length - pathPartial.Length);
+
+            path = path.Replace("\\", "//");
+            string baseDirectory = path;
+            path = path + "/bin";
+
+
+            string[] directories = Directory.GetDirectories(baseDirectory);
+
+            //searching for pom file to determine whether the project is flat or not
+            foreach (string dir in directories)
+            {
+                string[] dirFiles = Directory.GetFiles(dir);
+                foreach (string f in dirFiles)
+                {
+                    if (f.Contains("pom.xml"))
                     {
-                        if (f.Contains("pom.xml"))
+                        isFlatProject = false;
+                        break;
+                    }
+                }
+                if (!isFlatProject)
+                {
+                    break;
+                }
+            }
+
+            //searching for target folders to delete the temp directories generated
+            foreach (string dir in directories)
+            {
+                //projects
+                string[] dirFolders = Directory.GetDirectories(baseDirectory);
+                foreach (string dirFolder in dirFolders)
+                {
+                    string[] projectFolders = Directory.GetDirectories(dirFolder);
+                    //folders in projects
+                    foreach (string projectFolder in projectFolders)
+                    {
+                        if (projectFolder.Contains("target"))
                         {
-                            isFlatProject = false;
-                            break;
+                            string[] targetFolders = Directory.GetDirectories(projectFolder);
+                            foreach (string targetFolder in targetFolders)
+                            {
+                                string targetChange = targetFolder.Replace("\\", "//");
+
+                                string[] targetPartial = targetChange.Split("//".ToCharArray());
+                                string targetPath = targetPartial[targetPartial.Length - 1];
+
+                                if (IsAllDigit(targetPath))
+                                {
+                                    try
+                                    {
+                                        Directory.Delete(targetChange, true);
+                                    }
+                                    catch (Exception e)
+                                    {
+                                        output.OutputString("\n[delete error]"+e.Message);
+                                    }
+
+                                }
+                            }
                         }
                     }
-                    if (!isFlatProject)
-                    {
-                        break;
-                    }
-                }
-
-                if (Directory.Exists(path) && !isFlatProject)
-                {
-                    Directory.Delete(path, true);
-                }
-
-
+                }
+                if (!isFlatProject)
+                {
+                    break;
+                }
+            }
+
+            //Delete the temp bin generated
+            if (Directory.Exists(path) && !isFlatProject)
+            {
+                Directory.Delete(path, true);
+            }
+
         }

+        // Function To test for temp folder
+        private bool IsAllDigit(String strToCheck)
+        {
+            bool isValid = true;
+            foreach (char item in strToCheck)
+            {
+                if (!Char.IsDigit(item))
+                {
+                    isValid = false;
+                    break;
+                }
+            }
+            return isValid;
+        }
+
+
         private void OutputErrorThreadDelegate()
         {


Fix InProcessMessageRouter in RouteOutputAsync


Refactor cpy operation spec to remove duplicated code


Add helpers for finding attributes

Add helpers for finding attributes

--- src/Konsola/Metadata/ObjectMetadata.cs
+++ src/Konsola/Metadata/ObjectMetadata.cs
@@ -1,4 +1,5 @@
 using System;
+using System.Linq;
 using System.Collections.Generic;

 namespace Konsola.Metadata
@@ -20,5 +21,20 @@
 		public virtual IEnumerable<PropertyMetadata> Properties { get; private set; }

 		public virtual IEnumerable<AttributeMetadata> Attributes { get; private set; }
+
+		public IEnumerable<T> AttributesOfType<T>()
+		{
+			return
+				Attributes
+				.Select(a => a.Attribute)
+				.OfType<T>();
+		}
+
+		public T AttributeOfType<T>()
+		{
+			return
+				AttributesOfType<T>()
+				.FirstOrDefault();
+		}
 	}
 }


ChagedFromContainsToStartsWith

ChagedFromContainsToStartsWith

Changed from Contains to StartsWith for a small performance boost, and better checking

--- PostSharpTutorial/LoggerAspect/LoggingAspect.cs
+++ PostSharpTutorial/LoggerAspect/LoggingAspect.cs
@@ -154,13 +154,13 @@
         /// </returns>
         public override bool CompileTimeValidate(MethodBase method)
         {
-            if ((Exclude & ExclusionFlags.StaticConstructor) == ExclusionFlags.StaticConstructor && method.Name.Contains(".cctor"))
+            if ((Exclude & ExclusionFlags.StaticConstructor) == ExclusionFlags.StaticConstructor && method.Name.StartsWith(".cctor"))
                 return false;
-            if ((Exclude & ExclusionFlags.InstanceConstructors) == ExclusionFlags.InstanceConstructors && method.Name.Contains(".ctor"))
+            if ((Exclude & ExclusionFlags.InstanceConstructors) == ExclusionFlags.InstanceConstructors && method.Name.StartsWith(".ctor"))
                 return false;
-            if ((Exclude & ExclusionFlags.PropertyGetters) == ExclusionFlags.PropertyGetters && method.Name.Contains("get_"))
+            if ((Exclude & ExclusionFlags.PropertyGetters) == ExclusionFlags.PropertyGetters && method.Name.StartsWith("get_"))
                 return false;
-            if ((Exclude & ExclusionFlags.PropertySetters) == ExclusionFlags.PropertySetters && method.Name.Contains("set_"))
+            if ((Exclude & ExclusionFlags.PropertySetters) == ExclusionFlags.PropertySetters && method.Name.StartsWith("set_"))
                 return false;
             return !method.Name.Contains("ToString");
         }
@@ -450,4 +450,4 @@
             return arguments;
         }
     }
-}+}


[Modify] Edit it

[Modify] Edit it


assembly

assembly


Ignore null pipeline steps

Ignore null pipeline steps


Removed IsKind() check before type checking, merged ifs

--- src/EditorFeatures/CSharp/Highlighting/KeywordHighlighters/DiscardParameterHighlighter.cs
+++ src/EditorFeatures/CSharp/Highlighting/KeywordHighlighters/DiscardParameterHighlighter.cs
@@ -22,24 +22,16 @@

         protected override IEnumerable<TextSpan> GetHighlights(ArgumentSyntax node, CancellationToken cancellationToken)
         {
-            if (node.Expression.IsKind(SyntaxKind.IdentifierName))
+            if (node.Expression is IdentifierNameSyntax nameSyntax
+                && nameSyntax.Identifier.Text == "_")
             {
-                var syntax = (IdentifierNameSyntax)node.Expression;
-
-                if (syntax.Identifier.Text == "_")
-                {
-                    return ImmutableArray.Create(syntax.Identifier.Span);
-                }
+                return ImmutableArray.Create(nameSyntax.Identifier.Span);
             }

-            if (node.Expression.IsKind(SyntaxKind.DeclarationExpression))
+            if (node.Expression is DeclarationExpressionSyntax declarationSyntax
+                && declarationSyntax.Designation.IsKind(SyntaxKind.DiscardDesignation))
             {
-                var syntax = (DeclarationExpressionSyntax)node.Expression;
-
-                if (syntax.Designation.IsKind(SyntaxKind.DiscardDesignation))
-                {
-                    return ImmutableArray.Create(syntax.Designation.Span);
-                }
+                return ImmutableArray.Create(declarationSyntax.Designation.Span);
             }

             return SpecializedCollections.EmptyEnumerable<TextSpan>();


Fixed bug with incorrect handling of empty projection state while starting up

--- src/EventStore/EventStore.TestClient/Commands/RunTestScenarios/ProjectionsKillScenario.cs
+++ src/EventStore/EventStore.TestClient/Commands/RunTestScenarios/ProjectionsKillScenario.cs
@@ -123,7 +123,7 @@
             Log.Info("Raw {0} state: {1}", projectionName, rawState);
             var state = Codec.Json.From<Dictionary<string, string>>(rawState);
             string value;
-            return state.Count > 0 && state.TryGetValue(key, out value) && checkValue(value);
+            return state != null && state.Count > 0 && state.TryGetValue(key, out value) && checkValue(value);
         }

         private string CreateCountItem()


Made some formatting changes.

Made some formatting changes.

--- src/Marvel.Mvc/Views/Home/Index.cshtml
+++ src/Marvel.Mvc/Views/Home/Index.cshtml
@@ -8,7 +8,7 @@

-
+
     <link href="~/Assets/prism.css" rel="stylesheet" />
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.96.1/css/materialize.min.css">
     <link href='http://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700' rel='stylesheet' type='text/css'>
@@ -30,80 +30,64 @@

-
Installation:

+
Installation

Head over to @ViewBag.marvelDeveloper and sign up/in to get your API keys.

-
NuGet:

-

-
-
Use NuGet to fetch and install the library for you. You can see the project's NuGet page here. (This is the recommended method for install)

+
NuGet

+

+                    Use NuGet to fetch and install the library for you.
+

+

+                    PM> Install-Package Marvel.Api
+

-
Github Clone:

-

-
-
You could also clone the repository:

-
-                    git clone https://github.com/rroa/marvel-csharp.git
-
-
Include the project within your solution and add a reference to it.

-

-
-

-
Quick start:

-

-
-
Initialize the API client

+
Quick start

-
-const string publicKey = "YOUR PUBLIC KEY";
-const string privateKey = "YOUR PRIVATE KEY";
+
+    const string publicKey = "YOUR PUBLIC KEY";
+    const string privateKey = "YOUR PRIVATE KEY";

-// Initialize the API client
-//
-var client = new MarvelRestClient(publicKey, privateKey);
-// First 20 characters
-//
-var response = client.FindCharacters();
-// Iterate through the results
-//
-foreach (var character in response.Data.Results)
-{
-    // Do something with the character info
-    string name = character.Name;
-}
+    // Initialize the API client
+    //
+    var client = new MarvelRestClient(publicKey, privateKey);
+    // First 20 characters
+    //
+    var response = client.FindCharacters();
+    // Iterate through the results
+    //
+    foreach (var character in response.Data.Results)
+    {
+        // Do something with the character info
+        string name = character.Name;
+    }

For more on how to use this wrapper visit our wiki

-

-
Documentation:

+

+
Documentation

The full doxygen documentation for the API can be found here

-

-

-
Attribution:

-

-
All Data provided by Marvel. © 2015 Marvel

-

+

-
-

-

-

-
MIT License 2015

+
+

+

+

+
MIT License 2015

-

-

+

+

-
+


Remove TPA list work-around

Remove TPA list work-around

--- src/Microsoft.PowerShell.CoreCLR.AssemblyLoadContext/CoreCLR/CorePsAssemblyLoadContext.cs
+++ src/Microsoft.PowerShell.CoreCLR.AssemblyLoadContext/CoreCLR/CorePsAssemblyLoadContext.cs
@@ -201,23 +201,9 @@
                         assemblyName.FullName);
                 }

-                try
-                {
-                    asmLoaded = asmFilePath.EndsWith(".ni.dll", StringComparison.OrdinalIgnoreCase)
-                        ? base.LoadFromNativeImagePath(asmFilePath, null)
-                        : base.LoadFromAssemblyPath(asmFilePath);
-                }
-                // Since .NET CLI built versions of PowerShell have all the
-                // built-in assemblies in the TPA list, the above will throw,
-                // and we have to use Assembly.Load. However, we must try the
-                // above first, otherwise assemblies that exist outside the TPA
-                // list will go into a recursive loop.
-                catch (System.IO.FileLoadException)
-                {
-                    asmLoaded = System.Reflection.Assembly.Load(assemblyName);
-                }
-
-                // If it loaded, add it to the cache
+                asmLoaded = asmFilePath.EndsWith(".ni.dll", StringComparison.OrdinalIgnoreCase)
+                                ? base.LoadFromNativeImagePath(asmFilePath, null)
+                                : base.LoadFromAssemblyPath(asmFilePath);
                 if (asmLoaded != null)
                 {
                     // Add the loaded assembly to the cache
@@ -251,22 +237,10 @@
                 if (TryGetAssemblyFromCache(assemblyName, out asmLoaded))
                     return asmLoaded;

-                try
-                {
-                    // Load the assembly through 'LoadFromNativeImagePath' or 'LoadFromAssemblyPath'
-                    asmLoaded = assemblyPath.EndsWith(".ni.dll", StringComparison.OrdinalIgnoreCase)
-                        ? base.LoadFromNativeImagePath(assemblyPath, null)
-                        : base.LoadFromAssemblyPath(assemblyPath);
-                }
-                // Since .NET CLI built versions of PowerShell have all the
-                // built-in assemblies in the TPA list, the above will throw,
-                // and we have to use Assembly.Load. However, we must try the
-                // above first, otherwise assemblies that exist outside the TPA
-                // list will go into a recursive loop.
-                catch (System.IO.FileLoadException)
-                {
-                    asmLoaded = System.Reflection.Assembly.Load(assemblyName);
-                }
+                // Load the assembly through 'LoadFromNativeImagePath' or 'LoadFromAssemblyPath'
+                asmLoaded = assemblyPath.EndsWith(".ni.dll", StringComparison.OrdinalIgnoreCase)
+                    ? base.LoadFromNativeImagePath(assemblyPath, null)
+                    : base.LoadFromAssemblyPath(assemblyPath);

                 if (asmLoaded != null)
                 {


[primpreview]
* Full sim export (untested)
* Added Login URI control
* Local and remote teleporting
* Local teleport context menu
* Download progress bar
* More error resilience
* Terrain patch selecting
* Small visual improvements
* Fixed camera to change position instead of using OpenGL zooming

git-svn-id: c32cf1ecefca26b8770d7b0740bc0c5c174087e4@1818 c754d5e9-d413-0410-bcdf-9574c9dba6b7

--- libsecondlife/examples/TestClient/Commands/Land/ParcelInfoCommand.cs
+++ libsecondlife/examples/TestClient/Commands/Land/ParcelInfoCommand.cs
@@ -19,11 +19,8 @@
             testClient.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(Network_OnDisconnected);
         }

-
-
         public override string Execute(string[] args, LLUUID fromAgentID)
         {
-
             StringBuilder sb = new StringBuilder();
             string result;


Fix button label

Fix button label

--- src/BloomExe/Library/LibraryView.Designer.cs
+++ src/BloomExe/Library/LibraryView.Designer.cs
@@ -28,115 +28,115 @@
         /// </summary>
         private void InitializeComponent()
         {
-			this.components = new System.ComponentModel.Container();
-			this._topBarControl = new System.Windows.Forms.Panel();
-			this.localizationExtender1 = new Localization.UI.LocalizationExtender(this.components);
-			this._toolStrip = new System.Windows.Forms.ToolStrip();
-			this._sendReceiveButton = new System.Windows.Forms.ToolStripButton();
-			this._makeBloomPackButton = new System.Windows.Forms.ToolStripButton();
-			this.splitContainer1 = new Bloom.ToPalaso.BetterSplitContainer(this.components);
-			this._topBarControl.SuspendLayout();
-			((System.ComponentModel.ISupportInitialize)(this.localizationExtender1)).BeginInit();
-			this._toolStrip.SuspendLayout();
-			((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
-			this.splitContainer1.SuspendLayout();
-			this.SuspendLayout();
-			//
-			// _topBarControl
-			//
-			this._topBarControl.Controls.Add(this._toolStrip);
-			this._topBarControl.Location = new System.Drawing.Point(223, 224);
-			this._topBarControl.Name = "_topBarControl";
-			this._topBarControl.Size = new System.Drawing.Size(327, 70);
-			this._topBarControl.TabIndex = 15;
-			//
-			// localizationExtender1
-			//
-			this.localizationExtender1.LocalizationManagerId = "Bloom";
-			//
-			// _toolStrip
-			//
-			this._toolStrip.BackColor = System.Drawing.Color.Transparent;
-			this._toolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
-			this._toolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.components = new System.ComponentModel.Container();
+            this._topBarControl = new System.Windows.Forms.Panel();
+            this._toolStrip = new System.Windows.Forms.ToolStrip();
+            this._sendReceiveButton = new System.Windows.Forms.ToolStripButton();
+            this._makeBloomPackButton = new System.Windows.Forms.ToolStripButton();
+            this.localizationExtender1 = new Localization.UI.LocalizationExtender(this.components);
+            this.splitContainer1 = new Bloom.ToPalaso.BetterSplitContainer(this.components);
+            this._topBarControl.SuspendLayout();
+            this._toolStrip.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.localizationExtender1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+            this.splitContainer1.SuspendLayout();
+            this.SuspendLayout();
+            //
+            // _topBarControl
+            //
+            this._topBarControl.Controls.Add(this._toolStrip);
+            this._topBarControl.Location = new System.Drawing.Point(223, 224);
+            this._topBarControl.Name = "_topBarControl";
+            this._topBarControl.Size = new System.Drawing.Size(327, 70);
+            this._topBarControl.TabIndex = 15;
+            //
+            // _toolStrip
+            //
+            this._toolStrip.BackColor = System.Drawing.Color.Transparent;
+            this._toolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
+            this._toolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this._sendReceiveButton,
             this._makeBloomPackButton});
-			this._toolStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
-			this.localizationExtender1.SetLocalizableToolTip(this._toolStrip, null);
-			this.localizationExtender1.SetLocalizationComment(this._toolStrip, null);
-			this.localizationExtender1.SetLocalizationPriority(this._toolStrip, Localization.LocalizationPriority.NotLocalizable);
-			this.localizationExtender1.SetLocalizingId(this._toolStrip, "WorkspaceView._toolStrip");
-			this._toolStrip.Location = new System.Drawing.Point(0, 0);
-			this._toolStrip.Name = "_toolStrip";
-			this._toolStrip.RightToLeft = System.Windows.Forms.RightToLeft.No;
-			this._toolStrip.Size = new System.Drawing.Size(327, 54);
-			this._toolStrip.TabIndex = 31;
-			this._toolStrip.Text = "_toolStrip";
-			//
-			// _sendReceiveButton
-			//
-			this._sendReceiveButton.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
-			this._sendReceiveButton.Image = global::Bloom.Properties.Resources.sendreceiveToolbarButton;
-			this._sendReceiveButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
-			this._sendReceiveButton.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.localizationExtender1.SetLocalizableToolTip(this._sendReceiveButton, null);
-			this.localizationExtender1.SetLocalizationComment(this._sendReceiveButton, null);
-			this.localizationExtender1.SetLocalizingId(this._sendReceiveButton, "SendReceiveutton");
-			this._sendReceiveButton.Name = "_sendReceiveButton";
-			this._sendReceiveButton.Size = new System.Drawing.Size(82, 43);
-			this._sendReceiveButton.Text = "Send/Receive";
-			this._sendReceiveButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
-			//
-			// _makeBloomPackButton
-			//
-			this._makeBloomPackButton.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
-			this._makeBloomPackButton.Image = global::Bloom.Properties.Resources.PackageFlat;
-			this._makeBloomPackButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
-			this._makeBloomPackButton.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.localizationExtender1.SetLocalizableToolTip(this._makeBloomPackButton, null);
-			this.localizationExtender1.SetLocalizationComment(this._makeBloomPackButton, null);
-			this.localizationExtender1.SetLocalizationPriority(this._makeBloomPackButton, Localization.LocalizationPriority.Medium);
-			this.localizationExtender1.SetLocalizingId(this._makeBloomPackButton, "LibraryView._makeBloomPackButton");
-			this._makeBloomPackButton.Name = "_makeBloomPackButton";
-			this._makeBloomPackButton.Size = new System.Drawing.Size(136, 51);
-			this._makeBloomPackButton.Text = "Open/Create Collection";
-			this._makeBloomPackButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
-			this._makeBloomPackButton.Click += new System.EventHandler(this.OnMakeBloomPackButton_Click);
-			//
-			// splitContainer1
-			//
-			this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(54)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
-			this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
-			this.localizationExtender1.SetLocalizableToolTip(this.splitContainer1, null);
-			this.localizationExtender1.SetLocalizationComment(this.splitContainer1, null);
-			this.localizationExtender1.SetLocalizingId(this.splitContainer1, "LibraryView.splitContainer1");
-			this.splitContainer1.Location = new System.Drawing.Point(0, 0);
-			this.splitContainer1.Name = "splitContainer1";
-			this.splitContainer1.Size = new System.Drawing.Size(773, 518);
-			this.splitContainer1.SplitterDistance = 333;
-			this.splitContainer1.SplitterWidth = 10;
-			this.splitContainer1.TabIndex = 0;
-			this.splitContainer1.TabStop = false;
-			//
-			// LibraryView
-			//
-			this.BackColor = System.Drawing.SystemColors.Control;
-			this.Controls.Add(this._topBarControl);
-			this.Controls.Add(this.splitContainer1);
-			this.localizationExtender1.SetLocalizableToolTip(this, null);
-			this.localizationExtender1.SetLocalizationComment(this, null);
-			this.localizationExtender1.SetLocalizingId(this, "LibraryView.LibraryView");
-			this.Name = "LibraryView";
-			this.Size = new System.Drawing.Size(773, 518);
-			this.Load += new System.EventHandler(this.LibraryView_Load);
-			this._topBarControl.ResumeLayout(false);
-			this._topBarControl.PerformLayout();
-			((System.ComponentModel.ISupportInitialize)(this.localizationExtender1)).EndInit();
-			this._toolStrip.ResumeLayout(false);
-			this._toolStrip.PerformLayout();
-			((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
-			this.splitContainer1.ResumeLayout(false);
-			this.ResumeLayout(false);
+            this._toolStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
+            this.localizationExtender1.SetLocalizableToolTip(this._toolStrip, null);
+            this.localizationExtender1.SetLocalizationComment(this._toolStrip, null);
+            this.localizationExtender1.SetLocalizationPriority(this._toolStrip, Localization.LocalizationPriority.NotLocalizable);
+            this.localizationExtender1.SetLocalizingId(this._toolStrip, "WorkspaceView._toolStrip");
+            this._toolStrip.Location = new System.Drawing.Point(0, 0);
+            this._toolStrip.Name = "_toolStrip";
+            this._toolStrip.RightToLeft = System.Windows.Forms.RightToLeft.No;
+            this._toolStrip.Size = new System.Drawing.Size(327, 46);
+            this._toolStrip.TabIndex = 31;
+            this._toolStrip.Text = "_toolStrip";
+            //
+            // _sendReceiveButton
+            //
+            this._sendReceiveButton.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+            this._sendReceiveButton.Image = global::Bloom.Properties.Resources.sendreceiveToolbarButton;
+            this._sendReceiveButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
+            this._sendReceiveButton.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.localizationExtender1.SetLocalizableToolTip(this._sendReceiveButton, null);
+            this.localizationExtender1.SetLocalizationComment(this._sendReceiveButton, null);
+            this.localizationExtender1.SetLocalizingId(this._sendReceiveButton, "SendReceiveutton");
+            this._sendReceiveButton.Name = "_sendReceiveButton";
+            this._sendReceiveButton.Size = new System.Drawing.Size(82, 43);
+            this._sendReceiveButton.Text = "Send/Receive";
+            this._sendReceiveButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+            //
+            // _makeBloomPackButton
+            //
+            this._makeBloomPackButton.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+            this._makeBloomPackButton.Image = global::Bloom.Properties.Resources.PackageFlat;
+            this._makeBloomPackButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
+            this._makeBloomPackButton.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.localizationExtender1.SetLocalizableToolTip(this._makeBloomPackButton, null);
+            this.localizationExtender1.SetLocalizationComment(this._makeBloomPackButton, null);
+            this.localizationExtender1.SetLocalizationPriority(this._makeBloomPackButton, Localization.LocalizationPriority.Medium);
+            this.localizationExtender1.SetLocalizingId(this._makeBloomPackButton, "LibraryView._makeBloomPackButton");
+            this._makeBloomPackButton.Name = "_makeBloomPackButton";
+            this._makeBloomPackButton.Size = new System.Drawing.Size(106, 43);
+            this._makeBloomPackButton.Text = "Make Bloom Pack";
+            this._makeBloomPackButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+            this._makeBloomPackButton.Click += new System.EventHandler(this.OnMakeBloomPackButton_Click);
+            //
+            // localizationExtender1
+            //
+            this.localizationExtender1.LocalizationManagerId = "Bloom";
+            //
+            // splitContainer1
+            //
+            this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(54)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
+            this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.localizationExtender1.SetLocalizableToolTip(this.splitContainer1, null);
+            this.localizationExtender1.SetLocalizationComment(this.splitContainer1, null);
+            this.localizationExtender1.SetLocalizingId(this.splitContainer1, "LibraryView.splitContainer1");
+            this.splitContainer1.Location = new System.Drawing.Point(0, 0);
+            this.splitContainer1.Name = "splitContainer1";
+            this.splitContainer1.Size = new System.Drawing.Size(773, 518);
+            this.splitContainer1.SplitterDistance = 333;
+            this.splitContainer1.SplitterWidth = 10;
+            this.splitContainer1.TabIndex = 0;
+            this.splitContainer1.TabStop = false;
+            //
+            // LibraryView
+            //
+            this.BackColor = System.Drawing.SystemColors.Control;
+            this.Controls.Add(this._topBarControl);
+            this.Controls.Add(this.splitContainer1);
+            this.localizationExtender1.SetLocalizableToolTip(this, null);
+            this.localizationExtender1.SetLocalizationComment(this, null);
+            this.localizationExtender1.SetLocalizingId(this, "LibraryView.LibraryView");
+            this.Name = "LibraryView";
+            this.Size = new System.Drawing.Size(773, 518);
+            this.Load += new System.EventHandler(this.LibraryView_Load);
+            this._topBarControl.ResumeLayout(false);
+            this._topBarControl.PerformLayout();
+            this._toolStrip.ResumeLayout(false);
+            this._toolStrip.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.localizationExtender1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+            this.splitContainer1.ResumeLayout(false);
+            this.ResumeLayout(false);

         }


Annotated source with Json.Net attributes for proper JSON names

--- src/MonoSump.Core/SumpConfiguration.cs
+++ src/MonoSump.Core/SumpConfiguration.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using Newtonsoft.Json;

 namespace Earlz.MonoSump.Core
 {
@@ -28,35 +29,59 @@
 	 */
 	public class SumpConfiguration
 	{
+		[JsonProperty("stages")]
 		public TriggerStageConfiguration[] TriggerSetup{get;private set;}
+		[JsonProperty("readCount")]
 		public int ReadCount{get;set;}
+		[JsonProperty("delayCount")]
 		public int DelayCount{get;set;}
+		[JsonProperty("sampleFrequency")]
 		public int SampleFrequency{get;set;}
-
+		[JsonProperty("demux")]
 		public bool Demux{get;set;}
+		[JsonProperty("noiseFilter")]
 		public bool Filter{get;set;}
-		public bool[] DisabledChannelGroups{get;private set;}
+		[JsonProperty("disabledGroups")]
+		public IDictionary<int, bool> DisabledChannelGroups{get;private set;}
+		[JsonProperty("externalClock")]
 		public bool ExternalClock{get;set;}
+		[JsonProperty("invertClock")]
 		public bool InvertedClock{get;set;}

 		public SumpConfiguration()
 		{
 			TriggerSetup=new TriggerStageConfiguration[4];
-			DisabledChannelGroups=new bool[4];
+			DisabledChannelGroups=new Dictionary<int, bool>();
+			ReadCount=10;
+			DelayCount=10;
+			SampleFrequency=1000;
+			Demux=false;
+			Filter=false;
+			ExternalClock=false;
+			InvertedClock=false;
 		}
 	}
 	public class TriggerStageConfiguration
 	{
+		[JsonIgnore]
 		public const int CHANNEL_COUNT=32;
+		[JsonProperty("triggers")]
 		public IDictionary<int, int> Values{get;private set;}
+		[JsonProperty("delay")]
 		public int Delay{get;set;}
-		public int Channel{get;set;}
+		[JsonProperty("serialChannel")]
+		public int? Channel{get;set;}
+		[JsonProperty("level")]
 		public int Level{get;set;}
+		[JsonProperty("start")]
 		public bool Start{get;set;}
-		public bool Serial{get;set;}
 		public TriggerStageConfiguration()
 		{
 			Values=new Dictionary<int, int>();
+			Delay=0;
+			Level=0;
+			Channel=null;
+			Start=false;
 		}

 	}


Fix typo in MySqlErrorCode enum value.

Fix typo in MySqlErrorCode enum value.

The old value is kept for API compatibility with Connector/NET.

--- src/MySqlConnector/MySqlErrorCode.g.cs
+++ src/MySqlConnector/MySqlErrorCode.g.cs
@@ -3056,6 +3056,9 @@
 		/// <summary>
 		/// ER_CANT_CREATE_SROUTINE
 		/// </summary>
+		CannotCreateSubRoutine = 1607,
+
+		[System.Obsolete("Use CannotCreateSubRoutine")]
 		CannoCreateSubRoutine = 1607,

 		/// <summary>


Fixes #18, by never allowing a negative wait time when postponing a timer callback execution.

git-svn-id: aaa9712ceb55dedb2b67b3d07ba1fa4dec5bedc3@121 352c818e-eda7-11de-bf31-4dec8810c1c1

--- src/NCron/Service/SchedulingService.cs
+++ src/NCron/Service/SchedulingService.cs
@@ -84,19 +84,20 @@

         private void TimerCallbackHandler(object data)
         {
-            if (DateTime.Now >= _head.NextOccurence)
+            var waitTime = _head.NextOccurence - DateTime.Now;
+            var waitMilliseconds = (long) waitTime.TotalMilliseconds;
+
+            if (waitMilliseconds > 0)
             {
-                ThreadPool.QueueUserWorkItem(WaitCallbackHandler, _head);
-                _head.Advance();
-                _queue.Add(_head);
-                _head = _queue.DeleteMin();
-                TimerCallbackHandler(null);
+                _timer.Change(waitMilliseconds, Timeout.Infinite);
+                return;
             }
-            else
-            {
-                var timeToNext = _head.NextOccurence - DateTime.Now;
-                _timer.Change((long) timeToNext.TotalMilliseconds, Timeout.Infinite);
-            }
+
+            ThreadPool.QueueUserWorkItem(WaitCallbackHandler, _head);
+            _head.Advance();
+            _queue.Add(_head);
+            _head = _queue.DeleteMin();
+            TimerCallbackHandler(null);
         }

         private void WaitCallbackHandler(object data)


Try using password from same server before prompting for credentials. Work items: 1413

--- src/Core/Utility/RequestCredentialService.cs
+++ src/Core/Utility/RequestCredentialService.cs
@@ -134,7 +134,7 @@
             }

             public CredentialResult GetCredentials(Uri uri, IWebProxy proxy) {
-                ICredentials credentials = _credentialCache.Where(pair => uri.OriginalString.StartsWith(pair.Key.OriginalString, StringComparison.OrdinalIgnoreCase))
+                ICredentials credentials = _credentialCache.Where(pair => GetSchemeAndServer(pair.Key).Equals(GetSchemeAndServer(uri), StringComparison.OrdinalIgnoreCase))
                                                            .Select(pair => pair.Value)
                                                            .FirstOrDefault();

@@ -144,6 +144,10 @@

                 return CredentialResult.Create(CredentialState.HasCredentials, credentials);
             }
+
+            private static string GetSchemeAndServer(Uri uri) {
+                return uri.GetComponents(UriComponents.SchemeAndServer, UriFormat.SafeUnescaped);
+            }
         }
     }
 }


CON-1893 Pointed link to signed agreement PDF

--- src/SFA.DAS.EmployerAccounts.Web/Views/EmployerAgreement/AcceptedEmployerAgreement.cshtml
+++ src/SFA.DAS.EmployerAccounts.Web/Views/EmployerAgreement/AcceptedEmployerAgreement.cshtml
@@ -1,5 +1,5 @@
 @using SFA.DAS.EmployerAccounts.Web.Helpers
-@{Layout = "~/Views/Shared/_Layout_CDN.cshtml"; }
+@{ Layout = "~/Views/Shared/_Layout_CDN.cshtml"; }

 @{
     ViewBag.PageID = "accepted-employer-agreement";
@@ -19,10 +19,10 @@

-
+
                 Download your accepted agreement

-             (PDF, 304KB)
+             (PDF, 334KB)

What happens next


Dp not clear mongo content repository when event consumer is restarted

--- src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentRepository_EventHandling.cs
+++ src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentRepository_EventHandling.cs
@@ -10,6 +10,7 @@
 using Squidex.Domain.Apps.Events.Contents;
 using Squidex.Infrastructure.Dispatching;
 using Squidex.Infrastructure.EventSourcing;
+using Squidex.Infrastructure.Tasks;

 namespace Squidex.Domain.Apps.Entities.MongoDb.Contents
 {
@@ -47,5 +48,10 @@
                     Filter.AnyNe(x => x.ReferencedIdsDeleted, @event.ContentId)),
                 Update.AddToSet(x => x.ReferencedIdsDeleted, @event.ContentId));
         }
+
+        Task IEventConsumer.ClearAsync()
+        {
+            return TaskHelper.Done;
+        }
     }
 }


Delete file

Delete file

--- src/Workspaces/Core/Portable/FindSymbols/FindReferences/FindReferencesCascadeDirection.cs
+++ src/Workspaces/Core/Portable/FindSymbols/FindReferences/FindReferencesCascadeDirection.cs
@@ -1,33 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-
-namespace Microsoft.CodeAnalysis.FindSymbols
-{
-    //[Flags]
-    //internal enum FindReferencesCascadeDirection
-    //{
-    //    /// <summary>
-    //    /// Cascade up the inheritance hierarchy.
-    //    /// </summary>
-    //    Up = 1,
-
-    //    /// <summary>
-    //    /// Cascade down the inheritance hierarchy.
-    //    /// </summary>
-    //    Down = 2,
-
-    //    /// <summary>
-    //    /// Cascade in both directions.
-    //    /// </summary>
-    //    UpAndDown = Up | Down,
-    //}
-
-    //internal static class FindReferencesCascadeDirectionExtensions
-    //{
-    //    public static bool HasFlag(this FindReferencesCascadeDirection value, FindReferencesCascadeDirection flag)
-    //        => (value & flag) == flag;
-    //}
-}


made vendor and address default to the first option and also they are required to save the order

--- Purchasing.Web/Views/OrderMockup/Request.cshtml
+++ Purchasing.Web/Views/OrderMockup/Request.cshtml
@@ -127,7 +127,8 @@

-                        @this.Select("vendor").FirstOption("Select A Vendor").Options(ViewBag.Vendors, "Id", "Name")
+                        @this.Select("vendor").Options(ViewBag.Vendors, "Id", "Name").Class("required")
+
                         (or)
                         Add new vendor
                         (or)
@@ -162,7 +163,8 @@

-                    @this.Select("shipAddress").FirstOption("Select A Shipping Address").Options(ViewBag.Addresses, "Id", "Name")
+                    @this.Select("shipAddress").Options(ViewBag.Addresses, "Id", "Name").Class("required")
+
                     (or)
                     Add new Shipping Address


Adjust return documentation message

Adjust return documentation message

--- src/NetCoreForce.Client/ForceClient.cs
+++ src/NetCoreForce.Client/ForceClient.cs
@@ -392,7 +392,7 @@
         /// <param name="fieldValue">External ID field value</param>
         /// <param name="sObject">Object to update</param>
         /// <param name="customHeaders">Custom headers to include in request (Optional). await The HeaderFormatter helper class can be used to generate the custom header as needed.</param>
-        /// <returns>void, API returns 204/NoContent</returns>
+        /// <returns>CreateResponse object, includes new object's ID if record was created and no value if object was updated</returns>
         /// <exception cref="ForceApiException">Thrown when request fails</exception>
         public async Task<CreateResponse> InsertOrUpdateRecord<T>(string sObjectTypeName, string fieldName, string fieldValue, T sObject, Dictionary<string, string> customHeaders = null)
         {


Added `CCodeGenerator.GenerateExtraClassSpecifiers` extension point.

--- src/Generator/Generators/C/CCodeGenerator.cs
+++ src/Generator/Generators/C/CCodeGenerator.cs
@@ -177,6 +177,9 @@
             }
         }

+        public virtual List<string> GenerateExtraClassSpecifiers(Class @class)
+            => new List<string>();
+
         public override void GenerateClassSpecifier(Class @class)
         {
             var keywords = new List<string>();
@@ -199,6 +202,8 @@
                 keywords.Add(@class.IsInterface ? "interface" : "class");
             else
                 keywords.Add("class");
+
+            keywords.AddRange(GenerateExtraClassSpecifiers(@class));

             keywords.Add(@class.Name);


update readme

update readme

--- PypestreamHackathon/Dialogs/SearchBingDialog.cs
+++ PypestreamHackathon/Dialogs/SearchBingDialog.cs
@@ -35,6 +35,7 @@

             string searchResultsString = String.Join(string.Empty, rez);

+            // Add carosel here...time provided

             context.Done(searchResultsString);
         }