Updated Classes

Updated Classes

--- BAC_Tracker/BAC_Tracker_Standard/Model/Beverage.cs
+++ BAC_Tracker/BAC_Tracker_Standard/Model/Beverage.cs
@@ -5,101 +5,98 @@

     public class Beverage
     {
-        //DateTime startTime = new DateTime(0, 0, 0, 0, 0, 0);
-        //DateTime finishTime = new DateTime(0, 0, 0, 0, 0, 0);
+        string model;
+        double volume;
+
+        public double Percentage_consumed { get; set; }
+
+        public string Model{
+            get => model;
+            set
+            {
+                model = value;
+                DeterminePercentage();
+            }
+        }
+        public double Alcohol_percentage { get; set; }
+
+        public string Container { get; set; }
+        public double Volume {
+            get => volume;
+            set
+            {
+                volume = value;
+                DetermineVolume();
+            }
+        }

-        //Beverage tempdrink;
-
-        //public string Type { get; set; }
-        public double Amount { get; set; }
-        public double Percentage_drink { get; set; }
-
-        public BeverageVolume Volume { get; set; }
-        public BAC_Tracker.Model.BeverageDetails Details { get; set; }
-
-
-        // I think we don't need type of beverage, since we have them in BeverageDetails class.
-        public Beverage(/*string type,*/ double amount, double percentage_drink)
+
+        public Beverage(string model,  double percentage_consumed, string container)
         {
-
-            //Type = type;
-            Amount = amount;
-            Percentage_drink = percentage_drink;
-
-            Details = new BAC_Tracker.Model.BeverageDetails("lightbeer");
-
-
-
-            //second parameter is for the size, and third parameter is the percentage the user has already drank.
-            //in the future, instead of these random number, It will be set to the input from the user
-            //for example for the percentage already drank, "50" will be replaced to the AndroidButton.ConsumedPercentage()
-            Volume = new BeverageVolume(Details, 100, 50);
-
-
+            Model = model;
+            Container = container;
+            Percentage_consumed = percentage_consumed;
         }

         public double TotalConsumedAlcohol()
         {
-
-
-            return Details.Alcohol_percentage * Volume.Amount * Volume.Volume_percentage_drink;
+            return Alcohol_percentage * Volume * Percentage_consumed;
         }

-
-
-
-
-
-        /*
-        //default values
-        DateTime startTime = new DateTime(0, 0, 0, 0, 0, 0);
-        DateTime finishTime = new DateTime(0, 0, 0, 0, 0, 0);
-        public BeverageDetails details;
-        public BeverageVolume volume;
-
-        public static double totalconsumedalcohol = 0;
-
-
-
-        public Beverage()
+        public void DeterminePercentage()
         {

-            BeverageDetails details = new BeverageDetails();
-            BeverageVolume volume = new BeverageVolume();
+            switch (Model)
+            {
+                case "lightbeer":
+                    Alcohol_percentage = 0.05;
+                    break;
+                case "liquor":
+                    Alcohol_percentage = 0.45;
+                    break;
+                case "whiskey":
+                    Alcohol_percentage = 0.45;
+                    break;
+                case "gin":
+                    Alcohol_percentage = 0.40;
+                    break;
+                case "vodka":
+                    Alcohol_percentage = 0.40;
+                    break;
+                case "red wine":
+                    Alcohol_percentage = 0.14;
+                    break;
+                case "white wine":
+                    Alcohol_percentage = 0.18;
+                    break;
+            }
+        }

-            totalconsumedalcohol += volume.ConsumedAlcohol();
-
+        public void DetermineVolume()
+        {
+            switch (Container)
+            {
+                case "wine":
+                    Volume = 5;
+                    break;
+                case "whiskey":
+                    Volume = 6;
+                    break;
+                case "pint":
+                    Volume = 16;
+                    break;
+                case "shot":
+                    Volume = 1.5;
+                    break;
+                case "can/bottle":
+                    Volume = 12;
+                    break;
+
+            }
+
+        }

         }
-
-        //it will set the starting time when customer clicks on the "Started drinking" button
-        public void SetStartTime()
-        {
-            startTime = DateTime.Now;
-
-        }
-        //this function will set the finishing time  when customer clicks on the "finished drinking" button
-        public void SetFinishTime()
-        {
-            finishTime = DateTime.Now;
-
-        }
-
-
-        //measuring the time that customer finishes his drink.
-        public TimeSpan TimeElapsed()
-        {
-
-            var spannedHour = finishTime.Hour - startTime.Hour;
-            var spannedMinutes = finishTime.Minute - startTime.Minute;
-            var spannedMilliseconds = finishTime.Millisecond - startTime.Millisecond;
-            var timeSpan = new TimeSpan(spannedHour, spannedMinutes, spannedMilliseconds);
-            return timeSpan;
-
-        }
-        */
-
     }
-}


added PING to CommandType

added PING to CommandType

--- CsNetLib2/CommandType.cs
+++ CsNetLib2/CommandType.cs
@@ -36,6 +36,7 @@
         CRTO,
         CZTO,
         UNRG,
+        PING,
         // For use when an invalid command is sent to AAHProtocolWrapper.
         // Recommended behaviour for handlers registered to this on a server is to reply with UNRG.
         // Recommended behaviour for clients is not to bind to this.


Added support for storing timestamps in 7z archive.

git-svn-id: 62845d283861e61c102f794bb5bc544509088d99@22 4484b0a9-e4ec-3320-d4d1-ca329da5a3fa

--- master/7zip/ArchiveWriter.cs
+++ master/7zip/ArchiveWriter.cs
@@ -722,6 +722,105 @@
                 }
                 */

+                int ctimeCount = files.Count(file => file.CTime.HasValue);
+                if(ctimeCount != 0)
+                {
+                    WriteNumber(BlockType.CTime);
+
+                    if(ctimeCount == files.Length)
+                    {
+                        WriteNumber(2 + ctimeCount * 8);
+                        mFileWriter.Write((byte)1);
+                    }
+                    else
+                    {
+                        WriteNumber((ctimeCount + 7) / 8 + 2 + ctimeCount * 8);
+                        mFileWriter.Write((byte)0);
+
+                        for(int i = 0; i < files.Length; i += 8)
+                        {
+                            int mask = 0;
+                            for(int j = 0; j < 8; j++)
+                                if(i + j < files.Length && files[i + j].CTime.HasValue)
+                                    mask |= 1 << (7 - j);
+
+                            mFileWriter.Write((byte)mask);
+                        }
+                    }
+
+                    mFileWriter.Write((byte)0); // inline data
+
+                    for(int i = 0; i < files.Length; i++)
+                        if(files[i].CTime.HasValue)
+                            mFileWriter.Write(files[i].CTime.Value.ToFileTimeUtc());
+                }
+
+                int atimeCount = files.Count(file => file.ATime.HasValue);
+                if(atimeCount != 0)
+                {
+                    WriteNumber(BlockType.ATime);
+
+                    if(atimeCount == files.Length)
+                    {
+                        WriteNumber(2 + atimeCount * 8);
+                        mFileWriter.Write((byte)1);
+                    }
+                    else
+                    {
+                        WriteNumber((atimeCount + 7) / 8 + 2 + atimeCount * 8);
+                        mFileWriter.Write((byte)0);
+
+                        for(int i = 0; i < files.Length; i += 8)
+                        {
+                            int mask = 0;
+                            for(int j = 0; j < 8; j++)
+                                if(i + j < files.Length && files[i + j].ATime.HasValue)
+                                    mask |= 1 << (7 - j);
+
+                            mFileWriter.Write((byte)mask);
+                        }
+                    }
+
+                    mFileWriter.Write((byte)0); // inline data
+
+                    for(int i = 0; i < files.Length; i++)
+                        if(files[i].ATime.HasValue)
+                            mFileWriter.Write(files[i].ATime.Value.ToFileTimeUtc());
+                }
+
+                int mtimeCount = files.Count(file => file.MTime.HasValue);
+                if(mtimeCount != 0)
+                {
+                    WriteNumber(BlockType.MTime);
+
+                    if(mtimeCount == files.Length)
+                    {
+                        WriteNumber(2 + mtimeCount * 8);
+                        mFileWriter.Write((byte)1);
+                    }
+                    else
+                    {
+                        WriteNumber((mtimeCount + 7) / 8 + 2 + mtimeCount * 8);
+                        mFileWriter.Write((byte)0);
+
+                        for(int i = 0; i < files.Length; i += 8)
+                        {
+                            int mask = 0;
+                            for(int j = 0; j < 8; j++)
+                                if(i + j < files.Length && files[i + j].MTime.HasValue)
+                                    mask |= 1 << (7 - j);
+
+                            mFileWriter.Write((byte)mask);
+                        }
+                    }
+
+                    mFileWriter.Write((byte)0); // inline data
+
+                    for(int i = 0; i < files.Length; i++)
+                        if(files[i].MTime.HasValue)
+                            mFileWriter.Write(files[i].MTime.Value.ToFileTimeUtc());
+                }
+
                 WriteNumber(BlockType.End);

                 long headerSize = mFileStream.Position - headerOffset;
@@ -893,6 +992,18 @@
                     limit += (files.Length + 7) / 8; // bit vector
                 }

+                limit += kBlockTypeLen; // BlockType.CTime
+                limit += kMaxNumberLen; // (ctimeCount + 7) / 8 + 2 + ctimeCount * 8;
+                limit += (files.Length + 7) / 8 + 2 + files.Length * 8;
+
+                limit += kBlockTypeLen; // BlockType.ATime
+                limit += kMaxNumberLen; // (atimeCount + 7) / 8 + 2 + atimeCount * 8;
+                limit += (files.Length + 7) / 8 + 2 + files.Length * 8;
+
+                limit += kBlockTypeLen; // BlockType.MTime
+                limit += kMaxNumberLen; // (mtimeCount + 7) / 8 + 2 + mtimeCount * 8;
+                limit += (files.Length + 7) / 8 + 2 + files.Length * 8;
+
                 limit += kBlockTypeLen; // BlockType.End
             }


Updated device event handling

Updated device event handling

--- DDPAIDash.Core/Device.cs
+++ DDPAIDash.Core/Device.cs
@@ -566,9 +566,10 @@
                         break;
                     case MailBoxMessageKeys.MSG_DeleteEvent:
                         _logger.Info($"Key: {message.Key} Data: {message.Data}");
+                        HandleEventDeleted();
                         break;
                     case MailBoxMessageKeys.MSG_EventOccured:
-                        OnEventAdded(new EventAddedEventArgs(JsonConvert.DeserializeObject<DeviceEvent>(message.Data)));
+                        HandleEventOccured(JsonConvert.DeserializeObject<DeviceEvent>(message.Data));
                         break;
                     case MailBoxMessageKeys.MSG_PlaybackListUpdate:
                         HandlePlaybackListUpdate(JsonConvert.DeserializeObject<VideosListUpdate>(message.Data));
@@ -589,6 +590,20 @@
             }
         }

+        private void HandleEventDeleted()
+        {
+            UpdateStorageInfo();
+#warning todo
+            OnEventDeleted(new EventDeletedEventArgs(null));
+        }
+
+        private void HandleEventOccured(DeviceEvent deviceEvent)
+        {
+            UpdateStorageInfo();
+
+            OnEventAdded(new EventAddedEventArgs(deviceEvent));
+        }
+
         private void HandlePlaybackListUpdate(VideosListUpdate videosListUpdate)
         {
             if (videosListUpdate.Action == PlaybackAction.Add)
@@ -662,12 +677,7 @@
                             _transport.Execute(apiCommand, JsonConvert.SerializeObject(QueryParameters.Instance)),
                         LoadSettings);
                 },
-                () =>
-                {
-                    return ExecuteRequest(ApiConstants.GetStorageInfo,
-                        apiCommand => _transport.Execute(apiCommand),
-                        response => { Storage = JsonConvert.DeserializeObject<StorageInfo>(response.Data); });
-                }
+                UpdateStorageInfo
             };

             foreach (var action in connectActions)
@@ -680,6 +690,13 @@

             return result;
+        }
+
+        private bool UpdateStorageInfo()
+        {
+            return ExecuteRequest(ApiConstants.GetStorageInfo,
+                apiCommand => _transport.Execute(apiCommand),
+                response => { Storage = JsonConvert.DeserializeObject<StorageInfo>(response.Data); });
         }

         private void LoadSettings(ResponseMessage response)


Change % to /, i missed up

Change % to /, i missed up

--- Danmu/MainWindow.xaml.cs
+++ Danmu/MainWindow.xaml.cs
@@ -29,7 +29,8 @@

         private void Window_Loaded(object sender, RoutedEventArgs e)
         {
-            linesCount = ((int)(Playground.ActualHeight - paddingTop)) % lineHeight;
+            linesCount = ((int)(Playground.ActualHeight - paddingTop)) / lineHeight;
+            MessageBox.Show("window height" + Playground.ActualHeight + "lines count:" + linesCount.ToString());
             lines = new bool[linesCount];
         }


Add program file variable in choosing  git.exe

--- GitAutoUpdateGUI/FormMain.cs
+++ GitAutoUpdateGUI/FormMain.cs
@@ -986,11 +986,17 @@
       return result;
     }

-    private static string ChooseOneFile(string filter = "All files (*.*)|*.*")
+    private static string ChooseOneFile(string filter = "All files (*.*)|*.*", string initialDirectory = "")
     {
       string result = string.Empty;
       FileDialog fd = new OpenFileDialog();
       fd.Filter = filter;
+      if (initialDirectory == string.Empty)
+      {
+        initialDirectory = Environment.GetEnvironmentVariable("PROGRAMFILES");
+      }
+
+      fd.InitialDirectory = initialDirectory;
       if (fd.ShowDialog() == DialogResult.OK)
       {
         result = fd.FileName;


bootstrap updates tfs ref if it exists already

--- GitTfs/Commands/Bootstrap.cs
+++ GitTfs/Commands/Bootstrap.cs
@@ -46,8 +46,17 @@
                     _stdout.WriteLine("-> new remote " + remoteId);
                 }
                 else
-                {
-                    _stdout.WriteLine("-> existing remote " + parent.Remote.Id);
+                {
+                    if (parent.Remote.MaxChangesetId < parent.ChangesetId)
+                    {
+                        long oldChangeset = parent.Remote.MaxChangesetId;
+                        parent.Remote.UpdateRef(parent.GitCommit, parent.ChangesetId);
+                        _stdout.WriteLine("-> existing remote {0} (updated from changeset {1})", parent.Remote.Id, oldChangeset);
+                    }
+                    else
+                    {
+                        _stdout.WriteLine("-> existing remote {0} (up to date)", parent.Remote.Id);
+                    }
                 }
                 _stdout.WriteLine();
             }


Refactor GrowthPushIOS's method interface

--- source/Assets/Plugins/GrowthPush/GrowthPushIOS.cs
+++ source/Assets/Plugins/GrowthPush/GrowthPushIOS.cs
@@ -6,103 +6,77 @@
 public class GrowthPushIOS
 {
 		#if UNITY_IPHONE
-		[DllImport("__Internal")]
-		public static extern void callTrackGrowthPushMessage();
-
-		[DllImport("__Internal")]
-		private static extern void _easyGrowthPush_setApplicationId(int applicationID, string secrect, int environment, bool debug, int option);
-
-		[DllImport("__Internal")]
-		private static extern void _growthPush_setApplicationId(int applicationID, string secrect, int environment, bool debug, int option);
+			[DllImport("__Internal")]
+			private static extern void _easyGrowthPush_setApplicationId(int applicationID, string secrect, int environment, bool debug, int option);

-		[DllImport("__Internal")]
-		private static extern void _easyGrowthPush_requestDeviceToken();
+			[DllImport("__Internal")]
+			private static extern void _easyGrowthPush_trackEvent_value(string name, string val);

-		[DllImport("__Internal")]
-		private static extern void _easyGrowthPush_setDeviceToken(string deviceToken);
+			[DllImport("__Internal")]
+			private static extern void _easyGrowthPush_setTag_value(string name, string val);

-		[DllImport("__Internal")]
-		private static extern void _easyGrowthPush_trackEvent(string name);
+			[DllImport("__Internal")]
+			private static extern void _easyGrowthPush_setDeviceTags();

-		[DllImport("__Internal")]
-		private static extern void _easyGrowthPush_trackEvent_value(string name, string val);
+			[DllImport("__Internal")]
+			private static extern void _easyGrowthPush_clearBadge();

-		[DllImport("__Internal")]
-		private static extern void _easyGrowthPush_setTag(string name);
+			[DllImport("__Internal")]
+			private static extern void _easyGrowthPush_requestDeviceToken();

-		[DllImport("__Internal")]
-		private static extern void _easyGrowthPush_setTag_value(string name, string val);
+			[DllImport("__Internal")]
+			private static extern void _easyGrowthPush_setDeviceToken(string deviceToken);

-		[DllImport("__Internal")]
-		private static extern void _easyGrowthPush_setDeviceTags();
+			// TODO Refactor callback flow
+			[DllImport("__Internal")]
+			public static extern void callTrackGrowthPushMessage();
+		#endif

-		[DllImport("__Internal")]
-		private static extern void _easyGrowthPush_clearBadge();
-		#endif
-		public static void SetApplicationId (int applicationID, string secrect, GrowthPush.Environment environment, bool debug, GrowthPush.Option option)
-		{
+		public static void Initialize(int applicationID, string secrect, GrowthPush.Environment environment, bool debug) {
 				#if UNITY_IPHONE && !UNITY_EDITOR
-				_easyGrowthPush_setApplicationId(applicationID, secrect, (int)environment, debug, (int)option);
+					_easyGrowthPush_setApplicationId(applicationID, secrect, (int)environment, debug;
 				#endif
 		}

-		public static void RequestDeviceToken (Action<string> didRequestDeviceToken)
-		{
+		public static void TrackEvent(string name, string val) {
 				#if UNITY_IPHONE && !UNITY_EDITOR
-						GrowthPushReceiveIOS receive = GrowthPushReceive.getInstance () as GrowthPushReceiveIOS;
-						if(receive != null)
-							receive.DidRegisterForRemoteNotificationsWithDeviceTokenCallback = didRequestDeviceToken;
-
-						_easyGrowthPush_requestDeviceToken();
+					_easyGrowthPush_trackEvent_value(name, val);
 				#endif
 		}

-		public static void SetDeviceToken (string deviceToken)
-		{
+		public static void SetTag(string name, string val) {
 				#if UNITY_IPHONE && !UNITY_EDITOR
-						_easyGrowthPush_setDeviceToken(deviceToken);
+					_easyGrowthPush_setTag_value(name, val);
 				#endif
 		}

-		public static void TrackEvent (string name)
-		{
+		public static void SetDeviceTags() {
 				#if UNITY_IPHONE && !UNITY_EDITOR
-						_easyGrowthPush_trackEvent(name);
+					_easyGrowthPush_setDeviceTags();
 				#endif
 		}

-		public static void TrackEvent (string name, string val)
-		{
+		public static void ClearBadge() {
 				#if UNITY_IPHONE && !UNITY_EDITOR
-						_easyGrowthPush_trackEvent_value(name, val);
+					_easyGrowthPush_clearBadge();
 				#endif
 		}

-		public static void SetTag (string name)
-		{
+		// TODO Check if the following methods are needed.
+		public static void RequestDeviceToken (Action<string> didRequestDeviceToken) {
 				#if UNITY_IPHONE && !UNITY_EDITOR
-						_easyGrowthPush_setTag(name);
+					GrowthPushReceiveIOS receive = GrowthPushReceive.getInstance () as GrowthPushReceiveIOS;
+					if(receive != null)
+						receive.DidRegisterForRemoteNotificationsWithDeviceTokenCallback = didRequestDeviceToken;
+
+					_easyGrowthPush_requestDeviceToken();
 				#endif
 		}

-		public static void SetTag (string name, string val)
-		{
+		public static void SetDeviceToken(string deviceToken) {
 				#if UNITY_IPHONE && !UNITY_EDITOR
-						_easyGrowthPush_setTag_value(name, val);
+					_easyGrowthPush_setDeviceToken(deviceToken);
 				#endif
 		}

-		public static void SetDeviceTags ()
-		{
-				#if UNITY_IPHONE && !UNITY_EDITOR
-						_easyGrowthPush_setDeviceTags();
-				#endif
-		}
-
-		public static void ClearBadge ()
-		{
-				#if UNITY_IPHONE && !UNITY_EDITOR
-						_easyGrowthPush_clearBadge();
-				#endif
-		}
 };


Copy works

Copy works

--- source/Cosmos.System2_Plugs/System/IO/FileImpl.cs
+++ source/Cosmos.System2_Plugs/System/IO/FileImpl.cs
@@ -162,47 +162,30 @@

         public static void Copy(string srcFile, string destFile)
         {
-            if (File.Exists(destFile))
-            {
-                throw new IOException();
-            }
-            else
-            {
-                using (var xFS = new FileStream(srcFile, FileMode.Open))
-                {
-                    var xBuff = new byte[(int)xFS.Length];
-                    var yFS = new FileStream(destFile, FileMode.Create);
-                    yFS.Write(xBuff, 0, xBuff.Length);
-                }
+            try
+            {
+                byte[] srcFileBytes = File.ReadAllBytes(srcFile);
+                File.WriteAllBytes(destFile, srcFileBytes);
+            }
+            catch (IOException ioEx)
+            {
+                throw new IOException("File Copy", ioEx);
             }
         }

         public static void Copy(string srcFile, string destFile, bool overwriting)
         {
-            if (File.Exists(destFile))
-            {
-                if (overwriting)
-                {
-                    File.Delete(destFile);
-                    using (var xFS = new FileStream(srcFile, FileMode.Open))
-                    {
-                        var xBuff = new byte[(int)xFS.Length];
-                        var yFS = new FileStream(destFile, FileMode.Create);
-                        yFS.Write(xBuff, 0, xBuff.Length);
-                    }
-                }
-                else
-                {
-                    throw new IOException();
-                }
-            }
-            else
-            {
-                using (var xFS = new FileStream(srcFile, FileMode.Open))
-                {
-                    var xBuff = new byte[(int)xFS.Length];
-                    var yFS = new FileStream(destFile, FileMode.Create);
-                    yFS.Write(xBuff, 0, xBuff.Length);
+            if (overwriting)
+            {
+                File.Delete(destFile);
+                try
+                {
+                    byte[] srcFileBytes = File.ReadAllBytes(srcFile);
+                    File.WriteAllBytes(destFile, srcFileBytes);
+                }
+                catch (IOException ioEx)
+                {
+                    throw new IOException("File Copy", ioEx);
                 }
             }
         }


Origin game reported as installed when it's not.

--- source/Playnite/Providers/Origin/OriginLibrary.cs
+++ source/Playnite/Providers/Origin/OriginLibrary.cs
@@ -187,7 +187,7 @@
                     }

                     var installPath = GetPathFromPlatformPath(platform.fulfillmentAttributes.installCheckOverride);
-                    if (string.IsNullOrEmpty(installPath))
+                    if (string.IsNullOrEmpty(installPath) || !File.Exists(installPath))
                     {
                         continue;
                     }


Improve xUnit usage

Improve xUnit usage

--- tests/NLog.UnitTests/GetLoggerTests.cs
+++ tests/NLog.UnitTests/GetLoggerTests.cs
@@ -121,43 +121,32 @@

         public class InvalidLogger
         {
-           private InvalidLogger()
-           {
-	       }
+            private InvalidLogger()
+            {
+            }
         }
-
+
+
         [Fact]
         public void InvalidLoggerConfiguration_ThrowsConfigurationException_IfThrowExceptionsFlagIsSet()
         {
-            bool ExceptionThrown = false;
-            try
+            Assert.Throws<NLogConfigurationException>(() =>
             {
                 LogManager.ThrowExceptions = false;
                 LogManager.GetCurrentClassLogger(typeof(InvalidLogger));
-            }
-            catch (NLogConfigurationException)
-            {
-                ExceptionThrown = true;
-            }
-            Assert.True(ExceptionThrown);
+            });
+
         }
-
+
         [Fact]
         public void InvalidLoggerConfiguration_ThrowsConfigurationException_IfThrowExceptionsFlagIsNotSet()
         {
-            bool ExceptionThrown = false;
-            try
+            Assert.Throws<NLogConfigurationException>(() =>
             {
                 LogManager.ThrowExceptions = true;
                 LogManager.GetCurrentClassLogger(typeof(InvalidLogger));
-            }
-            catch (NLogConfigurationException)
-            {
-                ExceptionThrown = true;
-            }
-
-            Assert.True(ExceptionThrown);
-
+            });
+
         }

         public class MyLogger : Logger


Neil - made additional information to open automatically on edit form

--- src/StockportWebapp/Views/stockportgov/Groups/EditGroup.cshtml
+++ src/StockportWebapp/Views/stockportgov/Groups/EditGroup.cshtml
@@ -179,7 +179,7 @@

-                                                <input id="additional-information" type="checkbox">
+                                                <input id="additional-information" type="checkbox" checked="@(!string.IsNullOrEmpty(Model.AdditionalInformation))" />


Removed some unnecessary newlines

Removed some unnecessary newlines

--- src/System.IdentityModel.Tokens.Jwt/JwtSecurityTokenHandler.cs
+++ src/System.IdentityModel.Tokens.Jwt/JwtSecurityTokenHandler.cs
@@ -1156,7 +1156,6 @@
                     continue;

                 string claimType = jwtClaim.Type;
-
                 if (claimType == ClaimTypes.Actor)
                 {
                     if (identity.Actor != null)
@@ -1170,7 +1169,6 @@
                 }

                 Claim claim = new Claim(claimType, jwtClaim.Value, jwtClaim.ValueType, actualIssuer, actualIssuer, identity);
-
                 if (jwtClaim.Properties.Count > 0)
                 {
                     foreach (var kv in jwtClaim.Properties)


Changed to partial since they inherit

Changed to partial since they inherit

--- Skylight/ResetWorld.cs
+++ Skylight/ResetWorld.cs
@@ -1,6 +1,6 @@
 namespace Skylight
 {
-    public class ResetWorld
+    public partial class ResetWorld
     {
         private Out _out;


cloned FinalstreamCommons

cloned FinalstreamCommons

--- GoogleCustomSearchService.cs
+++ GoogleCustomSearchService.cs
@@ -1,43 +1,43 @@
-using FinalstreamCommons.WebServices.Response;
-using NLog;
-using RestSharp;
-
-namespace FinalstreamCommons.WebServices
-{
-    public class GoogleCustomSearchService
-    {
-        private readonly string _apiKey;
-        private readonly string _customSearchEngineId;
-        private readonly Logger _log = LogManager.GetCurrentClassLogger();
-        private readonly RestClient _restClient;
-        protected string ServiceUrl = "https://www.googleapis.com/customsearch/v1";
-
-        /// <summary>
-        ///     新しいインスタンスを初期化します。
-        /// </summary>
-        /// <param name="apiKey"></param>
-        /// <param name="customSearchEngineId"></param>
-        public GoogleCustomSearchService(string apiKey, string customSearchEngineId)
-        {
-            _restClient = new RestClient(ServiceUrl);
-            _apiKey = apiKey;
-            _customSearchEngineId = customSearchEngineId;
-        }
-
-        public GoogleCustomSearchResponse Query(string searchKeyword, string lr = "lang_ja")
-        {
-            var request = new RestRequest(Method.GET);
-            request.AddParameter("key", _apiKey);
-            request.AddParameter("q", searchKeyword);
-            request.AddParameter("cx", _customSearchEngineId);
-            request.AddParameter("lr", lr);
-            request.AddParameter("fields", "items(link,title)");
-
-            var response = _restClient.Execute<GoogleCustomSearchResponse>(request);
-
-            _log.Info("Google Custom Search Request Url:{0}", response.ResponseUri);
-            _log.Debug("Google Custom Search Request Url:{0} Response:{1}", response.ResponseUri, response.Content);
-            return response.Data;
-        }
-    }
+using FinalstreamCommons.WebServices.Response;
+using NLog;
+using RestSharp;
+
+namespace FinalstreamCommons.WebServices
+{
+    public class GoogleCustomSearchService
+    {
+        private readonly string _apiKey;
+        private readonly string _customSearchEngineId;
+        private readonly Logger _log = LogManager.GetCurrentClassLogger();
+        private readonly RestClient _restClient;
+        protected string ServiceUrl = "https://www.googleapis.com/customsearch/v1";
+
+        /// <summary>
+        ///     新しいインスタンスを初期化します。
+        /// </summary>
+        /// <param name="apiKey"></param>
+        /// <param name="customSearchEngineId"></param>
+        public GoogleCustomSearchService(string apiKey, string customSearchEngineId)
+        {
+            _restClient = new RestClient(ServiceUrl);
+            _apiKey = apiKey;
+            _customSearchEngineId = customSearchEngineId;
+        }
+
+        public GoogleCustomSearchResponse Query(string searchKeyword, string lr = "lang_ja")
+        {
+            var request = new RestRequest(Method.GET);
+            request.AddParameter("key", _apiKey);
+            request.AddParameter("q", searchKeyword);
+            request.AddParameter("cx", _customSearchEngineId);
+            request.AddParameter("lr", lr);
+            request.AddParameter("fields", "items(link,title)");
+
+            var response = _restClient.Execute<GoogleCustomSearchResponse>(request);
+
+            _log.Info("Google Custom Search Request Url:{0}", response.ResponseUri);
+            _log.Debug("Google Custom Search Request Url:{0} Response:{1}", response.ResponseUri, response.Content);
+            return response.Data;
+        }
+    }
 }


Use auto-properties in Result class

Use auto-properties in Result class

--- GoogleMusicAPI.NET/Result.cs
+++ GoogleMusicAPI.NET/Result.cs
@@ -30,13 +30,6 @@

     public class Result<T>
     {
-        #region Members
-        private bool _Success;
-        private T _ResultValue;
-        private Clients.IClient _Client;
-        private string _ErrorMessage;
-        private Exception _InnerException;
-        #endregion

         #region Constructor
         /// <summary>
@@ -49,11 +42,11 @@
         /// <param name="innerException">Optional. The underlying exception thrown by the program on a failure. Value should be null if operation was successful.</param>
         internal Result(bool success, T resultValue, Clients.IClient client, string errorMessage = "", Exception innerException = null)
         {
-            _Success = success;
-            _ResultValue = resultValue;
-            _Client = client;
-            _ErrorMessage = errorMessage;
-            _InnerException = innerException;
+            this.Success = success;
+            this.ResultValue = resultValue;
+            this.Client = client;
+            this.ErrorMessage = errorMessage;
+            this.InnerException = innerException;
         }
         #endregion

@@ -62,43 +55,27 @@
         /// <summary>
         /// Gets the boolean value representing the operation's success.
         /// </summary>
-        public bool Success
-        {
-            get { return _Success; }
-        }
+        public bool Success { get; protected set; }

         /// <summary>
         /// Gets the value returned by the operation.
         /// </summary>
-        public T ResultValue
-        {
-            get { return _ResultValue; }
-            set { _ResultValue = value; }
-        }
+        public T ResultValue { get; protected set; }

         /// <summary>
         /// The parent client of the operation executed.
         /// </summary>
-        public Clients.IClient Client
-        {
-            get { return _Client; }
-        }
+        public Clients.IClient Client { get; protected set; }

         /// <summary>
         /// A human-readable error message describing a failure. Value is null if operation was successful.
         /// </summary>
-        public string ErrorMessage
-        {
-            get { return _ErrorMessage; }
-        }
+        public string ErrorMessage { get; protected set; }

         /// <summary>
         /// The underlying exception thrown by the program on a failure. Value is null if operation was successful.
         /// </summary>
-        public Exception InnerException
-        {
-            get { return _InnerException; }
-        }
+        public Exception InnerException { get; protected set; }

         #endregion
     }


Had to update how strings were formatted after testing in Facebook Messenger. I swear this is it before launch as far as the code goes.

--- Dialog/CheckerDialog.csx
+++ Dialog/CheckerDialog.csx
@@ -745,9 +745,7 @@
                 // User may have selected they are using Traffic Manager. If so, tell them that Traffic Manager only works with CNAME records.
                 if (this.appService.UsingTM)
                 {
-                    await context.PostAsync($@"Please note that Traffic Manager does not work with A records.
-                                            Consider configuring a CNAME record for ""{this.appService.CustomHostname}"" with the value of ""{this.appService.TmName + "." + this.appService.TrafficManagerURLEnding}""
-                                            if you wish to use Traffic Manager.");
+                    await context.PostAsync("Please note that Traffic Manager does not work with A records at this time.");
                 }

                 // Loop through all of the A records and check if they match the IP of the App Service
@@ -772,33 +770,30 @@
                     if (this.appService.HostnameAwverifyCNameRecords.Contains(fullAppServiceURLDNSStyle))
                     {
                         // We found an awverify CNAME record, so tell the user we found this. They should be able to add the hostname to the App Service.
-                        await context.PostAsync($@"I did find a CNAME record from {awverifyHostname} to {fullAppServiceURL},
-                                                which allows you to pass the App Service validation process when using an A record for the main domain.");
-                        await context.PostAsync($@"If you are looking to add the custom hostname of ""{this.appService.CustomHostname}"" to the ""{this.appService.AppServiceName}"" App Service,
-                                                you have everything set up correctly and can proceed with doing that.");
+                        await context.PostAsync($"I did find a CNAME record from \"{awverifyHostname}\" to \"{fullAppServiceURL}\", which allows you to pass the App Service validation process when using an A record for the main domain.");
+                        await context.PostAsync($"If you are looking to add the custom hostname of \"{this.appService.CustomHostname}\" to the \"{this.appService.AppServiceName}\" App Service, you have everything set up correctly and can proceed with doing that.");
                     }
                     else if (this.appService.HostnameTxtRecords.Contains(fullAppServiceURL))
                     {
                         // We found TXT record, so tell the user we found this. They should be able to add the hostname to the App Service.
                         await context.PostAsync($"I did find a TXT record for the custom domain that maps to the App Service hostname of \"{fullAppServiceURL}\"");
-                        await context.PostAsync($@"If you are looking to add the custom hostname of ""{this.appService.CustomHostname}"" to the ""{this.appService.AppServiceName}"" App Service,
-                                                you have everything set up correctly and can proceed with doing that.");
+                        await context.PostAsync($"If you are looking to add the custom hostname of \"{this.appService.CustomHostname}\" to the \"{this.appService.AppServiceName}\" App Service, you have everything set up correctly and can proceed with doing that.");
                     }
                     else
                     {
                         // We could not find an awverify CNAME or a proper TXT record that points to the App Service
-                        string message1 = $"I was unable to find a proper TXT or awverify CNAME record with the value of \"{fullAppServiceURL}\", which will prevent you from adding the custom hostname of \"{this.appService.CustomHostname}\" to your App Service.\n\n";
+                        string didNotFindTXTorAwverify = $"I was unable to find a proper TXT or awverify CNAME record with the value of \"{fullAppServiceURL}\", which will prevent you from adding the custom hostname of \"{this.appService.CustomHostname}\" to your App Service.\n\n";

                         // However, if the user has already added the domain to the App Service, those records aren't needed. Those are only to pass the validation needed to add a hostname to an App Service
-                        string message2 = $"If you have already added the custom hostname of \"{this.appService.CustomHostname}\" to your App Service, then you can ignore these next directions, as they will only help to pass the hostname validation used in App Services.\n\n";
+                        string stepsForAddingOtherRecords = $"If you have already added the custom hostname of \"{this.appService.CustomHostname}\" to your App Service, then you can ignore these next directions, as they will only help to pass the hostname validation used in App Services.\n\n";

                         // Tell the user what they need to configure in regards to the TXT or awverify CNAME record. Also link to the online guide on how to configure the records.
-                        message2 += $"For a TXT record, configure a TXT record for \"{this.appService.CustomHostname}\" with the value of \"{fullAppServiceURL}\"\n\n";
-                        message2 += $"For an awverify CNAME record, configure a CNAME record for \"{awverifyHostname}\" with the value of \"{fullAppServiceURL}\"\n\n";
-                        string message3 = "For more information, please visit: https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-custom-domain-name#a";
-                        await context.PostAsync(message1);
-                        await context.PostAsync(message2);
-                        await context.PostAsync(message3);
+                        stepsForAddingOtherRecords += $"For a TXT record, configure a TXT record for \"{this.appService.CustomHostname}\" with the value of \"{fullAppServiceURL}\"\n\n";
+                        stepsForAddingOtherRecords += $"For an awverify CNAME record, configure a CNAME record for \"{awverifyHostname}\" with the value of \"{fullAppServiceURL}\"\n\n";
+                        string moreInfoARecords = "For more information, please visit: https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-custom-domain-name#a";
+                        await context.PostAsync(didNotFindTXTorAwverify);
+                        await context.PostAsync(stepsForAddingOtherRecords);
+                        await context.PostAsync(moreInfoARecords);
                     }

                 }
@@ -807,9 +802,9 @@
                     // Loop through all of the App Services' IP addresses (should only be 1 inbound IP). Print out how they should configure the record.
                     foreach (string ipAddress in this.appService.IPAddresses)
                     {
-                        await context.PostAsync($@"The DNS A record configured does not match the IP address of the Azure App Service.
-                                                If you want traffic to route towards your App Service,
-                                                consider updating the DNS A record for ""{this.appService.CustomHostname}"" to point to the IP address of {ipAddress}");
+                        string aRecordNoMatchIP = "The DNS A record configured does not match the IP address of the Azure App Service.\n\n";
+                        aRecordNoMatchIP += $"If you want traffic to route towards your App Service, consider updating the DNS A record for \"{this.appService.CustomHostname}\" to point to the IP address of {ipAddress}";
+                        await context.PostAsync(aRecordNoMatchIP);
                     }

                     string awverifyHostname = "awverify." + this.appService.CustomHostname;
@@ -817,32 +812,32 @@
                     if (this.appService.HostnameAwverifyCNameRecords.Contains(fullAppServiceURLDNSStyle))
                     {
                         // We found an awverify CNAME record, so tell the user we found this. Still remind them to configure the A record.
-                        await context.PostAsync($@"I did find a CNAME record from {awverifyHostname} to {fullAppServiceURL}");
-                        await context.PostAsync($@"If you are looking to have traffic towards the custom hostname of ""{this.appService.CustomHostname}"" go to the ""{this.appService.AppServiceName}"" App Service,
-                                                be sure to configure the A record properly.");
+                        string foundAwverifyRecord = $"I did find a CNAME record from \"{awverifyHostname}\" to \"{fullAppServiceURL}\"\n\n";
+                        foundAwverifyRecord += $"If you are looking to have traffic towards the custom hostname of \"{this.appService.CustomHostname}\" go to the \"{this.appService.AppServiceName}\" App Service, be sure to configure the A record properly.";
+                        await context.PostAsync(foundAwverifyRecord);
                     }
                     else if (this.appService.HostnameTxtRecords.Contains(fullAppServiceURL))
                     {
                         // We found TXT record, so tell the user we found this. Still remind them to configure the A record.
-                        await context.PostAsync($"I did find a TXT record for the custom domain that maps to the App Service hostname of \"{fullAppServiceURL}\"");
-                        await context.PostAsync($@"If you are looking to have traffic towards the custom hostname of ""{this.appService.CustomHostname}"" go to the ""{this.appService.AppServiceName}"" App Service,
-                                                be sure to configure the A record properly.");
+                        string foundTXTRecord = $"I did find a TXT record for the custom domain that maps to the App Service hostname of \"{fullAppServiceURL}\"\n\n";
+                        foundTXTRecord += $"If you are looking to have traffic towards the custom hostname of \"{ this.appService.CustomHostname}\" go to the \"{this.appService.AppServiceName}\" App Service, be sure to configure the A record properly.";
+                        await context.PostAsync(foundTXTRecord);
                     }
                     else
                     {
                         // We could not find an awverify CNAME or a proper TXT record that points to the App Service
-                        string message1 = $"I was unable to find a proper TXT or awverify CNAME record with the value of \"{fullAppServiceURL}\"";
-                        message1 += $", which will prevent you from adding the custom hostname of \"{this.appService.CustomHostname}\" to your App Service.\n\n";
+                        string didNotFindTXTorAwverify = $"I was unable to find a proper TXT or awverify CNAME record with the value of \"{fullAppServiceURL}\"";
+                        didNotFindTXTorAwverify += $", which will prevent you from adding the custom hostname of \"{this.appService.CustomHostname}\" to your App Service.\n\n";

                         // However, if the user has already added the domain to the App Service, those records aren't needed. Those are only to pass the validation needed to add a hostname to an App Service
-                        string message2 = $"If you have already added the custom hostname of \"{this.appService.CustomHostname}\" to your App Service,";
-                        message2 += " then you can ignore these next directions, as they will only help to pass the hostname validation used in App Services.\n\n";
+                        string stepsForAddingOtherRecords = $"If you have already added the custom hostname of \"{this.appService.CustomHostname}\" to your App Service,";
+                        stepsForAddingOtherRecords += " then you can ignore these next directions, as they will only help to pass the hostname validation used in App Services.\n\n";

                         // Tell the user what they need to configure in regards to the TXT or awverify CNAME record. Also link to the online guide on how to configure the records.
-                        message2 += $"For a TXT record, configure a TXT record for \"{this.appService.CustomHostname}\" with the value of \"{fullAppServiceURL}\"\n\n";
-                        message2 += $"For an awverify CNAME record, configure a CNAME record for \"{awverifyHostname}\" with the value of \"{fullAppServiceURL}\"";
-                        await context.PostAsync(message1);
-                        await context.PostAsync(message2);
+                        stepsForAddingOtherRecords += $"For a TXT record, configure a TXT record for \"{this.appService.CustomHostname}\" with the value of \"{fullAppServiceURL}\"\n\n";
+                        stepsForAddingOtherRecords += $"For an awverify CNAME record, configure a CNAME record for \"{awverifyHostname}\" with the value of \"{fullAppServiceURL}\"";
+                        await context.PostAsync(didNotFindTXTorAwverify);
+                        await context.PostAsync(stepsForAddingOtherRecords);
                     }

                     // Provide general link on configuring DNS A records for App Services
@@ -868,22 +863,23 @@
                             if (this.appService.TrafficManagerCNameRecords.Contains(fullAppServiceURLDNSStyle))
                             {
                                 // The App Service is an endpoint of the Traffic Manager. They should be able to add the hostname to the App Service now.
-                                await context.PostAsync($@"The ""{this.appService.TmName}"" Traffic Manager has the ""{this.appService.AppServiceName}"" App Service as an endpoint.
-                                                        If the App Service has the hostname of ""{fullTrafficManagerURL}"" added to it,
-                                                        then you will be able to add the custom hostname of ""{this.appService.CustomHostname}"" to the App Service.");
+                                string appServiceIsEndpointOfTM = $"The \"{this.appService.TmName}\" Traffic Manager has the \"{this.appService.AppServiceName}\" App Service as an endpoint.\n\n";
+                                appServiceIsEndpointOfTM += $"If the App Service has the hostname of \"{fullTrafficManagerURL}\" added to it, then you will be able to add the custom hostname of \"{ this.appService.CustomHostname}\" to the App Service.";
+                                await context.PostAsync(appServiceIsEndpointOfTM);
                             }
                             else
                             {
                                 // The App Service is not the primary endpoint of the Traffic Manager. However, it could be one of the secondary endpoints.
-                                await context.PostAsync($@"The ""{this.appService.TmName}"" Traffic Manager does not have the ""{this.appService.AppServiceName}"" App Service as the primary endpoint.
-                                                        If you have not added the App Service as an endpoint of the Traffic manager, you should still be able to add the hostname to the App Service.
-                                                        If the App Service is not an endpoint of the Traffic Manager yet, consider adding the App Service as an Azure endpoint in the Traffic Manager.");
+                                string appServiceIsNotEndpointOfTM = $"The \"{this.appService.TmName}\" Traffic Manager does not have the \"{this.appService.AppServiceName}\" App Service as the primary endpoint.\n\n";
+                                appServiceIsNotEndpointOfTM += "If you have not added the App Service as an endpoint of the Traffic manager, you should still be able to add the hostname to the App Service.\n\n";
+                                appServiceIsNotEndpointOfTM += "If the App Service is not an endpoint of the Traffic Manager yet, consider adding the App Service as an Azure endpoint in the Traffic Manager.";
+                                await context.PostAsync(appServiceIsNotEndpointOfTM);
                             }
                         }
                         else
                         {
                             // The CNAME does not match the Traffic Manager URL, so that's not configured right.
-                            await context.PostAsync($"The DNS CNAME record configured, which points to {cNameRecord}, does not match the Traffic Manager URL of \"{fullTrafficManagerURL}\". If you plan to use Traffic Manager, consider updating the CNAME record.");
+                            await context.PostAsync($"The DNS CNAME record configured, which points to \"{cNameRecord}\", does not match the Traffic Manager URL of \"{fullTrafficManagerURL}\". If you plan to use Traffic Manager, consider updating the CNAME record.");
                             // Tell the user how to configure the CNAME record and link to our online document on that
                             await context.PostAsync($"For the CNAME record, configure it so that the hostname of \"{this.appService.CustomHostname}\" has the value of \"{fullTrafficManagerURL}\"");
                             await context.PostAsync("For more information on configuring your hostname with Traffic Manager, visit this guide: https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-traffic-manager-custom-domain-name#add-a-dns-record-for-your-custom-domain");
@@ -893,17 +889,19 @@
                             {
                                 if (this.appService.IsASE)
                                 {
-                                    await context.PostAsync($@"The DNS CNAME record configured, which points to {cNameRecord}, matches the App Service URL.
-                                                            If you wish to continue to use Traffic Manager with this hostname, consider updating the CNAME record as mentioned above.
-                                                            If you do not wish to use Traffic Manager, you are currently able to add the hostname of ""{this.appService.CustomHostname}""
-                                                            to the ""{this.appService.AppServiceName}"" App Service in the ""{this.appService.AseName}"" App Service Environment.");
+                                    string hostnameRecordMatchesAppServiceASE = $"The DNS CNAME record configured, which points to \"{cNameRecord}\", matches the App Service URL.\n\n";
+                                    hostnameRecordMatchesAppServiceASE += "If you wish to continue to use Traffic Manager with this hostname, consider updating the CNAME record as mentioned above.\n\n";
+                                    hostnameRecordMatchesAppServiceASE += $"If you do not wish to use Traffic Manager, you are currently able to add the hostname of \"{this.appService.CustomHostname}\" ";
+                                    hostnameRecordMatchesAppServiceASE += $"to the \"{this.appService.AppServiceName}\" App Service in the \"{this.appService.AseName}\" App Service Environment.";
+
+                                    await context.PostAsync(hostnameRecordMatchesAppServiceASE);
                                 }
                                 else
                                 {
-                                    await context.PostAsync($@"The DNS CNAME record configured, which points to {cNameRecord}, matches the App Service URL.
-                                                            If you wish to continue to use Traffic Manager with this hostname, consider updating the CNAME record as mentioned above.
-                                                            If you do not wish to use Traffic Manager, you are currently able to add the hostname of ""{this.appService.CustomHostname}""
-                                                            to the ""{this.appService.AppServiceName}"" App Service.");
+                                    string hostnameRecordMatchesAppService = $"The DNS CNAME record configured, which points to \"{cNameRecord}\", matches the App Service URL.\n\n";
+                                    hostnameRecordMatchesAppService += "If you wish to continue to use Traffic Manager with this hostname, consider updating the CNAME record as mentioned above.\n\n";
+                                    hostnameRecordMatchesAppService += $"If you do not wish to use Traffic Manager, you are currently able to add the hostname of \"{this.appService.CustomHostname}\" to the \"{ this.appService.AppServiceName}\" App Service.";
+                                    await context.PostAsync(hostnameRecordMatchesAppService);
                                 }
                             }
                             // Also check if the CNAME matches the SNI endpoint for the App Service, which is needed when there is a combination of IP-based and SNI-based SSL endpoints on the App Service
@@ -911,15 +909,17 @@
                             {
                                 if (this.appService.IsASE)
                                 {
-                                    await context.PostAsync($@"The DNS CNAME record configured, which points to {cNameRecord}, matches the SNI endpoint for the App Service.
-                                                            However, you will not be able to add the hostname of ""{this.appService.CustomHostname}"" to the ""{this.appService.AppServiceName}"" App Service.
-                                                            If you wish to continue to use Traffic Manager with this hostname, consider updating the CNAME record as mentioned above.");
+                                    string hostnameRecordMatchesSNIEndpointASE = $"The DNS CNAME record configured, which points to \"{cNameRecord}\", matches the SNI endpoint for the App Service.\n\n";
+                                    hostnameRecordMatchesSNIEndpointASE += $"However, you will not be able to add the hostname of \"{this.appService.CustomHostname}\" to the \"{this.appService.AppServiceName}\" App Service.\n\n";
+                                    hostnameRecordMatchesSNIEndpointASE += "If you wish to continue to use Traffic Manager with this hostname, consider updating the CNAME record as mentioned above.";
+                                    await context.PostAsync(hostnameRecordMatchesSNIEndpointASE);
                                 }
                                 else
                                 {
-                                    await context.PostAsync($@"The DNS CNAME record configured, which points to {cNameRecord}, matches the SNI endpoint for the App Service.
-                                                            However, you will not be able to add the hostname of ""{this.appService.CustomHostname}"" to the ""{this.appService.AppServiceName}"" App Service.
-                                                            If you wish to continue to use Traffic Manager with this hostname, consider updating the CNAME record as mentioned above.");
+                                    string hostnameRecordMatchesSNIEndpoint = $"The DNS CNAME record configured, which points to \"{cNameRecord}\", matches the SNI endpoint for the App Service.\n\n";
+                                    hostnameRecordMatchesSNIEndpoint += $"However, you will not be able to add the hostname of \"{this.appService.CustomHostname}\" to the \"{this.appService.AppServiceName}\" App Service.\n\n";
+                                    hostnameRecordMatchesSNIEndpoint += "If you wish to continue to use Traffic Manager with this hostname, consider updating the CNAME record as mentioned above.";
+                                    await context.PostAsync(hostnameRecordMatchesSNIEndpoint);
                                 }
                             }
                         }
@@ -931,13 +931,13 @@
                         {
                             if (this.appService.IsASE)
                             {
-                                await context.PostAsync($@"The DNS CNAME record configured, which points to {cNameRecord}, matches the App Service URL.
-                                                        This CNAME record is configured properly for the ""{this.appService.AppServiceName}"" App Service in the ""{this.appService.AseName}"" App Service Environment.");
+                                string hostnameRecordMatchesAppServiceASE = $"The DNS CNAME record configured, which points to \"{cNameRecord}\", matches the App Service URL.\n\n";
+                                hostnameRecordMatchesAppServiceASE += $"This CNAME record is configured properly for the \"{this.appService.AppServiceName}\" App Service in the \"{this.appService.AseName}\" App Service Environment.";
+                                await context.PostAsync(hostnameRecordMatchesAppServiceASE);
                             }
                             else
                             {
-                                await context.PostAsync($@"The DNS CNAME record configured, which points to {cNameRecord}, matches the App Service URL.
-                                                        This CNAME record is configured properly for the ""{this.appService.AppServiceName}"" App Service.");
+                                await context.PostAsync($"The DNS CNAME record configured, which points to \"{cNameRecord}\", matches the App Service URL. This CNAME record is configured properly for the \"{this.appService.AppServiceName}\" App Service.");
                             }
                         }
                         // Also check if the CNAME matches the SNI-based SSL endpoint for the App Service. This is used if the hostname uses an SNI binding where the App Service also has an IP-based SSL binding
@@ -945,17 +945,19 @@
                         {
                             if (this.appService.IsASE)
                             {
-                                await context.PostAsync($@"The DNS CNAME record configured, which points to {cNameRecord}, matches the SNI endpoint for the App Service.
-                                                        This CNAME record is configured properly for use on the ""{this.appService.AppServiceName}"" App Service in the ""{this.appService.AseName}"" App Service Environment if this hostname is using an SNI-based SSL binding..
-                                                        However, you will not be able to add the hostname of ""{this.appService.CustomHostname}"" to the ""{this.appService.AppServiceName}"" App Service with this record.
-                                                        This record is only used after the hostname is added to the App Service.");
+                                string hostnameRecordMatchesSNIASE = $"The DNS CNAME record configured, which points to \"{cNameRecord}\", matches the SNI endpoint for the App Service.\n\n";
+                                hostnameRecordMatchesSNIASE += $"This CNAME record is configured properly for use on the \"{this.appService.AppServiceName}\" App Service in the \"{this.appService.AseName}\" App Service Environment if this hostname is using an SNI-based SSL binding.\n\n";
+                                hostnameRecordMatchesSNIASE += $"However, you will not be able to add the hostname of \"{this.appService.CustomHostname}\" to the \"{this.appService.AppServiceName}\" App Service with this record.\n\n";
+                                hostnameRecordMatchesSNIASE += "This record is only used after the hostname is added to the App Service.";
+                                await context.PostAsync(hostnameRecordMatchesSNIASE);
                             }
                             else
                             {
-                                await context.PostAsync($@"The DNS CNAME record configured, which points to {cNameRecord}, matches the SNI endpoint for the App Service.
-                                                        This CNAME record is configured properly for use on the ""{this.appService.AppServiceName}"" App Service if this hostname is using an SNI-based SSL binding.
-                                                        However, you will not be able to add the hostname of ""{this.appService.CustomHostname}"" to the ""{this.appService.AppServiceName}"" App Service with this record.
-                                                        This record is only used after the hostname is added to the App Service.");
+                                string hostnameRecordMatchesSNI = $"The DNS CNAME record configured, which points to \"{cNameRecord}\", matches the SNI endpoint for the App Service.\n\n";
+                                hostnameRecordMatchesSNI += $"This CNAME record is configured properly for use on the \"{this.appService.AppServiceName}\" App Service if this hostname is using an SNI-based SSL binding.\n\n";
+                                hostnameRecordMatchesSNI += $"However, you will not be able to add the hostname of \"{this.appService.CustomHostname}\" to the \"{this.appService.AppServiceName}\" App Service with this record.\n\n";
+                                hostnameRecordMatchesSNI += "This record is only used after the hostname is added to the App Service.";
+                                await context.PostAsync(hostnameRecordMatchesSNI);
                             }
                             await context.PostAsync("For more information on why this CNAME configuration is acceptable, see this document: https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-configure-ssl-certificate#step-3-change-your-domain-name-mapping-ip-based-ssl-only");
                         }
@@ -969,17 +971,19 @@
                             if (this.appService.HostnameAwverifyCNameRecords.Contains(fullAppServiceURLDNSStyle))
                             {
                                 // We did find an awverify record, so they can at least add the desired hostname to the App Service, even if traffic to that hostname doesn't go to the App Service.
-                                await context.PostAsync($@"However, we did find a CNAME record from {awverifyHostname} to {fullAppServiceURL},
-                                                    which allows you to pass the App Service validation process without adjusting the actual hostname.
-                                                    You will need to eventually switch the hostname of ""{this.appService.CustomHostname}"" to point towards the App Service URL of ""{fullAppServiceURL}""");
+                                string foundAwverifyRecord = $"However, we did find a CNAME record from \"{awverifyHostname}\" to \"{fullAppServiceURL}\", ";
+                                foundAwverifyRecord += "which allows you to pass the App Service validation process without adjusting the actual hostname.\n\n";
+                                foundAwverifyRecord += $"You will need to eventually switch the hostname of \"{this.appService.CustomHostname}\" to point towards the App Service URL of \"{fullAppServiceURL}\".";
+                                await context.PostAsync(foundAwverifyRecord);
                             }
                             else
                             {
                                 // We didn't find an awverify record either. Tell them how to configure either the regular CNAME or an awverify CNAME
                                 await context.PostAsync("You have two options to pass the hostname validation for App Services.");
                                 await context.PostAsync($"Option 1: Configure a CNAME record for \"{this.appService.CustomHostname}\" with the value of \"{fullAppServiceURL}\".");
-                                await context.PostAsync($@"Option 2: For an awverify CNAME record, configure a CNAME record for ""{awverifyHostname}"" with the value of ""{fullAppServiceURL}"".
-                                                        You will need to eventually switch the hostname of ""{this.appService.CustomHostname}"" to point towards the App Service URL of ""{fullAppServiceURL}"".");
+                                string option2 = $"Option 2: For an awverify CNAME record, configure a CNAME record for \"{awverifyHostname}\" with the value of \"{fullAppServiceURL}\"\n\n";
+                                option2 += $"You will need to eventually switch the hostname of \"{this.appService.CustomHostname}\" to point towards the App Service URL of \"{fullAppServiceURL}\".";
+                                await context.PostAsync(option2);
                             }

                             // Provide the online document that lists out how to configure the CNAME records
@@ -1011,13 +1015,11 @@
             // We couldn't find the IP address of the App Service, so we cannot confirm that it exists
             if (this.appService.IsASE)
             {
-                await context.PostAsync($@"I was not able to find the IP address for the ""{this.appService.AppServiceName}"" App Service in the ""{this.appService.AseName}"" App Service Environment.
-                                            Please check that the App Service Environment and/or the App Service exist.");
+                await context.PostAsync($"I was not able to find the IP address for the \"{this.appService.AppServiceName}\" App Service in the \"{this.appService.AseName}\" App Service Environment. Please check that the App Service Environment and/or the App Service exist.");
             }
             else
             {
-                await context.PostAsync($@"I was not able to find the IP address for the ""{this.appService.AppServiceName}"" App Service.
-                                            Please check that this App Service exists.");
+                await context.PostAsync($"I was not able to find the IP address for the \"{this.appService.AppServiceName}\" App Service. Please check that this App Service exists.");
             }

         }


Add spaces.

Add spaces.

--- src/Algorithms.Collections/SquareMatrix.cs
+++ src/Algorithms.Collections/SquareMatrix.cs
@@ -9,7 +9,7 @@
 			ValidateAreEqualSquare(A, B);

 			int length = A.GetLength(0);
-			var C = new T[length,length];
+			var C = new T[length, length];

 			for (int i = 0; i < length; i++)
 			{
@@ -29,7 +29,7 @@
 			ValidateAreEqualSquare(left, right);

 			int length = left.GetLength(0);
-			var result = new T[length,length];
+			var result = new T[length, length];

 			for (int row = 0; row < left.GetLength(0); row++)
 			{


Add NSBPublisher to configured components

--- src/Aggregates.NET.Domain/Domain.cs
+++ src/Aggregates.NET.Domain/Domain.cs
@@ -58,6 +58,7 @@
             context.Container.ConfigureComponent<DefaultRepositoryFactory>(DependencyLifecycle.SingleInstance);
             context.Container.ConfigureComponent<DefaultRouteResolver>(DependencyLifecycle.SingleInstance);
             context.Container.ConfigureComponent<Processor>(DependencyLifecycle.SingleInstance);
+            context.Container.ConfigureComponent<NSBPublisher>(DependencyLifecycle.SingleInstance);

             context.Container.ConfigureComponent<ResolveStronglyConflictResolver>(DependencyLifecycle.SingleInstance);
             context.Container.ConfigureComponent<ResolveWeaklyConflictResolver>(DependencyLifecycle.SingleInstance);


Minor refactor on NhUnitOfWork

Minor refactor on NhUnitOfWork

--- src/Abp.NHibernate/NHibernate/Uow/NhUnitOfWork.cs
+++ src/Abp.NHibernate/NHibernate/Uow/NhUnitOfWork.cs
@@ -54,9 +54,10 @@
             Session.Flush();
         }

-        public async override Task SaveChangesAsync()
+        public override Task SaveChangesAsync()
         {
             Session.Flush();
+            return Task.FromResult(0);
         }

         /// <summary>
@@ -71,9 +72,10 @@
             }
         }

-        protected async override Task CompleteUowAsync()
+        protected override Task CompleteUowAsync()
         {
             CompleteUow();
+            return Task.FromResult(0);
         }

         /// <summary>


accounts grid style

accounts grid style

--- src/AccountGoWeb/Views/Financials/Accounts.cshtml
+++ src/AccountGoWeb/Views/Financials/Accounts.cshtml
@@ -3,7 +3,7 @@

-

+