Add NSUrlProtocol and NSUrlProtocolClient APIs

--- src/foundation.cs
+++ src/foundation.cs
@@ -3994,5 +3994,98 @@
 	}
 #endif

+	[BaseType (typeof (NSObject), Name="NSURLProtocolClient")]
+	[Model]
+	interface NSUrlProtocolClient {
+		[Abstract]
+		[Export ("UrlProtocol:wasRedirectedToRequest:redirectResponse:"), EventArgs ("NSUrlProtocolRedirect")]
+		void Redirected (NSUrlProtocol protocol, NSUrlRequest redirectedToEequest, NSUrlResponse redirectResponse);
+
+		[Abstract]
+		[Export ("UrlProtocol:cachedResponseIsValid:"), EventArgs ("NSUrlProtocolCachedResponse")]
+		void CachedResponseIsValid (NSUrlProtocol protocol, NSCachedUrlResponse cachedResponse);
+
+		[Abstract]
+		[Export ("UrlProtocol:didReceiveResponse:cacheStoragePolicy:"), EventArgs ("NSUrlProtocolResponse")]
+		void ReceivedResponse (NSUrlProtocol protocol, NSUrlResponse response, NSUrlCacheStoragePolicy policy);
+
+		[Abstract]
+		[Export ("UrlProtocol:didLoadData:"), EventArgs ("NSUrlProtocolData")]
+		void DataLoaded (NSUrlProtocol protocol, NSData data);
+
+		[Abstract]
+		[Export ("UrlProtocolDidFinishLoading:")]
+		void FinishedLoading (NSUrlProtocol protocol);
+
+		[Abstract]
+		[Export ("UrlProtocol:didFailWithError:"), EventArgs ("NSUrlProtocolError")]
+		void FailedWithError (NSUrlProtocol protocol, NSError error);
+
+		[Abstract]
+		[Export ("UrlProtocol:didReceiveAuthenticationChallenge:"), EventArgs ("NSUrlProtocolChallenge")]
+		void ReceivedAuthenticationChallenge (NSUrlProtocol protocol, NSUrlAuthenticationChallenge challenge);
+
+		[Abstract]
+		[Export ("UrlProtocol:didCancelAuthenticationChallenge:"), EventArgs ("NSUrlProtocolChallenge")]
+		void CancelledAuthenticationChallenge (NSUrlProtocol protocol, NSUrlAuthenticationChallenge challenge);
+	}
+
+	[BaseType (typeof (NSObject),
+		   Delegates=new string [] {"WeakClient"},
+		   Events=new Type [] {typeof (NSUrlProtocolClient)})]
+	interface NSUrlProtocol {
+		[Export ("initWithRequest:cachedResponse:client:")]
+		IntPtr Constructor (NSUrlRequest request, NSCachedUrlResponse cachedResponse, NSUrlProtocolClient client);
+
+		[Export ("client")]
+		NSObject WeakClient { get; set; }
+
+		[Wrap ("WeakClient")]
+		NSUrlProtocolClient Client { get; set; }
+
+		[Export ("request")]
+		NSUrlRequest Request { get; }
+
+		[Export ("cachedResponse")]
+		NSCachedUrlResponse CachedResponse { get; }
+
+		[Export ("canInitWithRequest:")]
+		bool CanInitWithRequest (NSUrlRequest request);
+
+		[Static]
+		[Export ("canonicalRequestForRequest:")]
+		NSUrlRequest GetCanonicalRequest (NSUrlRequest forRequest);
+
+		[Static]
+		[Export ("requestIsCacheEquivalent:toRequest:")]
+		bool IsRequestCacheEquivalent (NSUrlRequest first, NSUrlRequest second);
+
+		[Export ("startLoading")]
+		void StartLoading ();
+
+		[Export ("stopLoading")]
+		void StopLoading ();
+
+		[Static]
+		[Export ("propertyForKey:inRequest:")]
+		NSObject GetProperty (string key, NSUrlRequest inRequest);
+
+		[Static]
+		[Export ("setProperty:forKey:inRequest:")]
+		void SetProperty ([NullAllowed] NSObject value, string key, NSMutableUrlRequest inRequest);
+
+		[Static]
+		[Export ("removePropertyForKey:inRequest:")]
+		void RemoveProperty (string propertyKey, NSMutableUrlRequest request);
+
+		[Static]
+		[Export ("registerClass:")]
+		bool RegisterClass (Class protocolClass);
+
+		[Static]
+		[Export ("unregisterClass:")]
+		void UnregisterClass (Class protocolClass);
+	}
+
 }


Shutdown file directory should always exist when running a WebJob as the WebJob may rely on it being there.

--- Kudu.Core/Jobs/BaseJobRunner.cs
+++ Kudu.Core/Jobs/BaseJobRunner.cs
@@ -282,6 +282,7 @@
         protected virtual string RefreshShutdownNotificationFilePath(string jobName, string jobsTypePath)
         {
             string shutdownFilesDirectory = Path.Combine(Environment.TempPath, "JobsShutdown", jobsTypePath, jobName);
+            FileSystemHelpers.EnsureDirectory(shutdownFilesDirectory);
             FileSystemHelpers.DeleteDirectoryContentsSafe(shutdownFilesDirectory, ignoreErrors: true);
             return Path.Combine(shutdownFilesDirectory, Path.GetRandomFileName());
         }


Pool transactions are stored in memory (initially created to batch insert operations) so the hard limit is removed.

--- src/Sync/SyncOperations.cs
+++ src/Sync/SyncOperations.cs
@@ -190,16 +190,16 @@
             var newTransactions = currentMemoryPool.Except(currentTable).ToList();
             var deleteTransaction = currentTable.Except(currentMemoryPool).ToList();

-            var newTransactionsLimited = newTransactions.Count() < 1000 ? newTransactions : newTransactions.Take(1000).ToList();
-
-            syncingBlocks.CurrentPoolSyncing.AddRange(newTransactionsLimited);
+            //var newTransactionsLimited = newTransactions.Count() < 1000 ? newTransactions : newTransactions.Take(1000).ToList();
+
+            syncingBlocks.CurrentPoolSyncing.AddRange(newTransactions);
             deleteTransaction.ForEach(t => syncingBlocks.CurrentPoolSyncing.Remove(t));

             stoper.Stop();

             this.tracer.DetailedTrace("SyncPool", string.Format("Seconds = {0} - New Transactions = {1}", stoper.Elapsed.TotalSeconds, newTransactions.Count()));

-            return new SyncPoolTransactions { Transactions = newTransactionsLimited };
+            return new SyncPoolTransactions { Transactions = newTransactions };
         }

         private class tcalc


Enable other player attack animations

Enable other player attack animations

--- EOLib/PacketHandlers/PacketHandlerDependencyContainer.cs
+++ EOLib/PacketHandlers/PacketHandlerDependencyContainer.cs
@@ -39,7 +39,8 @@
             //player actions
             container.RegisterVaried<IPacketHandler, PlayerDirectionHandler>()
                 .RegisterVaried<IPacketHandler, PlayerWalkHandler>()
-                .RegisterVaried<IPacketHandler, MainPlayerWalkHandler>();
+                .RegisterVaried<IPacketHandler, MainPlayerWalkHandler>()
+                .RegisterVaried<IPacketHandler, PlayerAttackHandler>();

             //npcs
             container.RegisterVaried<IPacketHandler, NPCActionHandler>()


Fix issue when relogging when fetching profile.

--- EliteDangerousCompanionAppService/CompanionAppService.cs
+++ EliteDangerousCompanionAppService/CompanionAppService.cs
@@ -176,7 +176,6 @@
             }

             HttpWebRequest request = GetRequest(BASE_URL + PROFILE_URL);
-
             HttpWebResponse response = GetResponse(request);

             if (response.StatusCode == HttpStatusCode.Found && response.Headers["Location"] == LOGIN_URL)
@@ -188,6 +187,8 @@
                 {
                     throw new EliteDangerousCompanionAppIllegalStateException("Service in incorrect state to provide profile");
                 }
+                // Rerun the profile request
+                request = GetRequest(BASE_URL + PROFILE_URL);
                 response = GetResponse(request);
             }


Various testing, try API 20

Various testing, try API 20

--- kynnaugh/Plugin.cs
+++ kynnaugh/Plugin.cs
@@ -16,11 +16,12 @@
         // based on / a port of https://github.com/allquixotic/kynnaugh-cc/blob/master/kynnaugh.cpp
         const string PluginName = "kynnaugh";
         const string PluginVersion = "1.0";
-        const int PluginApiVersion = 21;
+        const int PluginApiVersion = 20;
         const string PluginAuthor = "RootAccessOrg";
         const string PluginDescription = "Speech recognition and text to speech for deaf users.";

         static string PluginId;
+        static TS3Functions ts3Functions;

         /*********************************** Required functions ************************************/
         /*
@@ -84,9 +85,10 @@
         [DllExport]
         public static void ts3plugin_setFunctionPointers(TS3Functions funcs)
         {
+            //Console.WriteLine("Kynnaugh setFunctionPointers()");
             //ts3Functions = funcs;
         }
-
+
         /// <summary>
         /// Custom code called right after loading the plugin. Returns 0 on success, 1 on failure.
         /// If the function returns 1 on failure, the plugin will be unloaded again.
@@ -95,11 +97,10 @@
         [DllExport]
         public static int ts3plugin_init()
         {
-            //Console.WriteLine("Kynnaugh plugin_init()");
-            System.Diagnostics.Debug.WriteLine("Kynnaugh plugin_init()");
+            //Console.WriteLine("Kynnaugh init()");
             return 0;
         }
-
+
         /// <summary>
         /// Custom code called right before the plugin is unloaded
         /// </summary>
@@ -108,7 +109,7 @@
         {

         }
-
+        /*
         /// <summary>
         /// If the plugin wants to use error return codes, plugin commands, hotkeys or menu items, it needs to register a command ID. This function will be
         /// automatically called after the plugin was initialized.This function is optional.If you don't use these features, this function can be omitted.
@@ -119,9 +120,9 @@
         public static void ts3plugin_registerPluginID(IntPtr id)
         {
             PluginId = StringUtils.StringFromNativeUtf8(id);
-            //Console.WriteLine("registerPluginId() " + PluginId);
+            Console.WriteLine("registerPluginId() " + PluginId);
         }
-
+
         /// <summary>
         /// Required to release the memory for parameter "data" allocated in ts3plugin_infoData and ts3plugin_initMenus
         /// </summary>
@@ -142,7 +143,7 @@
         [DllExport]
         public static int ts3plugin_requestAutoload()
         {
-            return 1;  /* 1 = request autoloaded, 0 = do not request autoload */
+            return 1;  // 1 = request autoloaded, 0 = do not request autoload
         }

         /// <summary>
@@ -159,6 +160,6 @@
         {
             short[] managedSamples = new short[sampleCount];
             Marshal.Copy(samples, managedSamples, 0, sampleCount);
-        }
+        }*/
     }
 }


Make OnHidden protected virtual

Make OnHidden protected virtual

--- Xwt/Xwt/WindowFrame.cs
+++ Xwt/Xwt/WindowFrame.cs
@@ -222,7 +222,7 @@
 			Visible = false;
 		}

-		public void OnHidden ()
+		protected virtual void OnHidden ()
 		{
 			var hidden = Hidden;
 			if (hidden != null)


grid cell highlight

grid cell highlight

--- Maptool/Maptool/Form/Main.Designer.cs
+++ Maptool/Maptool/Form/Main.Designer.cs
@@ -29,18 +29,18 @@
         private void InitializeComponent()
         {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
-            System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("empty");
-            System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("water");
-            System.Windows.Forms.TreeNode treeNode17 = new System.Windows.Forms.TreeNode("soil");
-            System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("노드0");
-            System.Windows.Forms.TreeNode treeNode19 = new System.Windows.Forms.TreeNode("tile", new System.Windows.Forms.TreeNode[] {
-            treeNode15,
-            treeNode16,
-            treeNode17,
-            treeNode18});
-            System.Windows.Forms.TreeNode treeNode20 = new System.Windows.Forms.TreeNode("노드5");
-            System.Windows.Forms.TreeNode treeNode21 = new System.Windows.Forms.TreeNode("structure", new System.Windows.Forms.TreeNode[] {
-            treeNode20});
+            System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("empty");
+            System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("water");
+            System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("soil");
+            System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("노드0");
+            System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("tile", new System.Windows.Forms.TreeNode[] {
+            treeNode1,
+            treeNode2,
+            treeNode3,
+            treeNode4});
+            System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("노드5");
+            System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("structure", new System.Windows.Forms.TreeNode[] {
+            treeNode6});
             this.메뉴 = new System.Windows.Forms.MenuStrip();
             this.menu_file = new System.Windows.Forms.ToolStripMenuItem();
             this.menu_item_new = new System.Windows.Forms.ToolStripMenuItem();
@@ -329,26 +329,26 @@
             // contents
             //
             this.contents.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-            this.contents.Location = new System.Drawing.Point(0, 280);
+            this.contents.Location = new System.Drawing.Point(0, 268);
             this.contents.Name = "contents";
-            treeNode15.Name = "tile_empty";
-            treeNode15.Text = "empty";
-            treeNode16.Name = "tile_water";
-            treeNode16.Text = "water";
-            treeNode17.Name = "tile_soil";
-            treeNode17.Text = "soil";
-            treeNode18.Name = "노드0";
-            treeNode18.Text = "노드0";
-            treeNode19.Name = "tile";
-            treeNode19.Text = "tile";
-            treeNode20.Name = "structure_";
-            treeNode20.Text = "노드5";
-            treeNode21.Name = "structure";
-            treeNode21.Text = "structure";
+            treeNode1.Name = "tile_empty";
+            treeNode1.Text = "empty";
+            treeNode2.Name = "tile_water";
+            treeNode2.Text = "water";
+            treeNode3.Name = "tile_soil";
+            treeNode3.Text = "soil";
+            treeNode4.Name = "노드0";
+            treeNode4.Text = "노드0";
+            treeNode5.Name = "tile";
+            treeNode5.Text = "tile";
+            treeNode6.Name = "structure_";
+            treeNode6.Text = "노드5";
+            treeNode7.Name = "structure";
+            treeNode7.Text = "structure";
             this.contents.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
-            treeNode19,
-            treeNode21});
-            this.contents.Size = new System.Drawing.Size(200, 457);
+            treeNode5,
+            treeNode7});
+            this.contents.Size = new System.Drawing.Size(192, 469);
             this.contents.TabIndex = 3;
             //
             // minimap
@@ -356,7 +356,7 @@
             this.minimap.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
             this.minimap.Location = new System.Drawing.Point(0, 80);
             this.minimap.Name = "minimap";
-            this.minimap.Size = new System.Drawing.Size(200, 200);
+            this.minimap.Size = new System.Drawing.Size(192, 192);
             this.minimap.TabIndex = 2;
             this.minimap.TabStop = false;
             //
@@ -425,9 +425,9 @@
             this.main_map_panel.BackColor = System.Drawing.SystemColors.Control;
             this.main_map_panel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
             this.main_map_panel.CausesValidation = false;
-            this.main_map_panel.Location = new System.Drawing.Point(200, 80);
+            this.main_map_panel.Location = new System.Drawing.Point(192, 80);
             this.main_map_panel.Name = "main_map_panel";
-            this.main_map_panel.Size = new System.Drawing.Size(818, 657);
+            this.main_map_panel.Size = new System.Drawing.Size(824, 657);
             this.main_map_panel.TabIndex = 11;
             //
             // label1


Added support for door/window sensor

Added support for door/window sensor

--- MiHomeLib/Devices/DoorWindowSensor.cs
+++ MiHomeLib/Devices/DoorWindowSensor.cs
@@ -1,9 +1,13 @@
-using Newtonsoft.Json.Linq;
+using System;
+using Newtonsoft.Json.Linq;

 namespace MiHomeLib.Devices
 {
     public class DoorWindowSensor : MiHomeDevice
     {
+        public event EventHandler OnOpen;
+        public event EventHandler OnClose;
+
         public DoorWindowSensor(string sid) : base(sid) { }

         public float? Voltage { get; set; }
@@ -17,6 +21,15 @@
             if (jObject["status"] != null)
             {
                 Status = jObject["status"].ToString();
+
+                if (Status == "open")
+                {
+                    OnOpen?.Invoke(this, EventArgs.Empty);
+                }
+                else if (Status == "close")
+                {
+                    OnClose?.Invoke(this, EventArgs.Empty);
+                }
             }

             if (jObject["voltage"] != null && float.TryParse(jObject["voltage"].ToString(), out float v))


Do not try to login with empty username or password

--- MonoHaven.Client/Login/LoginScreen.cs
+++ MonoHaven.Client/Login/LoginScreen.cs
@@ -119,7 +119,12 @@
 			switch (args.Key)
 			{
 				case Key.Enter:
-					Login();
+					if (string.IsNullOrEmpty(tbUserName.Text))
+						SetKeyboardFocus(tbUserName);
+					else if (tbUserName.IsFocused || string.IsNullOrEmpty(tbPassword.Text))
+						SetKeyboardFocus(tbPassword);
+					else
+						Login();
 					break;
 				case Key.Tab:
 					if (tbPassword.IsFocused)


added setter for visibility

added setter for visibility

--- TCC.Core/Windows/TccWindow.cs
+++ TCC.Core/Windows/TccWindow.cs
@@ -42,8 +42,7 @@
             var HideButton = new MenuItem() { Header = "Hide" };
             HideButton.Click += (s, ev) =>
             {
-                this.Visibility = Visibility.Hidden;
-                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Visibility"));
+                SetVisibility(Visibility.Hidden);
             };
             ContextMenu.Items.Add(HideButton);

@@ -60,6 +59,15 @@
         {
             ClickThru = t;
         }
+
+        public void SetVisibility(Visibility v)
+        {
+            this.Dispatcher.Invoke(() =>
+            {
+                Visibility = v;
+                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Visibility"));
+            });
+        }
         public event PropertyChangedEventHandler PropertyChanged;

     }


Update UriTemplate.cs

Update UriTemplate.cs

--- TIKSN.Core/Web/UriTemplate.cs
+++ TIKSN.Core/Web/UriTemplate.cs
@@ -10,44 +10,46 @@

         public UriTemplate(string template)
         {
-            _template = template;
-            _values = new Dictionary<string, string>();
+            this._template = template;
+            this._values = new Dictionary<string, string>();
         }

         public Uri Compose()
         {
-            var resourceLocation = _template;
+            var resourceLocation = this._template;

-            foreach (var parameter in _values)
+            foreach (var parameter in this._values)
             {
                 var parameterName = $"{{{parameter.Key}}}";
                 var escapedParameterValue = Uri.EscapeUriString(parameter.Value) ?? string.Empty;

                 if (resourceLocation.Contains(parameterName))
+                {
                     resourceLocation = resourceLocation.Replace(parameterName, escapedParameterValue);
+                }
                 else
                 {
                     var queryToAppend = $"{parameterName}={escapedParameterValue}";
                     if (resourceLocation.EndsWith("?"))
+                    {
                         resourceLocation = $"{resourceLocation}{queryToAppend}";
+                    }
                     else if (resourceLocation.Contains("?"))
+                    {
                         resourceLocation = $"{resourceLocation}&{queryToAppend}";
+                    }
                     else
+                    {
                         resourceLocation = $"{resourceLocation}?{queryToAppend}";
+                    }
                 }
             }

             return new Uri(resourceLocation, UriKind.Relative);
         }

-        public void Fill(string name, string value)
-        {
-            _values.Add(name, value);
-        }
+        public void Fill(string name, string value) => this._values.Add(name, value);

-        public void Unfill(string name)
-        {
-            _values.Remove(name);
-        }
+        public void Unfill(string name) => this._values.Remove(name);
     }
-}+}


Prevent crashes when debugger is visualizing a status and we dispose it

--- TensorFlowSharp/Tensorflow.cs
+++ TensorFlowSharp/Tensorflow.cs
@@ -279,6 +279,8 @@
 		/// <value>The status code as an enumeration.</value>
 		public TFCode StatusCode {
 			get {
+				if (handle == IntPtr.Zero)
+					throw new ObjectDisposedException ("TFStatus");
 				return TF_GetCode (handle);
 			}
 		}
@@ -299,6 +301,9 @@
 		/// <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:TensorFlow.TFStatus"/>.</returns>
 		public override string ToString ()
 		{
+			if (handle == IntPtr.Zero)
+				throw new ObjectDisposedException ("TFStatus");
+
 			return string.Format ("[TFStatus: StatusCode={0}, StatusMessage={1}]", StatusCode, StatusMessage);
 		}

@@ -342,7 +347,8 @@
 					Console.WriteLine ("oops");
 				if (StatusCode != TFCode.Ok) {
 					var e = new TFException (StatusMessage);
-					Dispose ();
+					if (last)
+						Dispose ();
 					throw e;
 				}
 				if (last)


Uncommented out the Compression code from iOS app

--- TestiOS/MainViewController.cs
+++ TestiOS/MainViewController.cs
@@ -27,7 +27,7 @@
             HttpExtensionsFromPCL();
             HttpExtensionsToPCL();

-			//await HttpPrimitivesFromPCL();
+			await HttpPrimitivesFromPCL();
             await HttpPrimitivesToPCL();
         }

@@ -72,13 +72,13 @@
             await Portable.Compatibility.TestHttpPrimitives(handler);
         }

-//        async Task HttpPrimitivesFromPCL()
-//        {
-//            var handler = Portable.Compatibility.CreateHttpClientHandlerWithCompression();
-//            var httpClient = new HttpClient(handler);
-//            var str = await httpClient.GetStringAsync("http://en.wikipedia.org/wiki/Gzip");
-//
-//            Console.WriteLine("iOS: Wikipedia: {0}", str.Contains("Wikipedia"));
-//        }
+        async Task HttpPrimitivesFromPCL()
+        {
+            var handler = Portable.Compatibility.CreateHttpClientHandlerWithCompression();
+            var httpClient = new HttpClient(handler);
+            var str = await httpClient.GetStringAsync("http://en.wikipedia.org/wiki/Gzip");
+
+            Console.WriteLine("iOS: Wikipedia: {0}", str.Contains("Wikipedia"));
+        }
     }
 }


Revert check-in message to use CommitterDisplay rather than Committer

--- TfsHipChat/HipChatNotifier.cs
+++ TfsHipChat/HipChatNotifier.cs
@@ -19,7 +19,7 @@
         public void SendCheckinNotification(CheckinEvent checkinEvent, int roomId)
         {
             var message = string.Format("{0} checked in changeset {2} ({4})
{3}",
-                checkinEvent.Committer, checkinEvent.GetChangesetUrl(), checkinEvent.Number,
+                checkinEvent.CommitterDisplay, checkinEvent.GetChangesetUrl(), checkinEvent.Number,
                 checkinEvent.Comment, checkinEvent.TeamProject);
             _hipChatClient.RoomId = roomId;
             _hipChatClient.SendMessage(message, HipChatClient.BackgroundColor.yellow);


... or not. Let's name it just Trace

... or not. Let's name it just Trace

--- Tracer/Helpers/TracerLevel.cs
+++ Tracer/Helpers/TracerLevel.cs
@@ -2,7 +2,7 @@
 {
     public enum TracerLevel
     {
-        All,
+        Trace,
         Debug,
         Info,
         Warning,


Fix naming convention.

Fix naming convention.

--- LtiLibrary.AspNet/Outcomes/v2/LineItemsControllerBase.cs
+++ LtiLibrary.AspNet/Outcomes/v2/LineItemsControllerBase.cs
@@ -104,7 +104,7 @@
                     await OnGetLineItems(context);

                     return context.StatusCode == HttpStatusCode.OK
-                        ? Request.CreateResponse(context.StatusCode, context.LineItemContainerPage, new LineItemsContainerPageFormatter())
+                        ? Request.CreateResponse(context.StatusCode, context.LineItemContainerPage, new LineItemContainerPageFormatter())
                         : Request.CreateResponse(context.StatusCode);
                 }
                 else


Implemented IfNullUseParameter aka ?? converter

--- MassivePixel.Common.WP8/Converters/IfNullUseParameter.cs
+++ MassivePixel.Common.WP8/Converters/IfNullUseParameter.cs
@@ -1,6 +1,19 @@
-namespace MassivePixel.Common.Converters
+using System;
+using System.Globalization;
+using System.Windows.Data;
+
+namespace MassivePixel.Common.Converters
 {
-    public class IfNullUseParameter
+    public class IfNullUseParameter : IValueConverter
     {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            return value ?? parameter;
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
     }
 }


Add doc comments to RaygunIdentifierMessage

--- Mindscape.Raygun4Net/Messages/RaygunIdentifierMessage.cs
+++ Mindscape.Raygun4Net/Messages/RaygunIdentifierMessage.cs
@@ -7,16 +7,36 @@
       Identifier = user;
     }

+    /// <summary>
+    /// Unique Identifier for this user. Set this to the identifier you use internally to look up users,
+    /// or a correlation id for anonymous users if you have one. It doesn't have to be unique, but we will
+    /// treat any duplicated values as the same user.
+    /// </summary>
     public string Identifier { get; set; }

+    /// <summary>
+    /// Flag indicating whether a user is anonymous or not.
+    /// </summary>
     public bool IsAnonymous { get; set; }

+    /// <summary>
+    /// User's email address
+    /// </summary>
     public string Email { get; set; }

+    /// <summary>
+    /// User's full name. If you are going to set any names, you should probably set this one too.
+    /// </summary>
     public string FullName { get; set; }

+    /// <summary>
+    /// User's first name.
+    /// </summary>
     public string FirstName { get; set; }

+    /// <summary>
+    /// User's last name.
+    /// </summary>
     public string LastName { get; set; }

   }


- Update to last commit

- Update to last commit

git-svn-id: 61c3ae23f3a6520e9bc357b51591209af2ede9d8@1442 45b04e34-05f1-4d87-a130-40a8491d5c8b

--- Mosa/Runtime/CompilerFramework/BasicBlockBuilderStage.cs
+++ Mosa/Runtime/CompilerFramework/BasicBlockBuilderStage.cs
@@ -16,216 +16,204 @@

 namespace Mosa.Runtime.CompilerFramework
 {
-    /// <summary>
-    /// This compilation stage is used by method compilers after the
-    /// IL decoding stage to build basic Blocks out of the instruction list.
-    /// </summary>
-    public sealed class BasicBlockBuilderStage : BaseStage, IMethodCompilerStage, IPipelineStage
-    {
-        #region Data members
-
-        /// <summary>
-        ///
-        /// </summary>
-        private BasicBlock _epilogue;
-        /// <summary>
-        ///
-        /// </summary>
-        private BasicBlock _prologue;
-
-        #endregion // Data members
-
-        #region IMethodCompilerStage members
-
-        /// <summary>
-        /// Retrieves the name of the compilation stage.
-        /// </summary>
-        /// <value></value>
-        string IPipelineStage.Name { get { return @"BasicBlockBuilderStage"; } }
-
-        private static PipelineStageOrder[] _pipelineOrder = new PipelineStageOrder[] {
+	/// <summary>
+	/// This compilation stage is used by method compilers after the
+	/// IL decoding stage to build basic Blocks out of the instruction list.
+	/// </summary>
+	public sealed class BasicBlockBuilderStage : BaseStage, IMethodCompilerStage, IPipelineStage
+	{
+		#region Data members
+
+		/// <summary>
+		///
+		/// </summary>
+		private BasicBlock _epilogue;
+		/// <summary>
+		///
+		/// </summary>
+		private BasicBlock _prologue;
+
+		#endregion // Data members
+
+		#region IMethodCompilerStage members
+
+		/// <summary>
+		/// Retrieves the name of the compilation stage.
+		/// </summary>
+		/// <value></value>
+		string IPipelineStage.Name { get { return @"BasicBlockBuilderStage"; } }
+
+		private static PipelineStageOrder[] _pipelineOrder = new PipelineStageOrder[] {
 				new PipelineStageOrder(PipelineStageOrder.Location.After, typeof(CIL.DecodingStage)),
 				new PipelineStageOrder(PipelineStageOrder.Location.Before, typeof(OperandDeterminationStage))
 			};

-        /// <summary>
-        /// Gets the pipeline stage order.
-        /// </summary>
-        /// <value>The pipeline stage order.</value>
-        PipelineStageOrder[] IPipelineStage.PipelineStageOrder { get { return _pipelineOrder; } }
-
-        /// <summary>
-        /// Performs stage specific processing on the compiler context.
-        /// </summary>
-        public void Run()
-        {
-            // Create the prologue block
-            Context ctx = new Context(InstructionSet, -1);
-            // Add a jump instruction to the first block from the prologue
-            //ctx.InsertInstructionAfter(IR.Instruction.JmpInstruction);
-            ctx.AppendInstruction(CIL.Instruction.Get(CIL.OpCode.Br));
-            ctx.SetBranch(0);
-            ctx.Label = -1;
-            _prologue = CreateBlock(-1, ctx.Index);
-
-            SplitIntoBlocks(0);
-
-            // Create the epilogue block
-            ctx = new Context(InstructionSet, -1);
-            // Add null instruction, necessary to generate a block index
-            ctx.AppendInstruction(null);
-            ctx.Ignore = true;
-            ctx.Label = Int32.MaxValue;
-            _epilogue = CreateBlock(Int32.MaxValue, ctx.Index);
-
-            // Link all the blocks together
-            BuildBlockLinks(_prologue);
-        }
-
-        /// <summary>
-        /// Finds all targets.
-        /// </summary>
-        /// <param name="index">The index.</param>
-        private void SplitIntoBlocks(int index)
-        {
-            Dictionary<int, int> targets = new Dictionary<int, int>();
-
-            targets.Add(index, -1);
-
-            // Find out all targets labels
-            for (Context ctx = new Context(InstructionSet, index); !ctx.EndOfInstruction; ctx.GotoNext())
-            {
-                switch (ctx.Instruction.FlowControl)
-                {
-                    case FlowControl.Next: continue;
-                    case FlowControl.Call: continue;
-                    case FlowControl.Break:
-                        goto case FlowControl.Branch;
-                    case FlowControl.Return:
-                        continue;
-                    case FlowControl.Throw:
-                        goto case FlowControl.Branch;
-                    case FlowControl.Branch:
-                        // Unconditional branch
-                        Debug.Assert(ctx.Branch.Targets.Length == 1);
-                        if (!targets.ContainsKey(ctx.Branch.Targets[0]))
-                            targets.Add(ctx.Branch.Targets[0], -1);
-                        continue;
-                    case FlowControl.Switch: goto case FlowControl.ConditionalBranch;
-                    case FlowControl.ConditionalBranch:
-                        // Conditional branch with multiple targets
-                        foreach (int target in ctx.Branch.Targets)
-                            if (!targets.ContainsKey(target))
-                                targets.Add(target, -1);
-                        int next = ctx.Next.Label;
-                        if (!targets.ContainsKey(next))
-                            targets.Add(next, -1);
-                        continue;
-                    default:
-                        Debug.Assert(false);
-                        break;
-                }
-            }
-
-            bool slice = false;
-
-            for (Context ctx = new Context(InstructionSet, index); !ctx.EndOfInstruction; ctx.GotoNext())
-            {
-                FlowControl flow;
-
-                if (targets.ContainsKey(ctx.Label))
-                {
-                    CreateBlock(ctx.Label, ctx.Index);
-
-                    if (!ctx.IsFirstInstruction)
-                    {
-                        Context prev = ctx.Previous;
-                        flow = prev.Instruction.FlowControl;
-                        if (flow == FlowControl.Next || flow == FlowControl.Call || flow == FlowControl.ConditionalBranch || flow == FlowControl.Switch)
-                        {
-                            prev.AppendInstruction(IR.Instruction.JmpInstruction);
-                            prev.SetBranch(ctx.Label);
-                            prev.SliceAfter();
-                        }
-                    }
-
-                    targets.Remove(ctx.Label);
-                }
-
-                if (slice)
-                    ctx.SliceBefore();
-
-                flow = ctx.Instruction.FlowControl;
-
-                slice = (flow == FlowControl.Return || flow == FlowControl.Branch || flow == FlowControl.ConditionalBranch || flow == FlowControl.Break || flow == FlowControl.Throw);
-            }
-
-            Debug.Assert(targets.Count <= 1);
-
-            if (FindBlock(0) == null)
-                CreateBlock(0, index);
-        }
-
-        /// <summary>
-        /// Builds the block links.
-        /// </summary>
-        /// <param name="block">The current block.</param>
-        private void BuildBlockLinks(BasicBlock block)
-        {
-            for (Context ctx = CreateContext(block); !ctx.EndOfInstruction; ctx.GotoNext())
-            {
-                switch (ctx.Instruction.FlowControl)
-                {
-                    case FlowControl.Next: continue;
-                    case FlowControl.Call: continue;
-                    case FlowControl.Return:
-                        if (!block.NextBlocks.Contains(_epilogue))
-                            LinkBlocks(block, _epilogue);
-                        return;
-                    case FlowControl.Break: goto case FlowControl.Branch;
-                    case FlowControl.Throw: goto case FlowControl.Branch;
-                    case FlowControl.Switch: goto case FlowControl.ConditionalBranch;
-                    case FlowControl.Branch:
-                        {
-                            BasicBlock next = FindBlock(ctx.Branch.Targets[0]);
-                            if (!block.NextBlocks.Contains(next))
-                            {
-                                LinkBlocks(block, next);
-                                BuildBlockLinks(next);
-                            }
-                            return;
-                        }
-                    case FlowControl.ConditionalBranch:
-                        foreach (int target in ctx.Branch.Targets)
-                        {
-                            BasicBlock next = FindBlock(target);
-                            if (!block.NextBlocks.Contains(next))
-                            {
-                                LinkBlocks(block, next);
-                                BuildBlockLinks(next);
-                            }
-                        }
-                        continue;
-                    default:
-                        Debug.Assert(false);
-                        break;
-                }
-            }
-        }
-
-        /// <summary>
-        /// Links the Blocks.
-        /// </summary>
-        /// <param name="caller">The caller.</param>
-        /// <param name="callee">The callee.</param>
-        private void LinkBlocks(BasicBlock caller, BasicBlock callee)
-        {
-            // Chain the blocks together
-            caller.NextBlocks.Add(callee);
-            callee.PreviousBlocks.Add(caller);
-        }
-
-        #endregion // IMethodCompilerStage members
-
-    }
+		/// <summary>
+		/// Gets the pipeline stage order.
+		/// </summary>
+		/// <value>The pipeline stage order.</value>
+		PipelineStageOrder[] IPipelineStage.PipelineStageOrder { get { return _pipelineOrder; } }
+
+		/// <summary>
+		/// Performs stage specific processing on the compiler context.
+		/// </summary>
+		public void Run()
+		{
+			// Create the prologue block
+			Context ctx = new Context(InstructionSet, -1);
+			// Add a jump instruction to the first block from the prologue
+			//ctx.InsertInstructionAfter(IR.Instruction.JmpInstruction);
+			ctx.AppendInstruction(CIL.Instruction.Get(CIL.OpCode.Br));
+			ctx.SetBranch(0);
+			ctx.Label = -1;
+			_prologue = CreateBlock(-1, ctx.Index);
+
+			SplitIntoBlocks(0);
+
+			// Create the epilogue block
+			ctx = new Context(InstructionSet, -1);
+			// Add null instruction, necessary to generate a block index
+			ctx.AppendInstruction(null);
+			ctx.Ignore = true;
+			ctx.Label = Int32.MaxValue;
+			_epilogue = CreateBlock(Int32.MaxValue, ctx.Index);
+
+			// Link all the blocks together
+			BuildBlockLinks(_prologue);
+		}
+
+		/// <summary>
+		/// Finds all targets.
+		/// </summary>
+		/// <param name="index">The index.</param>
+		private void SplitIntoBlocks(int index)
+		{
+			Dictionary<int, int> targets = new Dictionary<int, int>();
+
+			targets.Add(index, -1);
+
+			// Find out all targets labels
+			for (Context ctx = new Context(InstructionSet, index); !ctx.EndOfInstruction; ctx.GotoNext()) {
+				switch (ctx.Instruction.FlowControl) {
+					case FlowControl.Next: continue;
+					case FlowControl.Call: continue;
+					case FlowControl.Break:
+						goto case FlowControl.Branch;
+					case FlowControl.Return:
+						continue;
+					case FlowControl.Throw:
+						goto case FlowControl.Branch;
+					case FlowControl.Branch:
+						// Unconditional branch
+						Debug.Assert(ctx.Branch.Targets.Length == 1);
+						if (!targets.ContainsKey(ctx.Branch.Targets[0]))
+							targets.Add(ctx.Branch.Targets[0], -1);
+						continue;
+					case FlowControl.Switch: goto case FlowControl.ConditionalBranch;
+					case FlowControl.ConditionalBranch:
+						// Conditional branch with multiple targets
+						foreach (int target in ctx.Branch.Targets)
+							if (!targets.ContainsKey(target))
+								targets.Add(target, -1);
+						int next = ctx.Next.Label;
+						if (!targets.ContainsKey(next))
+							targets.Add(next, -1);
+						continue;
+					default:
+						Debug.Assert(false);
+						break;
+				}
+			}
+
+			bool slice = false;
+
+			for (Context ctx = new Context(InstructionSet, index); !ctx.EndOfInstruction; ctx.GotoNext()) {
+				FlowControl flow;
+
+				if (targets.ContainsKey(ctx.Label)) {
+					CreateBlock(ctx.Label, ctx.Index);
+
+					if (!ctx.IsFirstInstruction) {
+						Context prev = ctx.Previous;
+						flow = prev.Instruction.FlowControl;
+						if (flow == FlowControl.Next || flow == FlowControl.Call || flow == FlowControl.ConditionalBranch || flow == FlowControl.Switch) {
+							prev.AppendInstruction(IR.Instruction.JmpInstruction);
+							prev.SetBranch(ctx.Label);
+							prev.SliceAfter();
+						}
+					}
+
+					targets.Remove(ctx.Label);
+				}
+
+				if (slice)
+					ctx.SliceBefore();
+
+				flow = ctx.Instruction.FlowControl;
+
+				slice = (flow == FlowControl.Return || flow == FlowControl.Branch || flow == FlowControl.ConditionalBranch || flow == FlowControl.Break || flow == FlowControl.Throw);
+			}
+
+			Debug.Assert(targets.Count <= 1);
+
+			if (FindBlock(0) == null)
+				CreateBlock(0, index);
+		}
+
+		/// <summary>
+		/// Builds the block links.
+		/// </summary>
+		/// <param name="block">The current block.</param>
+		private void BuildBlockLinks(BasicBlock block)
+		{
+			for (Context ctx = CreateContext(block); !ctx.EndOfInstruction; ctx.GotoNext()) {
+				switch (ctx.Instruction.FlowControl) {
+					case FlowControl.Next: continue;
+					case FlowControl.Call: continue;
+					case FlowControl.Return:
+						if (!block.NextBlocks.Contains(_epilogue))
+							LinkBlocks(block, _epilogue);
+						return;
+					case FlowControl.Break: goto case FlowControl.Branch;
+					case FlowControl.Throw: goto case FlowControl.Branch;
+					case FlowControl.Switch: goto case FlowControl.ConditionalBranch;
+					case FlowControl.Branch: {
+							BasicBlock next = FindBlock(ctx.Branch.Targets[0]);
+							if (!block.NextBlocks.Contains(next)) {
+								LinkBlocks(block, next);
+								BuildBlockLinks(next);
+							}
+							return;
+						}
+					case FlowControl.ConditionalBranch:
+						foreach (int target in ctx.Branch.Targets) {
+							BasicBlock next = FindBlock(target);
+							if (!block.NextBlocks.Contains(next)) {
+								LinkBlocks(block, next);
+								BuildBlockLinks(next);
+							}
+						}
+						continue;
+					default:
+						Debug.Assert(false);
+						break;
+				}
+			}
+		}
+
+		/// <summary>
+		/// Links the Blocks.
+		/// </summary>
+		/// <param name="caller">The caller.</param>
+		/// <param name="callee">The callee.</param>
+		private void LinkBlocks(BasicBlock caller, BasicBlock callee)
+		{
+			// Chain the blocks together
+			caller.NextBlocks.Add(callee);
+			callee.PreviousBlocks.Add(caller);
+		}
+
+		#endregion // IMethodCompilerStage members
+
+	}
 }


GameManager instance instead of static

GameManager instance instead of static

--- Pluton/World.cs
+++ Pluton/World.cs
@@ -19,7 +19,7 @@
         }

         public BaseEntity AttachParachute(BaseEntity e) {
-            BaseEntity parachute = GameManager.CreateEntity("parachute", default(Vector3), default(Quaternion));
+            BaseEntity parachute = GameManager.server.CreateEntity("parachute", default(Vector3), default(Quaternion));
             if (parachute) {
                 parachute.SetParent(e, "parachute_attach");
                 parachute.Spawn(true);
@@ -36,7 +36,7 @@

         public void AirDrop(float speed, float height = 400f)
         {
-            BaseEntity baseEntity = GameManager.CreateEntity("events/cargo_plane", default(Vector3), default(Quaternion));
+            BaseEntity baseEntity = GameManager.server.CreateEntity("events/cargo_plane", default(Vector3), default(Quaternion));
             if (baseEntity) {
                 baseEntity.Spawn(true);
             }
@@ -55,7 +55,7 @@
             float worldSize = (float)(global::World.Size - (global::World.Size / 7));
             Vector3 zero = Vector3.zero;

-            BaseEntity baseEntity = GameManager.CreateEntity("events/cargo_plane", default(Vector3), default(Quaternion));
+            BaseEntity baseEntity = GameManager.server.CreateEntity("events/cargo_plane", default(Vector3), default(Quaternion));
             if (baseEntity) {
                 baseEntity.Spawn(true);
             }
@@ -151,7 +151,7 @@

         // like an airdrop
         public BaseEntity SpawnEvent(string evt, float x, float y, float z) {
-            BaseEntity ent = GameManager.CreateEntity("events/" + evt,
+            BaseEntity ent = GameManager.server.CreateEntity("events/" + evt,
                 new UnityEngine.Vector3(x, y, z),
                 new UnityEngine.Quaternion());
             ent.Spawn(true);
@@ -160,7 +160,7 @@

         //Animals: boar, bear, stag, wolf
         public BaseEntity SpawnAnimal(string name, float x, float y, float z) {
-            BaseEntity ent = GameManager.CreateEntity("autospawn/animals/" + name,
+            BaseEntity ent = GameManager.server.CreateEntity("autospawn/animals/" + name,
                 new UnityEngine.Vector3(x, y, z),
                 new UnityEngine.Quaternion());
             ent.Spawn(true);
@@ -169,7 +169,7 @@

         //map entities, like a resource node, a tree of even a structure
         public BaseEntity SpawnMapEntity(string name, float x, float y, float z, Quaternion q) {
-            BaseEntity ent = GameManager.CreateEntity(name,
+            BaseEntity ent = GameManager.server.CreateEntity(name,
                 new UnityEngine.Vector3(x, y, z),
                 q);
             ent.SpawnAsMapEntity();


fixed WaitTimeoutException message

fixed WaitTimeoutException message

--- Objectivity.Test.Automation.Common/Helpers/WaitHelper.cs
+++ Objectivity.Test.Automation.Common/Helpers/WaitHelper.cs
@@ -92,7 +92,7 @@

             if (!result)
             {
-                throw new WaitTimeoutException(string.Format(CultureInfo.CurrentCulture, "Timeout after {0} second(s), {1}", timeout, message));
+                throw new WaitTimeoutException(string.Format(CultureInfo.CurrentCulture, "Timeout after {0} second(s), {1}", timeout.Seconds, message));
             }
         }


Use DataSegment instead of Datagram.

Use DataSegment instead of Datagram.

--- PcapDotNet/src/PcapDotNet.Packets/ByteArrayExtensions.cs
+++ PcapDotNet/src/PcapDotNet.Packets/ByteArrayExtensions.cs
@@ -749,12 +749,9 @@
         /// <param name="buffer">The buffer to write the value to.</param>
         /// <param name="offset">The offset in the buffer to start writing.</param>
         /// <param name="value">The value to write.</param>
-        public static void Write(this byte[] buffer, int offset, Datagram value)
-        {
-            if (value == null)
-                throw new ArgumentNullException("value");
-
-            value.Write(buffer, offset);
+        public static void Write(this byte[] buffer, int offset, DataSegment value)
+        {
+            buffer.Write(ref offset, value);
         }

         /// <summary>


[1108305]
creating a keyframe with time less than maxKeyFrameTime, appends first keyframe instead of the new key keyframe.

git-svn-id: ad71a101fa69fb252e58119732bf51384d5dbd95@1520 bb9bf1cf-960d-0410-9a3a-baeba60cf407

--- Projects/Axiom/Source/Engine/Animating/AnimationTrack.cs
+++ Projects/Axiom/Source/Engine/Animating/AnimationTrack.cs
@@ -297,14 +297,13 @@
 			{
 				// search for the correct place to insert the keyframe
 				int i = 0;
-				KeyFrame kf = keyFrameList[ i ];
-
-				while ( kf.Time < time && i != keyFrameList.Count )
+
+				while ( keyFrameList[ i ].Time < time && i != keyFrameList.Count )
 				{
 					i++;
 				}

-				keyFrameList.Insert( i, kf );
+				keyFrameList.Insert( i, keyFrame );
 			}

 			// ensure a spline rebuild takes place
@@ -319,7 +318,7 @@
 		/// <param name="index">Index of the keyframe to remove from this track.</param>
 		public void RemoveKeyFrame( int index )
 		{
-			Debug.Assert( index < keyFrameList.Count, "Index of of bounds when removing a key frame." );
+			Debug.Assert( index < keyFrameList.Count, "Index out of bounds when removing a key frame." );

 			keyFrameList.RemoveAt( index );


Fixes test because of changes to shipping/freight tax

--- Purchasing.Tests/RepositoryTests/OrderRepositoryTests.cs
+++ Purchasing.Tests/RepositoryTests/OrderRepositoryTests.cs
@@ -6019,7 +6019,7 @@

             #region Assert
             Assert.AreEqual(10.23m, total);
-            Assert.AreEqual(1126.7645m, order.GrandTotal());
+            Assert.AreEqual(1261.7645m, order.GrandTotal());
             #endregion Assert
         }


InitWithPayload() before OnActivated() just as on iOS

--- MvvmMobile.Droid/View/ActivityBase.cs
+++ MvvmMobile.Droid/View/ActivityBase.cs
@@ -160,8 +160,8 @@
                 _viewModel.PropertyChanged += ViewModel_PropertyChanged;
             }

+            _viewModel?.InitWithPayload(PayloadId);
             _viewModel?.OnActivated();
-            _viewModel?.InitWithPayload(PayloadId);
         }

         protected override void OnPause()


fix for #50

fix for #50

--- NGitLab/NGitLab/Impl/HttpRequestor.cs
+++ NGitLab/NGitLab/Impl/HttpRequestor.cs
@@ -184,6 +184,7 @@
             class Enumerator : IEnumerator<T> {
                 readonly string apiToken;
                 readonly ApiVersion _apiVersion;
+                private int port;
                 readonly List<T> buffer = new List<T>();
                 Uri nextUrlToLoad;

@@ -191,6 +192,7 @@
                     this.apiToken = apiToken;
                     nextUrlToLoad = startUrl;
                     _apiVersion = _ApiVersion;
+                    port = nextUrlToLoad.Port;
                 }

                 public void Dispose() {
@@ -200,7 +202,12 @@
                     if (buffer.Count == 0) {
                         if (nextUrlToLoad == null)
                             return false;
-
+                        if (nextUrlToLoad.Port != port)  // 修正端口
+                        {
+                            var ub = new UriBuilder(nextUrlToLoad);
+                            ub.Port = port;
+                            nextUrlToLoad = ub.Uri;
+                        }
                         var request = SetupConnection(nextUrlToLoad, MethodType.Get, apiToken, _apiVersion);
                         if (_apiVersion.UsesOauth())
                         {


テストFailure時の詳細メッセージを強化。でもまだたりナス。

テストFailure時の詳細メッセージを強化。でもまだたりナス。

--- UstdCsv2Ju/ResultXmlWriter.cs
+++ UstdCsv2Ju/ResultXmlWriter.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Linq;
+using System.Linq;
 using System.Xml;

 namespace Hidari0415.UstdCsv2Ju
@@ -66,8 +65,10 @@
 			if (metricRecord.Value > Threshold)
 			{
 				testCase.FailureElement = new JUnitStyleFailureElement(
-					"Over threshold.",	//TODO: TypeにはKindを入れるほうがいいか？
-					"Value is " + (metricRecord.Value - Threshold) + " over."
+					string.Format("Threshold is {0}.", Threshold),
+					string.Format(@"Threshold: {0}
+Actual:{1}
+Over: {2}", Threshold, metricRecord.Value, (metricRecord.Value - Threshold))
 				);

 				testCase.IsFailed = true;


Signal when top timed changes to improve timer accuracy.

--- Libs/Hopac.Core/Engine/Timer.cs
+++ Libs/Hopac.Core/Engine/Timer.cs
@@ -79,7 +79,10 @@
     [MethodImpl(AggressiveInlining.Flag)]
     private void DropTimed() {
       var top = TopTimed;
-      TopTimed = Merge(top.Next as WorkTimed, top.Right);
+      var n = Merge(top.Next as WorkTimed, top.Right);
+      TopTimed = n;
+      if (null != n)
+        Scheduler.Signal(this.Scheduler);
     }

     private static WorkTimed Merge(WorkTimed x, WorkTimed y) {


Unused variable.

Unused variable.

--- Libs/Hopac.Core/Engine/Timer.cs
+++ Libs/Hopac.Core/Engine/Timer.cs
@@ -10,7 +10,6 @@
   internal class Timer : Job<int> {
     internal WorkTimed TopTimed;
     internal SpinlockTTAS Lock;
-    internal int TimedCount;
     internal uint unique = 0;
     internal Scheduler Scheduler;


Remove AutoIndex setting

Remove AutoIndex setting

--- LiteDB/Engine/EngineSettings.cs
+++ LiteDB/Engine/EngineSettings.cs
@@ -71,11 +71,6 @@
         public int Checkpoint { get; set; } = 1000;

         /// <summary>
-        /// Define if engine can auto create index for run queries
-        /// </summary>
-        public bool AutoIndex { get; set; } = false;
-
-        /// <summary>
         /// Indicate that engine will do a checkpoint on dispose database
         /// </summary>
         public bool CheckpointOnShutdown { get; set; } = true;


Split out explicit project loading stage

--- NuGet.Extensions/Commands/Nugetify.cs
+++ NuGet.Extensions/Commands/Nugetify.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.ComponentModel.Composition;
 using System.IO;
+using System.Linq;
 using System.Text.RegularExpressions;
 using Microsoft.Build.Evaluation;
 using NuGet.Commands;
@@ -75,15 +76,17 @@
                 var solutionFile = new FileInfo(Arguments[0]);
                 if (solutionFile.Exists && solutionFile.Extension == ".sln")
                 {
+                    Console.WriteLine("Loading projects from solution {0}", solutionFile.Name);
                     var solutionRoot = solutionFile.Directory;
                     var sharedPackagesRepository = new SharedPackageRepository(Path.Combine(solutionRoot.FullName, "packages"));
                     var solution = new Solution(solutionFile.FullName);
                     var simpleProjectObjects = solution.Projects;
+                    var projectAdapters = simpleProjectObjects.Select(p => GetProjectAdapterOrDefault(solutionRoot, p)).Where(p => p != null).ToList();

                     Console.WriteLine("Processing {0} projects in solution {1}...", simpleProjectObjects.Count, solutionFile.Name);
-                    foreach (var simpleProject in simpleProjectObjects)
+                    foreach (var projectAdapter in projectAdapters)
                     {
-                        NugetifyProject(solutionFile, simpleProject, solutionRoot, sharedPackagesRepository);
+                        LogAndNugetifyProject(projectAdapter, solutionRoot, sharedPackagesRepository);
                     }
                     Console.WriteLine("Complete!");
                 }
@@ -94,19 +97,28 @@
             }
         }

-        private void NugetifyProject(FileInfo solutionFile, SolutionProject simpleProject, DirectoryInfo solutionRoot, ISharedPackageRepository existingSolutionPackagesRepo)
-        {
-            var projectPath = Path.Combine(solutionFile.Directory.FullName, simpleProject.RelativePath);
+        private ProjectAdapter GetProjectAdapterOrDefault(DirectoryInfo solutionRoot, SolutionProject simpleProject)
+        {
+            var projectPath = Path.Combine(solutionRoot.FullName, simpleProject.RelativePath);
             if (File.Exists(projectPath))
             {
-                var projectAdapter = new ProjectAdapter(projectPath, PackagesConfigFilename);
-                Console.WriteLine();
-                Console.WriteLine("Processing Project: {0}", simpleProject.ProjectName);
-                NugetifyProject(projectAdapter, solutionRoot, existingSolutionPackagesRepo);
-
-                Console.WriteLine("Project completed!");
-            }
-            else Console.WriteWarning("Project: {0} was not found on disk", simpleProject.ProjectName);
+                return new ProjectAdapter(projectPath, PackagesConfigFilename);
+            }
+            else
+            {
+                Console.WriteWarning("Project: {0} was not found on disk", simpleProject.ProjectName);
+                return null;
+            }
+        }
+
+        private void LogAndNugetifyProject(ProjectAdapter projectAdapter, DirectoryInfo solutionRoot, ISharedPackageRepository existingSolutionPackagesRepo)
+        {
+            Console.WriteLine();
+            Console.WriteLine("Processing Project: {0}", projectAdapter.ProjectName);
+
+            NugetifyProject(projectAdapter, solutionRoot, existingSolutionPackagesRepo);
+
+            Console.WriteLine("Project completed!");
         }

         private void NugetifyProject(ProjectAdapter projectAdapter, DirectoryInfo solutionRoot, ISharedPackageRepository existingSolutionPackagesRepo)


suppression not needed on internal class

--- OBeautifulCode.Math/HashCodeHelper.cs
+++ OBeautifulCode.Math/HashCodeHelper.cs
@@ -29,7 +29,6 @@
     [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
     [System.CodeDom.Compiler.GeneratedCode("OBeautifulCode.Math", "See package version number")]
 #endif
-    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes", Justification = "Instances of this type will neither be compared nor sorted nor used as hash table keys.")]
     internal struct HashCodeHelper
     {
         /// <summary>


Removed an extra not required multisig retriving. A problem regarding not present client pub key is still present.

--- ServiceLykkeWallet/Controllers/TransactionsController.cs
+++ ServiceLykkeWallet/Controllers/TransactionsController.cs
@@ -645,12 +645,6 @@
                         }
                         else
                         {
-                            KeyStorage SourceMultisigAddress = null;
-                            if (sourceAddress is BitcoinScriptAddress)
-                            {
-                                SourceMultisigAddress = await OpenAssetsHelper.GetMatchingMultisigAddress(data.SourceAddress, entities);
-                            }
-
                             OpenAssetsHelper.GetCoinsForWalletReturnType walletCoins = null;
                             if (sourceAddress is BitcoinPubKeyAddress)
                             {


remove log

remove log

--- SignalGo.Server/ServiceManager/Providers/BaseProvider.cs
+++ SignalGo.Server/ServiceManager/Providers/BaseProvider.cs
@@ -1021,7 +1021,7 @@
             try
             {
                 await SendCallbackData(methodCallback, client, serverBase);
-                Console.WriteLine($"Calling SendCallbackDataAsync done: {methodCallback.Guid}");
+                //Console.WriteLine($"Calling SendCallbackDataAsync done: {methodCallback.Guid}");
             }
             catch (Exception ex)
             {


Fixed name bug

Fixed name bug

--- Source/AI/TexasHoldem.AI.Bluffasaurus/NotASmartPlayer.cs
+++ Source/AI/TexasHoldem.AI.Bluffasaurus/NotASmartPlayer.cs
@@ -1,5 +1,6 @@
 namespace TexasHoldem.AI.Bluffasaurus
 {
+    using System;
     using System.Collections.Generic;
     using System.Linq;

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

     public class NotASmartPlayer : BasePlayer
     {
-        public override string Name { get { return "Pesho"; } }
+        public override string Name { get ; } = "SmartPlayer_" + Guid.NewGuid();

         public override PlayerAction GetTurn(GetTurnContext context)
         {


Fully implemented user serivce interface

--- Source/Answery/Services/Answery.Services/UsersService.cs
+++ Source/Answery/Services/Answery.Services/UsersService.cs
@@ -21,7 +21,7 @@

         public User GetUserByUsername(string username)
         {
-            return this.users.All().Where(user => user.Username == username);
+            return this.users.All().Where(user => user.UserName == username);
         }
     }
 }


Modify Verify

--- Source/EventFlow.Tests/UnitTests/Core/TaskRunnerTests.cs
+++ Source/EventFlow.Tests/UnitTests/Core/TaskRunnerTests.cs
@@ -104,7 +104,7 @@
             autoResetEvent.WaitOne(TimeSpan.FromSeconds(10));

             // Assert
-            _logMock.Verify();
+            _logMock.Verify(m => m.Log(LogLevel.Error, It.IsAny<Func<string>>(), expectedException, It.IsAny<object[]>()));
         }

         [Test]


Update links (#104)

Update links (#104)

Update tutorial/documentation links

--- Source/SmallBasic.Editor/Components/Layout/MainLayout.cs
+++ Source/SmallBasic.Editor/Components/Layout/MainLayout.cs
@@ -16,8 +16,8 @@
     {
         private static readonly IReadOnlyDictionary<string, string> HeaderLinks = new Dictionary<string, string>
         {
-            { EditorResources.Header_TutorialsLink, "https://smallbasic-publicwebsite.azurewebsites.net/Pages/Tutorials/Tutorials.aspx" },
-            { EditorResources.Header_DocumentationLink, "https://smallbasic-publicwebsite.azurewebsites.net/Pages/DocumentReference.aspx" }
+            { EditorResources.Header_TutorialsLink, "https://smallbasic-publicwebsite.azurewebsites.net/tutorials" },
+            { EditorResources.Header_DocumentationLink, "https://smallbasic-publicwebsite.azurewebsites.net/docs" }
         };

         protected override Task OnInitAsync()


Defined AssemblyVersion and AssemblyFileVersion to be initially 0.1.0: - Do not start from 1.0 to specify non production release - No revision number

--- OpenGL.Net/Properties/AssemblyInfo.cs
+++ OpenGL.Net/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;

 // General Information about an assembly is controlled through the following
@@ -10,7 +9,7 @@
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("Luca Piccioni")]
 [assembly: AssemblyProduct("OpenGL.Net")]
-[assembly: AssemblyCopyright("Copyright (C) Luca Piccioni 2016")]
+[assembly: AssemblyCopyright("Copyright (C) Luca Piccioni 2015-2016")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]

@@ -29,5 +28,5 @@
 //      Build Number
 //      Revision
 //
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: AssemblyVersion("0.1.0")]
+[assembly: AssemblyFileVersion("0.1.0")]


Exceptions must be serializable

Exceptions must be serializable

--- MagicExpression/MagexBuilder.cs
+++ MagicExpression/MagexBuilder.cs
@@ -4,59 +4,59 @@

 namespace MagicExpression
 {
-    /// <summary>
-    /// Helper class
-    /// </summary>
-    public static class MagexBuilder
-    {
-        /// <summary>
-        /// Create a regex valid numeric range
-        /// </summary>
-        /// <param name="from">The first bound of the range</param>
-        /// <param name="to">The second bound of the range, must be bigger than the fist bound</param>
-        /// <returns>The range as a string, wrapped with parenthesis</returns>
-        /// <example>("0", "42") ->  "([0-9]|[1-3][0-9]|4[0-2])"</example>
-        public static string NumericRange(ulong from, ulong to)
-        {
-            if (from > to)
-                throw new RangeException("Invalid range, from > to");
+	/// <summary>
+	/// Helper class
+	/// </summary>
+	public static class MagexBuilder
+	{
+		/// <summary>
+		/// Create a regex valid numeric range
+		/// </summary>
+		/// <param name="from">The first bound of the range</param>
+		/// <param name="to">The second bound of the range, must be bigger than the fist bound</param>
+		/// <returns>The range as a string, wrapped with parenthesis</returns>
+		/// <example>("0", "42") ->  "([0-9]|[1-3][0-9]|4[0-2])"</example>
+		public static string NumericRange(ulong from, ulong to)
+		{
+			if (from > to)
+				throw new RangeException("Invalid range, from > to");

-            return string.Format(@"\b{0}\b", GetNumericRange(from, to));
-        }
+			return string.Format(@"\b{0}\b", GetNumericRange(from, to));
+		}

-        #region Range support functions
+		#region Range support functions

-        private static string GetNumericRange(ulong from, ulong to)
-        {
-            IList<string> ranges = DecomposeSteps(from, to);
+		private static string GetNumericRange(ulong from, ulong to)
+		{
+			IList<string> ranges = DecomposeSteps(from, to);

-            var regex = "(?:";
+			var regex = "(?:";

-            for (var i = 0; i < ranges.Count - 1; i++)
-            {
-                string strFrom = ranges[i];
-                string strTo = ((Convert.ToInt64(ranges[i + 1])) - 1).ToString(CultureInfo.InvariantCulture);
+			for (var i = 0; i < ranges.Count - 1; i++)
+			{
+				string strFrom = ranges[i];
+				string strTo = ((Convert.ToInt64(ranges[i + 1])) - 1).ToString(CultureInfo.InvariantCulture);

-                for (var j = 0; j < strFrom.Length; j++)
-                {
-                    if (strFrom[j] == strTo[j])
-                        regex += strFrom[j];
-                    else
-                        regex += "[" + strFrom[j] + "-" + strTo[j] + "]";
-                }
-                regex += "|";
-            }
+				for (var j = 0; j < strFrom.Length; j++)
+				{
+					if (strFrom[j] == strTo[j])
+						regex += strFrom[j];
+					else
+						regex += "[" + strFrom[j] + "-" + strTo[j] + "]";
+				}
+				regex += "|";
+			}

-            return regex.Substring(0, regex.Length - 1) + ")";
-        }
+			return regex.Substring(0, regex.Length - 1) + ")";
+		}

-        private static List<string> DecomposeSteps(ulong from, ulong to)
-        {
-            ulong increment = 1;
-            ulong next = from;
-            bool higher = true;
+		private static List<string> DecomposeSteps(ulong from, ulong to)
+		{
+			ulong increment = 1;
+			ulong next = from;
+			bool higher = true;

-            var ranges = new List<string> { from.ToString(CultureInfo.InvariantCulture) };
+			var ranges = new List<string> { from.ToString(CultureInfo.InvariantCulture) };

             while (true)
             {
@@ -77,19 +77,20 @@
                     }
                 }

-                if (!higher && increment < 10)
-                    break;
-            }
+				if (!higher && increment < 10)
+					break;
+			}

-            ranges.Add((to + 1).ToString(CultureInfo.InvariantCulture));
-            return ranges;
-        }
+			ranges.Add((to + 1).ToString(CultureInfo.InvariantCulture));
+			return ranges;
+		}

-        #endregion
-    }
+		#endregion
+	}

-    public class RangeException: Exception
-    {
-        public RangeException(string message): base(message){}
-    }
+	[Serializable]
+	public class RangeException : Exception
+	{
+		public RangeException(string message) : base(message) { }
+	}
 }


Deleted method to delete profiles of all interfaces

--- ManagedNativeWifi/NativeWifi.cs
+++ ManagedNativeWifi/NativeWifi.cs
@@ -438,37 +438,7 @@
 		#region Delete profile

 		/// <summary>
-		/// Delete specified wireless profiles associated to all wireless interfaces.
-		/// </summary>
-		/// <param name="profileName">Profile name</param>
-		/// <returns>True if deleted. False if could not delete.</returns>
-		public static bool DeleteProfile(string profileName)
-		{
-			if (string.IsNullOrWhiteSpace(profileName))
-				throw new ArgumentNullException(nameof(profileName));
-
-			using (var client = new WlanClient())
-			{
-				var interfaceInfoList = GetInterfaceInfoList(client.Handle);
-
-				foreach (var interfaceInfo in interfaceInfoList)
-				{
-					var profileInfoList = GetProfileInfoList(client.Handle, interfaceInfo.InterfaceGuid);
-
-					if (!profileInfoList.Any(x => x.strProfileName.Equals(profileName, StringComparison.Ordinal)))
-						continue;
-
-					Debug.WriteLine("Existing profile: " + profileName);
-
-					return DeleteProfile(client.Handle, interfaceInfo.InterfaceGuid, profileName);
-				}
-
-				return false;
-			}
-		}
-
-		/// <summary>
-		/// Delete a specified wireless profile associated to a specified wireless interface.
+		/// Delete a specified wireless profile.
 		/// </summary>
 		/// <param name="profileName">Profile name</param>
 		/// <param name="interfaceGuid">Interface GUID</param>
@@ -492,7 +462,7 @@
 		#region Connect/Disconnect

 		/// <summary>
-		/// Attempt to connect to the wireless LAN associated to a specified wireless profile and interface.
+		/// Attempt to connect to the wireless LAN associated to a specified wireless profile.
 		/// </summary>
 		/// <param name="profileName">Profile name</param>
 		/// <param name="interfaceGuid">Interface GUID</param>
@@ -513,8 +483,7 @@
 		}

 		/// <summary>
-		/// Asynchronously attempt to connect to the wireless LAN associated to a specified wireless profile
-		/// and wireless interface.
+		/// Asynchronously attempt to connect to the wireless LAN associated to a specified wireless profile.
 		/// </summary>
 		/// <param name="profileName">Profile name</param>
 		/// <param name="interfaceGuid">Interface GUID</param>
@@ -527,8 +496,7 @@
 		}

 		/// <summary>
-		/// Asynchronously attempt to connect to the wireless LAN associated to a specified wireless profile
-		/// and wireless interface.
+		/// Asynchronously attempt to connect to the wireless LAN associated to a specified wireless profile.
 		/// </summary>
 		/// <param name="profileName">Profile name</param>
 		/// <param name="interfaceGuid">Interface GUID</param>


added getMyMappings

added getMyMappings

--- MappingFramework/MappingNode.cs
+++ MappingFramework/MappingNode.cs
@@ -22,6 +22,7 @@
         bool isMapped { get;}
         MappingNode parent { get; set; }
         IEnumerable<Mapping> getMappings(MappingNode targetRootNode);
+        IEnumerable<Mapping> getMyMappings(MappingNode targetRootNode);
         void addChildNode(MappingNode childNode);
         IEnumerable<Mapping> mappings { get; }
         void addMapping(Mapping mapping);


:art: spelling

:art: spelling

--- Utils/TelldusUtf8Marshaler.cs
+++ Utils/TelldusUtf8Marshaler.cs
@@ -21,8 +21,8 @@
         /// Initializes a new instance of the <see cref="TelldusUtf8Marshaler"/> class.
         /// </summary>
         /// <param name="direction">
-        /// if set to <c>true</c> the marshaller will free strings using telldus API.
-        /// Use this for marshallers that receive strings from the API. If false the
+        /// if set to <c>true</c> the marshaler will free strings using Telldus API.
+        /// Use this for marshalers that receive strings from the API. If false the
         /// strings will</param>
         public TelldusUtf8Marshaler(MarshalDirection direction)
         {
@@ -60,7 +60,7 @@
         public IntPtr MarshalManagedToNative(object ManagedObj)
         {
             if (direction == MarshalDirection.Out)
-                throw new InvalidOperationException("Marshaller is used in output mode, can't marshal managed to native");
+                throw new InvalidOperationException("Marshaler is used in output mode, can't marshal managed to native");

             if (ManagedObj == null) return IntPtr.Zero;

@@ -75,7 +75,7 @@
         public object MarshalNativeToManaged(IntPtr pNativeData)
         {
             if (direction == MarshalDirection.In)
-                throw new InvalidOperationException("Marshaller is used in input mode, can't marshal managed to native");
+                throw new InvalidOperationException("Marshaler is used in input mode, can't marshal managed to native");

             return FromNative(pNativeData);
         }


Update CiceroTests.cs

Update CiceroTests.cs

--- Spa2/NakedObjects.Spa.Selenium.Test/tests/CiceroTests.cs
+++ Spa2/NakedObjects.Spa.Selenium.Test/tests/CiceroTests.cs
@@ -309,8 +309,7 @@
             WaitForOutput("date matches multiple fields:\r\n" +
                           "Start Date\r\n" +
                           "End Date\r\n" +
-                          "Due Date\r\n" +
-                          "Modified Date");
+                          "Due Date");

             //No matches
             EnterCommand("enter strt date,1 Jan 2015");
@@ -904,6 +903,10 @@
             EnterCommand("show");
             WaitForOutputContaining("List Price: £500.00 (modified)");
             WaitForOutputContaining("Style: U  (modified)");
+            //Test that date properties are correctly formatted/masked
+            EnterCommand("sh modified");
+            WaitForOutputContaining("Modified Date: 11 Mar 2008 10:01:36");
+            WaitForOutputContaining("10:01:36");

             //exact match takes priority over partial match
             //TODO: Need example from properties, not action params -  transfer this to Enter test
@@ -921,9 +924,6 @@
             WaitForOutput("Work Order: Road-750 Black, 52: 19 Jun 2008");
             EnterCommand("sh start");
             WaitForOutput("Start Date: 19 Jun 2008");
-            EnterCommand("sh modified");
-            WaitForOutputContaining("Modified Date: 30 Jun 2008");
-            WaitForOutputContaining(":00:00");

             #endregion


Added a test

Added a test

--- Swashbuckle.Tests/Swagger/DefaultRootUrlResolverTests.cs
+++ Swashbuckle.Tests/Swagger/DefaultRootUrlResolverTests.cs
@@ -26,10 +26,10 @@
             request.Headers.Add("X-Forwarded-Proto", "https");
             request.Headers.Add("X-Forwarded-Host", "acmecorp.org");
             request.Headers.Add("X-Forwarded-Port", "8080");
-
+            request.Headers.Add("X-Forwarded-Prefix", "/api");
             var rootUrl = SwaggerDocsConfig.DefaultRootUrlResolver(request);

-            Assert.AreEqual("https://acmecorp.org:8080", rootUrl);
+            Assert.AreEqual("https://acmecorp.org:8080/api", rootUrl);
         }

         [TestCase("http://tempuri.org", "http://tempuri.org")]


Add sorting on customer name

Add sorting on customer name

--- TESS/Controllers/Contracts/CustomerContractController.cs
+++ TESS/Controllers/Contracts/CustomerContractController.cs
@@ -55,9 +55,9 @@
         {
             GlobalVariables.checkIfAuthorized("CustomerContract");
             if (System.Web.HttpContext.Current.GetUser().User_level > 1)
-                this.ViewData.Add("Customers", view_Customer.getCustomerNames(System.Web.HttpContext.Current.GetUser().Sign));
+                this.ViewData.Add("Customers", view_Customer.getCustomerNames(System.Web.HttpContext.Current.GetUser().Sign).OrderBy(c => c).ToList());
             else
-                this.ViewData.Add("Customers", view_Customer.getCustomerNames());
+                this.ViewData.Add("Customers", view_Customer.getCustomerNames().OrderBy(c => c).ToList());
             this.ViewData.Add("Summera", System.Web.HttpContext.Current.GetUser().Std_sum_kontrakt);
             this.ViewData.Add("ControllerName", "CustomerContract");
             this.ViewData.Add("PrimaryKey", "SSMA_timestamp");


Mantis#2881. Thank you kindly, SirKimba for a patch that: Solves inserting Wolrdparameters in SQL Database with  OpenSim.Data.MSSQL.dll always crash cause there were  missing some fields in the Insert-String

--- OpenSim/Data/MSSQL/MSSQLRegionData.cs
+++ OpenSim/Data/MSSQL/MSSQLRegionData.cs
@@ -763,13 +763,13 @@
                                 [block_show_in_search],[agent_limit],[object_bonus],[maturity],[disable_scripts],[disable_collisions],[disable_physics],
                                 [terrain_texture_1],[terrain_texture_2],[terrain_texture_3],[terrain_texture_4],[elevation_1_nw],[elevation_2_nw],[elevation_1_ne],
                                 [elevation_2_ne],[elevation_1_se],[elevation_2_se],[elevation_1_sw],[elevation_2_sw],[water_height],[terrain_raise_limit],
-                                [terrain_lower_limit],[use_estate_sun],[fixed_sun],[sun_position],[covenant],[Sandbox])
+                                [terrain_lower_limit],[use_estate_sun],[fixed_sun],[sun_position],[covenant],[sunvectorx], [sunvectory], [sunvectorz],[Sandbox])
                             VALUES
                                 (@regionUUID,@block_terraform,@block_fly,@allow_damage,@restrict_pushing,@allow_land_resell,@allow_land_join_divide,
-                                @block_show_in_search,@agent_limit,@object_bonus,@maturity,@disable_scripts,@disable_collisions,@disable_physics,@terrain_texture_1,
-                                @terrain_texture_2,@terrain_texture_3,@terrain_texture_4,@elevation_1_nw,@elevation_2_nw,@elevation_1_ne,@elevation_2_ne,
-                                @elevation_1_se,@elevation_2_se,@elevation_1_sw,@elevation_2_sw,@water_height,@terrain_raise_limit,@terrain_lower_limit,
-                                @use_estate_sun,@fixed_sun,@sun_position,@covenant,@sunvectorx,@sunvectory, @sunvectorz, @Sandbox)";
+                                @block_show_in_search,@agent_limit,@object_bonus,@maturity,@disable_scripts,@disable_collisions,@disable_physics,
+                                @terrain_texture_1,@terrain_texture_2,@terrain_texture_3,@terrain_texture_4,@elevation_1_nw,@elevation_2_nw,@elevation_1_ne,
+                                @elevation_2_ne,@elevation_1_se,@elevation_2_se,@elevation_1_sw,@elevation_2_sw,@water_height,@terrain_raise_limit,
+                                @terrain_lower_limit,@use_estate_sun,@fixed_sun,@sun_position,@covenant,@sunvectorx,@sunvectory, @sunvectorz, @Sandbox)";

             using (AutoClosingSqlCommand cmd = _Database.Query(sql))
             {


Bugfix.

Bugfix.

--- Tessin.Tin.Models/Extensions/TinMessageCodeExtensions.cs
+++ Tessin.Tin.Models/Extensions/TinMessageCodeExtensions.cs
@@ -49,6 +49,8 @@
                     return new TinMessage(TinMessageType.Error, "The normalized value does not match the expected pattern.", code);
                 case TinMessageCode.ErrorInvalidDate:
                     return new TinMessage(TinMessageType.Error, "The embedded date is invalid.", code);
+                case TinMessageCode.ErrorUndefinedAge:
+                    return new TinMessage(TinMessageType.Error, "Age is undefined.", code);
                 case TinMessageCode.ErrorNegativeAge:
                     return new TinMessage(TinMessageType.Error, "The computed age is negative.", code);
                 case TinMessageCode.ErrorInvalidEntityType:


* minor: remove mono warning

* minor: remove mono warning

--- OpenSim/Data/Tests/BasicRegionTest.cs
+++ OpenSim/Data/Tests/BasicRegionTest.cs
@@ -375,7 +375,6 @@
             UUID creator = new UUID();
             creator = UUID.Random();
             TaskInventoryDictionary dic = new TaskInventoryDictionary();
-            uint objf = (uint) random.Next();
             localID = localID + 1;
             string name = "West  Adam";
             byte material = (byte) random.Next(255);


Fixed test to account for our rejection of too thin lines.

--- Tests/MatterSlice.Tests/MatterSlice/GCodePlannerTests.cs
+++ Tests/MatterSlice.Tests/MatterSlice/GCodePlannerTests.cs
@@ -81,13 +81,24 @@
 				//  ____________
 				// s|__________|	  very simple  -> ----------

-				Polygon perimeter = new Polygon() { new IntPoint(0, 0), new IntPoint(5000, 0), new IntPoint(5000, 50), new IntPoint(0, 50) };
+				Polygon perimeter = new Polygon() { new IntPoint(0, 0), new IntPoint(5000, 0), new IntPoint(5000, 60), new IntPoint(0, 60) };
 				Polygons thinLines;
 				bool foundThinLines = perimeter.FindThinLines(400, 0, out thinLines);
 				Assert.IsTrue(foundThinLines);
 				Assert.IsTrue(thinLines.Count == 1);
 				Assert.IsTrue(thinLines[0].Count == 2);
-				Assert.IsTrue(thinLines[0][0].Width == 50);
+				Assert.IsTrue(thinLines[0][0].Width == 60);
+			}
+
+			// Make sure we don't see thin lines that are too thin
+			{
+				//  ____________
+				// s|__________|	  very simple  -> (It is too thin to get a results. Goes to nothing.)
+
+				Polygon perimeter = new Polygon() { new IntPoint(0, 0), new IntPoint(5000, 0), new IntPoint(5000, 40), new IntPoint(0, 40) };
+				Polygons thinLines;
+				bool foundThinLines = perimeter.FindThinLines(400, 0, out thinLines);
+				Assert.IsFalse(foundThinLines);
 			}

 			// A path that needs to have points inserted to do the correct thing


Strip experimental tag from --publish option of "save oar" region console command

--- OpenSim/Region/Application/OpenSim.cs
+++ OpenSim/Region/Application/OpenSim.cs
@@ -294,14 +294,13 @@
                                           "save oar [-h|--home=<url>] [--noassets] [--publish] [--perm=<permissions>] [<OAR path>]",
                                           "Save a region's data to an OAR archive.",
 //                                          "-v|--version=<N> generates scene objects as per older versions of the serialization (e.g. -v=0)" + Environment.NewLine
-                                          "-h|--home=<url> adds the url of the profile service to the saved user information." + Environment.NewLine
-                                          + "--noassets stops assets being saved to the OAR." + Environment.NewLine
-                                          + "--publish saves an OAR stripped of owner and last owner information." + Environment.NewLine
-                                          + "   on reload, the estate owner will be the owner of all objects" + Environment.NewLine
-                                          + "   this is useful if you're making oars generally available that might be reloaded to the same grid from which you published" + Environment.NewLine
-                                          + "   this option is EXPERIMENTAL" + Environment.NewLine
-                                          + "--perm=<permissions> stops objects with insufficient permissions from being saved to the OAR." + Environment.NewLine
-                                          + "   <permissions> can contain one or more of these characters: \"C\" = Copy, \"T\" = Transfer" + Environment.NewLine
+                                          "-h|--home=<url> adds the url of the profile service to the saved user information.\n"
+                                          + "--noassets stops assets being saved to the OAR.\n"
+                                          + "--publish saves an OAR stripped of owner and last owner information.\n"
+                                          + "   on reload, the estate owner will be the owner of all objects\n"
+                                          + "   this is useful if you're making oars generally available that might be reloaded to the same grid from which you published\n"
+                                          + "--perm=<permissions> stops objects with insufficient permissions from being saved to the OAR.\n"
+                                          + "   <permissions> can contain one or more of these characters: \"C\" = Copy, \"T\" = Transfer\n"
                                           + "The OAR path must be a filesystem path."
                                           + " If this is not given then the oar is saved to region.oar in the current directory.",
                                           SaveOar);


Add active status to "show connections"

Add active status to "show connections"

--- OpenSim/Region/Application/OpenSim.cs
+++ OpenSim/Region/Application/OpenSim.cs
@@ -1127,10 +1127,16 @@
             cdt.AddColumn("Avatar name", 25);
             cdt.AddColumn("Remote endpoint", 23);
             cdt.AddColumn("Circuit number", 14);
+            cdt.AddColumn("Active?", 7);

             m_sceneManager.ForEachScene(
                 s => s.ForEachClient(
-                    c => cdt.AddRow(s.RegionInfo.RegionName, c.Name, c.RemoteEndPoint.ToString(), c.CircuitCode.ToString())));
+                    c => cdt.AddRow(
+                        s.RegionInfo.RegionName,
+                        c.Name,
+                        c.RemoteEndPoint.ToString(),
+                        c.CircuitCode.ToString(),
+                        c.IsActive.ToString())));

             MainConsole.Instance.Output(cdt.ToString());
         }


建立String2CharArrayTestPart1方法

建立String2CharArrayTestPart1方法

建立String2CharArrayTestPart1方法

--- UartOscilloscopeTests/CSharpFiles/DataProcessingTests.cs
+++ UartOscilloscopeTests/CSharpFiles/DataProcessingTests.cs
@@ -18,20 +18,26 @@
 		[TestMethod()]
 		public void String2CharArrayTest()                                      //	String2CharArrayTest方法
 		{                                                                       //	進入String2CharArrayTest方法
+			String2CharArrayTestPart1();                                        //	呼叫String2CharArrayTestPart1方法
+
+		}                                                                       //	結束String2CharArrayTest方法
+		[TestMethod()]
+		public void String2CharArrayTestPart1()                                 //	String2CharArrayTestPart1方法
+		{                                                                       //	進入String2CharArrayTestPart1方法
 			DataProcessing DataProcessing1 = new DataProcessing();              //	建立DataProcessing1物件
 			string TestData1 = "12345";                                         //	宣告測試資料TestData1
 			char[] expected = new char[5]; ;                                    //	宣告預期輸出資料expected
-			expected[0] = '1';													//	設定預期輸出
+			expected[0] = '1';                                                  //	設定預期輸出
 			expected[1] = '2';                                                  //	設定預期輸出
 			expected[2] = '3';                                                  //	設定預期輸出
 			expected[3] = '4';                                                  //	設定預期輸出
 			expected[4] = '5';                                                  //	設定預期輸出
 			char[] actual;                                                      //	宣告actual(實際輸出)
 			actual = DataProcessing1.String2CharArray(TestData1);               //	執行String2CharArray方法
-			for(int LoopNum = 0; LoopNum < 5; LoopNum++)                        //	以for迴圈依序比對期望輸出與實際輸出
+			for (int LoopNum = 0; LoopNum < 5; LoopNum++)                        //	以for迴圈依序比對期望輸出與實際輸出
 			{                                                                   //	進入for迴圈
 				Assert.AreEqual(expected[LoopNum], actual[LoopNum]);            //	比對期望輸出與實際輸出
-			}																	//	結束for迴圈
-		}                                                                       //	結束String2CharArrayTest方法
+			}                                                                   //	結束for迴圈
+		}                                                                       //	結束String2CharArrayTestPart1方法
 	}                                                                           //	結束DataProcessingTests類別
 }                                                                               //	結束命名空間


デフォでテクノロジーが５個だった

デフォでテクノロジーが５個だった

--- UnityProject/Assets/Scripts/Manager/TechnologyManager.cs
+++ UnityProject/Assets/Scripts/Manager/TechnologyManager.cs
@@ -28,7 +28,7 @@
 		for(var i = 0; i < Enum.GetNames(typeof(TechnologyType)).Length; i++)
 		{
 			var type = (TechnologyType)i;
-			currentTechnologys.Add(type, 5);
+			currentTechnologys.Add(type, 0);
 		}
 	}


Missing endline

Missing endline


added methods that store the hashcode in a field so subsequent calls on an instance always return the same hashcode regardless of changes to the other members

--- Equality/Equality.cs
+++ Equality/Equality.cs
@@ -17,7 +17,7 @@
 		public class IncludePropertyAttribute : Attribute { }

 		private static FieldInfo GetBackingField(PropertyInfo pi) {
-			if (!pi.CanRead || !pi.GetGetMethod(nonPublic: true).IsDefined(typeof(CompilerGeneratedAttribute), inherit:true))
+			if (!pi.CanRead || !pi.GetGetMethod(nonPublic:true).IsDefined(typeof(CompilerGeneratedAttribute), inherit:true))
 				return null;
 			var backingField = pi.DeclaringType.GetField($"<{pi.Name}>k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic);
 			if (backingField == null)
@@ -34,10 +34,14 @@
 			return GetHashCodeFuncCache<T>.Func(@object);
 		}

+		public static Int32 GetStructHashCode<T>(this T @object, ref Int32 hashCodeField) where T : struct => hashCodeField != 0 ? hashCodeField : hashCodeField = @object.GetStructHashCode();
+
 		public static Int32 GetClassHashCode<T>(this T @object) where T : class {
 			var type = @object.GetType();
 			return type == typeof(T) ? GetHashCodeFuncCache<T>.Func(@object) : GetHashCodeClassTypeFuncCache.GetOrAdd(type, GetHashCodeFunc<Object>).Invoke(@object);
 		}
+
+		public static Int32 GetClassHashCode<T>(this T @object, ref Int32 hashCodeField) where T : class => hashCodeField != 0 ? hashCodeField : hashCodeField = @object.GetClassHashCode();

 		private static class EqualsFuncCache<T> { public static readonly Func<T, T, Boolean> Func = GetEqualsFunc<T>(typeof(T)); }
 		private static readonly ConcurrentDictionary<Type, Func<Object, Object, Boolean>> EqualsClassTypeFuncCache = new ConcurrentDictionary<Type, Func<Object, Object, Boolean>>();


Incremented version to 1.2.2.

Incremented version to 1.2.2.

--- Utility.CommandLine.Arguments/Properties/AssemblyInfo.cs
+++ Utility.CommandLine.Arguments/Properties/AssemblyInfo.cs
@@ -11,5 +11,5 @@
 [assembly: AssemblyCulture("")]
 [assembly: ComVisible(false)]
 [assembly: Guid("b739dd22-4bd3-4d17-a351-33d129e9fe30")]
-[assembly: AssemblyVersion("1.2.1")]
-[assembly: AssemblyFileVersion("1.2.1")]+[assembly: AssemblyVersion("1.2.2")]
+[assembly: AssemblyFileVersion("1.2.2")]


Redundant variable type

Redundant variable type

--- MoreLinq.Test/SequenceReader.cs
+++ MoreLinq.Test/SequenceReader.cs
@@ -98,7 +98,7 @@
         /// </summary>

         public T TryRead(T defaultValue) =>
-            TryRead(out T result) ? result : defaultValue;
+            TryRead(out var result) ? result : defaultValue;

         /// <summary>
         /// Reads a value otherwise throws <see cref="InvalidOperationException"/>
@@ -109,7 +109,7 @@
         /// </returns>

         public T Read() =>
-            TryRead(out T result) ? result : throw new InvalidOperationException();
+            TryRead(out var result) ? result : throw new InvalidOperationException();

         /// <summary>
         /// Reads the end. If the end has not been reached then it


Added a way to send multiple messages with Tell.

--- MoronBot-Functions/Tell/Tell.cs
+++ MoronBot-Functions/Tell/Tell.cs
@@ -65,20 +65,24 @@
             if (RateLimit(message.User.Name))
                 return new List<IRCResponse>() { new IRCResponse(ResponseType.Say, "You've already sent 3 messages in the last 5 minutes, slow down!", message.ReplyTo) };

-            string to = WildcardToRegex(message.ParameterList[0]);
-            string msg = message.Parameters.Substring(message.ParameterList[0].Length + 1);
-            if (!MessageMap.ContainsKey(to))
+            foreach (string target in message.ParameterList[0].Split('&'))
             {
-                MessageMap.Add(to, new List<TellMessage>());
+                string to = WildcardToRegex(target);
+                string msg = message.Parameters.Substring(message.ParameterList[0].Length + 1);
+                if (!MessageMap.ContainsKey(to))
+                {
+                    MessageMap.Add(to, new List<TellMessage>());
+                }
+                TellMessage tellMessage = new TellMessage();
+                tellMessage.From = message.User.Name;
+                tellMessage.SentDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss (UTC zz)");
+                tellMessage.Message = StringUtils.ReplaceNewlines(StringUtils.StripIRCFormatChars(msg), " | ");
+                tellMessage.Target = message.TargetType == 0 ? message.ReplyTo : "PM";
+                MessageMap[to].Add(tellMessage);
             }
-            TellMessage tellMessage = new TellMessage();
-            tellMessage.From = message.User.Name;
-            tellMessage.SentDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss (UTC zz)");
-            tellMessage.Message = StringUtils.ReplaceNewlines(StringUtils.StripIRCFormatChars(msg), " | ");
-            tellMessage.Target = message.TargetType == 0 ? message.ReplyTo : "PM";
-            MessageMap[to].Add(tellMessage);
             WriteMessages();
-            return new List<IRCResponse>() { new IRCResponse(ResponseType.Say, "Ok, I'll tell " + message.ParameterList[0] + " that when they next speak.", message.ReplyTo) };
+
+            return new List<IRCResponse>() { new IRCResponse(ResponseType.Say, "Ok, I'll tell " + string.Join(" & ", message.ParameterList[0].Split('&')) + " that when they next speak.", message.ReplyTo) };
         }

         public static void WriteMessages()


Change Wait() to GetAwaiter().GetResult()

--- NTumbleBit.Tests/NodeBuilder.cs
+++ NTumbleBit.Tests/NodeBuilder.cs
@@ -280,7 +280,7 @@
 		}
 		public void Start()
 		{
-			StartAsync().Wait();
+			StartAsync().GetAwaiter().GetResult();
 		}

 		private readonly NetworkCredential creds;


#24 Création Point avec MAP - correction

--- WUI/Views/Point/Create.cshtml
+++ WUI/Views/Point/Create.cshtml
@@ -33,24 +33,19 @@

             @Html.LabelFor(model => model.Ordre)

+

-            @Html.TextBoxFor(model => model.Ordre, new { @class="form-control", type = "int", size = "30" })
+            @Html.TextBoxFor(model => model.Ordre, new { @class = "form-control", type = "int", size = "30" })
             @Html.ValidationMessageFor(model => model.Ordre)

-            @Html.LabelFor(model => model.Longitude)
-

-

-            @Html.TextBoxFor(model => model.Longitude, new { @class="form-control", type="int", size = "30" })
+            @Html.HiddenFor(model => model.Longitude)
             @Html.ValidationMessageFor(model => model.Longitude)

-            @Html.LabelFor(model => model.Latitude)
-

-

-            @Html.TextBoxFor(model => model.Latitude, new { @class="form-control", type="int", size = "30" })
+            @Html.HiddenFor(model => model.Latitude)
             @Html.ValidationMessageFor(model => model.Latitude)

@@ -58,9 +53,9 @@
             @Html.LabelFor(model => model.LibelleCourse)

-           @Html.DropDownListFor(model => model.IdCourse, new SelectList(Model.ListCourseOptions,
-                               "Id", "Title"))
-           @Html.ValidationMessageFor(model => model.IdCourse)
+            @Html.DropDownListFor(model => model.IdCourse, new SelectList(Model.ListCourseOptions,
+                            "Id", "Title"))
+            @Html.ValidationMessageFor(model => model.IdCourse)

@@ -68,54 +63,54 @@

             @Html.DropDownListFor(model => model.IdTypePoint, new SelectList(Model.ListTypePointOptions,
-                               "Id", "Libelle"))
+                            "Id", "Libelle"))
             @Html.ValidationMessageFor(model => model.IdTypePoint)

-       <button type="submit" value="Créer le point" class="btn btn-default">Créer le point</button>
-}
+        <button type="submit" value="Créer le point" class="btn btn-default">Créer le point</button>
+        }

-

-    @Html.ActionLink("Retour à la liste", "Index")
-

+

+            @Html.ActionLink("Retour à la liste", "Index")
+

-

+

-@section scripts {
-
+        @section scripts {

-
+
         }
-        google.maps.event.addDomListener(window, "load", initMap);
-    </script>
-
-}


Added basic console client functionality

--- NetIRC.ConsoleClient/Program.cs
+++ NetIRC.ConsoleClient/Program.cs
@@ -13,10 +13,16 @@
         {
             using (var client = new Client(new TcpClientConnection()))
             {
+                client.OnRawDataReceived += Client_OnRawDataReceived;
                 Task.Run(() => client.ConnectAsync("irc.rizon.net", 6667, "NetIRCConsoleClient", "NetIRC"));

                 Console.ReadKey();
             }
         }
+
+        private static void Client_OnRawDataReceived(Client client, string rawData)
+        {
+            Console.WriteLine(rawData);
+        }
     }
 }


Namespace error

Namespace error

--- WinPomodoro/Model/Pomodoro.cs
+++ WinPomodoro/Model/Pomodoro.cs
@@ -1,4 +1,4 @@
-using BasicPomodoro.Model;
+using WinPomodoro.Model;
 using System;
 using System.Collections.Generic;
 using System.Diagnostics;


adding nullable contingencies

adding nullable contingencies

--- Nexmo.Api/Logger/LogProvider.cs
+++ Nexmo.Api/Logger/LogProvider.cs
@@ -1,4 +1,5 @@
 using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Logging.Abstractions;
 using System.Collections.Generic;
 using System;
 namespace Nexmo.Api.Logger
@@ -10,7 +11,7 @@

         public static void SetLogFactory(ILoggerFactory factory)
         {
-            _loggerFactory.Dispose();
+            _loggerFactory?.Dispose();
             _loggerFactory = factory;
             _loggers.Clear();
         }
@@ -19,7 +20,7 @@
         {
             if (!_loggers.ContainsKey(category))
             {
-                _loggers[category] = _loggerFactory.CreateLogger(category);
+                _loggers[category] = _loggerFactory?.CreateLogger(category)?? NullLogger.Instance;
             }
             return _loggers[category];
         }


New MongoQueryProvider now works with MongoConfiguration mappings

--- NoRM/Linq/MongoQueryProvider.cs
+++ NoRM/Linq/MongoQueryProvider.cs
@@ -5,8 +5,9 @@
 using System.Reflection;
 using Norm.BSON;
 using Norm.Collections;
-using System.Collections;
-
+using System.Collections;
+using Norm.Configuration;
+
 namespace Norm.Linq
 {
     /// <summary>
@@ -134,8 +135,9 @@
             var qry = tranny.Translate(expression);
             var fly = tranny.FlyWeight;

-            // This is the actual Query mechanism...
-            var collection = new MongoCollection<T>(tranny.TypeName, DB, DB.CurrentConnection);
+            // This is the actual Query mechanism...
+            var collectionName = MongoConfiguration.GetCollectionName(typeof(T));
+            var collection = new MongoCollection<T>(collectionName, DB, DB.CurrentConnection);

             string map = "", reduce = "", finalize = "";
             if (!string.IsNullOrEmpty(tranny.AggregatePropName))


Fix for .ppx extraction crashing

Fix for .ppx extraction crashing

--- PPeX/Archives/ExtendedArchiveChunk.cs
+++ PPeX/Archives/ExtendedArchiveChunk.cs
@@ -80,9 +80,16 @@

         public Stream GetStream()
         {
+            MemoryStream mem = new MemoryStream();
+
             using (Stream raw = GetRawStream())
             using (IDecompressor decompressor = CompressorFactory.GetDecompressor(raw, Compression))
-                return decompressor.Decompress();
+                decompressor.Decompress().CopyTo(mem);
+
+            mem.Position = 0;
+
+            return mem;
+               // return decompressor.Decompress();
         }

         public Stream GetRawStream()


Remove dangerous codes.

Remove dangerous codes.

--- Project/DataModel/ShootingViewData.cs
+++ Project/DataModel/ShootingViewData.cs
@@ -147,11 +147,6 @@
                     case "Storages":
                         OnPropertyChanged("StorageImage");
                         OnPropertyChanged("RecordbaleAmount");
-                        Debug.WriteLine("description: " + cameraStatus.Storages[0].Description);
-                        Debug.WriteLine("RecordableImages: " + cameraStatus.Storages[0].RecordableImages);
-                        Debug.WriteLine("RecordableMovieLength: " + cameraStatus.Storages[0].RecordableMovieLength);
-                        Debug.WriteLine("RecordTarget: " + cameraStatus.Storages[0].RecordTarget);
-                        Debug.WriteLine("StorageID: " + cameraStatus.Storages[0].StorageID);
                         break;
                 }
             };


Release 0.1 Alpha (#9)

Release 0.1 Alpha (#9)

* Feature/rt 1

* Commit 1

* Commit 2

* Commit 3

* Commit 4

* Commit 5

* Feature/rt 2

* Commit 1

* Commit 2

* Commit 3

--- PublishingPipeline.Console/Program.cs
+++ PublishingPipeline.Console/Program.cs
@@ -1,4 +1,5 @@
 using System;
+using console = System.Console;

 namespace PublishingPipeline.Console
 {
@@ -6,6 +7,13 @@
     {
         static void Main(string[] args)
         {
+            console.WriteLine("rt-1 - Commit 1");
+            console.WriteLine("rt-2 - Commit 1");
+            console.WriteLine("rt-1 - Commit 2");
+            console.WriteLine("rt-2 - Commit 2");
+            console.WriteLine("rt-1 - Commit 4");
+            console.WriteLine("rt-2 - Commit 3");
+            console.WriteLine("rt-1 - Commit 5");
         }
     }
 }


Reverted Program.cs changes

Reverted Program.cs changes

--- Pulsar4X/Pulsar4X.WinForms/Program.cs
+++ Pulsar4X/Pulsar4X.WinForms/Program.cs
@@ -22,14 +22,16 @@
             XmlConfigurator.Configure();

             logger.Info("Program Started");
-            /*
+
             Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault(false);
             Pulsar4X.WinForms.Controls.UIController UIComponentControler = new Controls.UIController();
             Application.Run(Controls.UIController.g_aMainForm);
-            */
+
+            /*
             StarSystemFactory ssf = new StarSystemFactory(true);
             ssf.Create("Test");
+            */

             logger.Info("Program Ended");
         }