Updated backup handler to use the new name for control-files

--- Duplicati/Library/Main/Operation/BackupHandler.cs
+++ Duplicati/Library/Main/Operation/BackupHandler.cs
@@ -263,8 +263,8 @@
 		            	m_results.AddedFolders + m_results.ModifiedFolders + m_results.DeletedFolders +
 		            	m_results.AddedSymlinks + m_results.ModifiedSymlinks + m_results.DeletedSymlinks) > 0)
 		            {
-	                    if (!string.IsNullOrEmpty(m_options.SignatureControlFiles))
-	                        foreach (var p in m_options.SignatureControlFiles.Split(new char[] { System.IO.Path.PathSeparator }, StringSplitOptions.RemoveEmptyEntries))
+	                    if (!string.IsNullOrEmpty(m_options.ControlFiles))
+	                        foreach (var p in m_options.ControlFiles.Split(new char[] { System.IO.Path.PathSeparator }, StringSplitOptions.RemoveEmptyEntries))
 	                            m_filesetvolume.AddControlFile(p, m_options.GetCompressionHintFromFilename(p));

 	                    m_database.WriteFileset(m_filesetvolume, m_transaction);


Update

Update

--- main/dbms_gui_02/dbms_gui_02/dbms_gui_02/MainForm.cs
+++ main/dbms_gui_02/dbms_gui_02/dbms_gui_02/MainForm.cs
@@ -170,7 +170,7 @@
             try
             {
                 string cellValue = Convert.ToString(cell.Value);
-                if (string.IsNullOrWhiteSpace(cellValue))
+                if (!string.IsNullOrWhiteSpace(cellValue))
                 {
                     if (db.ContainsTable(cellValue))
                     {


push updated nancy version in cake build script

--- build.cake
+++ build.cake
@@ -273,7 +273,23 @@
         Arguments = string.Format("tag \"v{0}\"", version)
       });
     }
-
+
+    //Push
+    if (nogit)
+    {
+      Information("git push origin master");
+      Information("git push --tags");
+    }
+    else
+    {
+      StartProcess("git", new ProcessSettings {
+        Arguments = "push origin master"
+      });
+
+      StartProcess("git", new ProcessSettings {
+        Arguments = "push --tags"
+      });
+    }
 });

 Task("Update-Version")


Finish AnotherTry

Finish AnotherTry

--- build.cake
+++ build.cake
@@ -82,7 +82,7 @@

 		NuGetPush (newestNupkg, new NuGetPushSettings {
 			Verbosity = NuGetVerbosity.Detailed,
-			Source = "https://www.nuget.org/api/v2/",
+			Source = "nuget.org",
 			ApiKey = apiKey
 		});
 	});


Make sure .artifacts file gets uploaded

Make sure .artifacts file gets uploaded

--- build.cake
+++ build.cake
@@ -71,7 +71,7 @@

         if (AppVeyor.IsRunningOnAppVeyor)
         {
-            foreach (var file in GetFiles(outputDir + "**/*.*"))
+            foreach (var file in GetFiles(outputDir + "**/*"))
                 AppVeyor.UploadArtifact(file.FullPath);
         }


Travis fix in wrong place

Travis fix in wrong place

--- build.cake
+++ build.cake
@@ -139,6 +139,9 @@
     .IsDependentOn("Restore")
     .Does(() =>
     {
+        if (isTravis)
+            FixNUnitLoggerPaths();
+
         if (isWindows)
         {
             Build(mainProject);
@@ -174,9 +177,6 @@
             settings.ArgumentCustomization = args => args
                 .Append("--logger:nunit");
         }
-
-        if (isTravis)
-            FixNUnitLoggerPaths();

         DotNetCoreTest(testProject, settings);


Make sure to add the debug symbols to the nuget packages.

--- build.cake
+++ build.cake
@@ -82,7 +82,8 @@
     var settings = new DotNetCorePackSettings
     {
         OutputDirectory = "./artifacts/",
-        Configuration = configuration
+        Configuration = configuration,
+		IncludeSymbols = true
     };

     var projectFilePaths = GetFiles("./**/*.csproj").Where(p => !p.FullPath.Contains("Test") && !p.FullPath.Contains("packages") &&!p.FullPath.Contains("tools"));


Updating Cake to work on AppVeyor

Updating Cake to work on AppVeyor

--- build.cake
+++ build.cake
@@ -418,7 +418,12 @@
     {
         if(IsDotNetCoreInstalled)
         {
-            CopyFile("src/NUnitEngine/nunit.engine.netstandard/bin/"+configuration+"/nunit.engine.netstandard."+packageVersion+".nupkg", PACKAGE_DIR);
+            var nuget = "nunit.engine.netstandard." + packageVersion + ".nupkg";
+            var src   = "src/NUnitEngine/nunit.engine.netstandard/bin/" + configuration + "/" + nuget;
+            var dest  = PACKAGE_DIR + nuget;
+
+            CreateDirectory(PACKAGE_DIR);
+            CopyFile(src, dest);
         }
     });


Prevent incoming packet sequencing + coding style + remove useless ctor

--- source/Cosmos.System2/Network/IPv4/TCP/TCPClient.cs
+++ source/Cosmos.System2/Network/IPv4/TCP/TCPClient.cs
@@ -100,22 +100,13 @@
         /// <returns>TcpClient</returns>
         internal static TcpClient GetClient(ushort destPort)
         {
-            if (clients.ContainsKey((uint)destPort) == true)
+            if (clients.ContainsKey((uint)destPort))
             {
                 return clients[(uint)destPort];
             }

             return null;
         }
-
-        /// <summary>
-        /// Create new instance of the <see cref="TcpClient"/> class.
-        /// </summary>
-        /// <exception cref="ArgumentOutOfRangeException">Thrown on fatal error (contact support).</exception>
-        /// <exception cref="ArgumentException">Thrown if TcpClient with localPort 0 exists.</exception>
-        public TcpClient()
-            : this(0)
-        { }

         /// <summary>
         /// Create new instance of the <see cref="TcpClient"/> class.
@@ -213,7 +204,7 @@
                 }
             }

-            if (clients.ContainsKey((uint)localPort) == true)
+            if (clients.ContainsKey((uint)localPort))
             {
                 clients.Remove((uint)localPort);
             }
@@ -361,7 +352,7 @@
                 {
                     Status = Status.CLOSED;
                 }
-                else if (packet.TCPFlags == (byte)Flags.ACK) //only ACK
+                else if (packet.TCPFlags == (byte)Flags.ACK && packet.SequenceNumber > LastSequenceNumber) //only ACK
                 {
                     throw new NotImplementedException("TCP sequencing is not supported yet! (received packet size is too huge)");
                 }


Bump version to 0.9.2

Bump version to 0.9.2

--- build.cake
+++ build.cake
@@ -21,7 +21,7 @@
 // Define product name and version
 var product = "Htc.Vita.Core";
 var companyName = "HTC";
-var version = "0.9.1";
+var version = "0.9.2";
 var semanticVersion = string.Format("{0}.{1}", version, revision);
 var ciVersion = string.Format("{0}.{1}", version, "0");
 var nugetTags = new [] {"htc", "vita", "core"};


Prevent packets length upper than 1500 for now

Need to implement packet sequencing before.

--- source/Cosmos.System2/Network/IPv4/TCP/TCPClient.cs
+++ source/Cosmos.System2/Network/IPv4/TCP/TCPClient.cs
@@ -216,6 +216,10 @@
             {
                 throw new InvalidOperationException("Must establish a default remote host by calling Connect() before using this Send() overload");
             }
+            if (data.Length > 1500)
+            {
+                throw new NotImplementedException("Data length must be less than 1500 bytes (yet!)");
+            }

             var packet = new TCPPacket(source, destination, (ushort)localPort, (ushort)destinationPort, SequenceNumber, AckNumber, 20, 0x18, 0xFAF0, 0, data);
             OutgoingBuffer.AddPacket(packet);


Copy Microsoft.Build.Tasks.CodeAnalysis.dll and dependencies into OmniSharp

--- build.cake
+++ build.cake
@@ -176,18 +176,31 @@

     CopyDirectory(msbuildNetCoreAppInstallFolder, msbuildNetCoreAppFolder);

-    // Finally, copy Microsoft.CSharp.Core.targets from Microsoft.Net.Compilers
-    var csharpTargetsName = "Microsoft.CSharp.Core.targets";
-    var csharpTargetsPath = CombinePaths(env.Folders.Tools, "Microsoft.Net.Compilers", "tools", csharpTargetsName);
-
-    var csharpTargetsNet46Folder = CombinePaths(msbuildNet46Folder, "Roslyn");
-    var csharpTargetsNetCoreAppFolder = CombinePaths(msbuildNetCoreAppFolder, "Roslyn");
-
-    CreateDirectory(csharpTargetsNet46Folder);
-    CreateDirectory(csharpTargetsNetCoreAppFolder);
-
-    CopyFile(csharpTargetsPath, CombinePaths(csharpTargetsNet46Folder, csharpTargetsName));
-    CopyFile(csharpTargetsPath, CombinePaths(csharpTargetsNetCoreAppFolder,csharpTargetsName));
+    // Finally, copy Microsoft.Net.Compilers
+    var roslynFolder = CombinePaths(env.Folders.Tools, "Microsoft.Net.Compilers", "tools");
+    var roslynNet46Folder = CombinePaths(msbuildNet46Folder, "Roslyn");
+    var roslynNetCoreAppFolder = CombinePaths(msbuildNetCoreAppFolder, "Roslyn");
+
+    CreateDirectory(roslynNet46Folder);
+    CreateDirectory(roslynNetCoreAppFolder);
+
+    CopyDirectory(roslynFolder, roslynNet46Folder);
+    CopyDirectory(roslynFolder, roslynNetCoreAppFolder);
+
+    // Delete unnecessary files
+    foreach (var folder in new[] { roslynNet46Folder, roslynNetCoreAppFolder })
+    {
+        DeleteFile(CombinePaths(folder, "Microsoft.CodeAnalysis.VisualBasic.dll"));
+        DeleteFile(CombinePaths(folder, "Microsoft.VisualBasic.Core.targets"));
+        DeleteFile(CombinePaths(folder, "VBCSCompiler.exe"));
+        DeleteFile(CombinePaths(folder, "VBCSCompiler.exe.config"));
+        DeleteFile(CombinePaths(folder, "csi.exe"));
+        DeleteFile(CombinePaths(folder, "csi.exe.config"));
+        DeleteFile(CombinePaths(folder, "csi.rsp"));
+        DeleteFile(CombinePaths(folder, "vbc.exe"));
+        DeleteFile(CombinePaths(folder, "vbc.exe.config"));
+        DeleteFile(CombinePaths(folder, "vbc.rsp"));
+    }
 });

 /// <summary>


ImageService.Instance can be called from iOS, Droid, WP, and Forms. Same API for all platforms.

--- source/FFImageLoading.BaitAndSwitch/ImageService.cs
+++ source/FFImageLoading.BaitAndSwitch/ImageService.cs
@@ -2,7 +2,7 @@

 namespace FFImageLoading
 {
-	public class ImageService: IImageService
+	public class ImageService
 	{
 		private const string DoNotReference = "You are referencing the Portable version in your App - you need to reference the platform (iOS/Android) version";

@@ -13,103 +13,6 @@
 				throw new Exception(DoNotReference);
 			}
 		}
-
-		private ImageService() { }
-
-		#region IImageService implementation
-
-		public FFImageLoading.Config.Configuration Config
-		{
-			get
-			{
-				throw new Exception(DoNotReference);
-			}
-		}
-
-		public void Initialize(FFImageLoading.Config.Configuration configuration)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public FFImageLoading.Work.TaskParameter LoadFile(string filepath)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public FFImageLoading.Work.TaskParameter LoadUrl(string url, TimeSpan? cacheDuration = null)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public FFImageLoading.Work.TaskParameter LoadFileFromApplicationBundle(string filepath)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public FFImageLoading.Work.TaskParameter LoadCompiledResource(string resourceName)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public FFImageLoading.Work.TaskParameter LoadStream(Func<System.Threading.CancellationToken, System.Threading.Tasks.Task<System.IO.Stream>> stream)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public void SetExitTasksEarly(bool exitTasksEarly)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public void SetPauseWork(bool pauseWork)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public void CancelWorkFor(FFImageLoading.Work.IImageLoaderTask task)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public void RemovePendingTask(FFImageLoading.Work.IImageLoaderTask task)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public void LoadImage(FFImageLoading.Work.IImageLoaderTask task)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		System.Threading.Tasks.Task IImageService.InvalidateCacheAsync(FFImageLoading.Cache.CacheType cacheType)
-		{
-			throw new NotImplementedException();
-		}
-
-		public void InvalidateMemoryCache()
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public System.Threading.Tasks.Task InvalidateDiskCacheAsync()
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public System.Threading.Tasks.Task InvalidateCacheEntryAsync(string key, FFImageLoading.Cache.CacheType cacheType, bool removeSimilar = false)
-		{
-			throw new Exception(DoNotReference);
-		}
-
-		public bool ExitTasksEarly
-		{
-			get
-			{
-				throw new Exception(DoNotReference);
-			}
-		}
-
-		#endregion
 	}
 }


Revert "Remove unnecesary nuget package from build script"

This reverts commit 3e1c1ade3f1842f4a9282cc99fb01993658bce20.

--- build.cake
+++ build.cake
@@ -6,6 +6,7 @@
 #tool "nuget:?package=GitReleaseManager&version=0.6.0"
 #tool "nuget:?package=OpenCover&version=4.6.519"
 #tool "nuget:?package=ReportGenerator&version=2.5.2"
+#tool "nuget:?package=coveralls.io&version=1.3.4"
 #tool "nuget:?package=xunit.runner.console&version=2.2.0-rc1-build3507"


Added creating nuget packages task

Added creating nuget packages task

--- build.cake
+++ build.cake
@@ -4,11 +4,28 @@
 var target = Argument("target", "Default");
 var configuration = Argument("configuration", "Release");

+// helpers
+var isRunningOnAppVeyor = AppVeyor.IsRunningOnAppVeyor;
+var branch = AppVeyor.Environment.Repository.Branch;
+var isBuildingMaster = branch != null && branch == "master";
+var isLocalBuild = BuildSystem.IsLocalBuild;
+var author = "Robert Gonek";
+
+// Version
+var version = "0.5.0";
+var buildSuffix = isLocalBuild ? "" : "." + AppVeyor.Environment.Build.Number;
+var fullVersion = version + buildSuffix;
+
 // Directories
 var solution = "./Ilaro.Admin.sln";
 var sourceDir = "./src";
 var testsDir = "./tests";
 var samplesDir = "./samples";
+var buildDir = "./build";
+var nuspecsDir = buildDir + "/nuspecs";
+var artifactsDir = "./artifacts";
+var outputDir = artifactsDir + "/v" + fullVersion;
+var nugetsDir = artifactsDir + "/nugets";
 var ilaroAdminDir = Directory(sourceDir + "/Ilaro.Admin/");
 var ilaroAdminAutofacDir = Directory(sourceDir + "/Ilaro.Admin.Autofac/");
 var ilaroAdminNinjectDir = Directory(sourceDir + "/Ilaro.Admin.Ninject/");
@@ -22,21 +39,19 @@
     ilaroAdminUnityDir,
     ilaroAdminTestsDir,
     ilaroAdminSampleDir };
-
-// helpers
-var isRunningOnAppVeyor = AppVeyor.IsRunningOnAppVeyor;
-var branch = AppVeyor.Environment.Repository.Branch;
-var isBuildingMaster = branch != null && branch == "master";
-
-// Version
-var version = "0.5.0";
-var buildSuffix = BuildSystem.IsLocalBuild ? "" : "." + AppVeyor.Environment.Build.Number;
-var fullVersion = version + buildSuffix;
+var nugets = new DirectoryPath[] {
+    ilaroAdminDir,
+    ilaroAdminAutofacDir,
+    ilaroAdminNinjectDir,
+    ilaroAdminUnityDir,
+};

 // Tasks
 Task("Clean")
     .Does(() =>
 {
+    CleanDirectory(outputDir);
+    CleanDirectory(nugetsDir);
     foreach(var dir in directories)
     {
         CleanDirectory(dir + Directory("/bin/" + configuration));
@@ -47,12 +62,12 @@
     .IsDependentOn("Clean")
     .Does(() =>
 {
-    var copyright = "Copyright © Robert Gonek 2014-" + DateTime.Now.Year;
+    var copyright = "Copyright © " + author + " 2014-" + DateTime.Now.Year;
     foreach(var dir in directories)
     {
         var file = dir + Directory("/Properties/AssemblyInfo.cs");
-        var projectFile = new DirectoryInfo(dir.ToString()).GetFiles("*csproj").FirstOrDefault();
-        var projectName = System.IO.Path.GetFileNameWithoutExtension(projectFile.Name);
+        var projectName = GetProjectName(dir.ToString());
+        var assemblyInfo = ParseAssemblyInfo(file);
         CreateAssemblyInfo(file, new AssemblyInfoSettings {
             Title = projectName,
             Product = projectName,
@@ -83,7 +98,7 @@
     .WithCriteria(() => isRunningOnAppVeyor)
     .Does(() =>
 {
-    StartPowershellFile("./build/before-tests.ps1", args =>
+    StartPowershellFile(buildDir + "/before-tests.ps1", args =>
         {
             args.Append("Configuration", configuration);
         });
@@ -106,13 +121,68 @@
     AppVeyor.UpdateBuildVersion(fullVersion);
 });

+Task("Copy-Files")
+    .IsDependentOn("Run-Unit-Tests")
+    .IsDependentOn("Create-Output-Directories")
+    .Does(() =>
+{
+    foreach(var nugetDir in nugets)
+    {
+        var projectName = GetProjectName(nugetDir.ToString());
+        var projectOutputDir = outputDir + "/" + projectName;
+        CreateDirectory(projectOutputDir);
+
+        var files = nugetDir + "/bin/" + configuration + "/*";
+        Information(files);
+        CopyFiles(
+            files,
+            projectOutputDir
+        );
+    }
+});
+
+Task("Create-Output-Directories")
+    .Does(() =>
+{
+    CreateDirectory(nugetsDir);
+    CreateDirectory(outputDir);
+});
+
+Task("Create-NuGet-Packages")
+    .IsDependentOn("Copy-Files")
+    .Does(() =>
+{
+    var nuspecs = GetFiles(nuspecsDir + "/*.nuspec");
+    foreach(var nuspec in nuspecs)
+    {
+        var projectName = nuspec.GetFilenameWithoutExtension();
+        // Create package.
+        NuGetPack(nuspec, new NuGetPackSettings {
+            Version = fullVersion,
+            BasePath = outputDir + "/" + projectName,
+            OutputDirectory = nugetsDir,
+            Symbols = false,
+            NoPackageAnalysis = true
+        });
+    }
+});
+
+// Utils
+string GetProjectName(string directory)
+{
+    var projectFile = new DirectoryInfo(directory).GetFiles("*csproj").FirstOrDefault();
+    var projectName = System.IO.Path.GetFileNameWithoutExtension(projectFile.Name);
+
+    return projectName;
+}
+
 // Targets
 Task("Default")
     .IsDependentOn("Run-Unit-Tests");

 Task("AppVeyor")
     .IsDependentOn("Update-AppVeyor-Build-Number")
-    .IsDependentOn("Run-Unit-Tests");
+    .IsDependentOn("Create-NuGet-Packages");

 // Execution
 RunTarget(target);


Added build for xml doc file

Added build for xml doc file

--- build.cake
+++ build.cake
@@ -17,7 +17,7 @@
 var solutions           = GetFiles("./**/*.sln");
 var solutionDirs        = solutions.Select(solution => solution.GetDirectory());
 var releaseNotes        = "";
-var semVersion = "0.0.2";
+var semVersion = "0.0.2-doc";
 var version             = semVersion;
 var binDir              = "./src/Cake.ProjHelpers/Cake.ProjHelpers/bin/" + configuration;
 var nugetRoot           = "./nuget/";
@@ -189,4 +189,4 @@

 RunTarget(target);

- +


chore(build.cake): fix opencover filter

chore(build.cake): fix opencover filter

--- build.cake
+++ build.cake
@@ -38,7 +38,6 @@
 });

 Task("Run-Tests")
-    .IsDependentOn("Build")
     .Does(() =>
 {
     var success = true;
@@ -47,7 +46,7 @@
         OldStyle = true,
         MergeOutput = true
     }
-    .WithFilter("+[Open*]* +[*.Tests*]*");
+    .WithFilter("+[Ritter*]* -[*.Tests*]*");

     if(parameters.UseDotNetVsTest){


tweaked versioning

tweaked versioning

--- build.cake
+++ build.cake
@@ -73,9 +73,9 @@
 var informationalVersion = gitVersion.InformationalVersion;
 var nugetVersion = gitVersion.NuGetVersion;
 var buildVersion = gitVersion.FullBuildMetaData;
-var assemblyVersion = buildVersion;
+var assemblyVersion = gitVersion.Major + "." + gitVersion.MinorPatch + ".0.0";
 var fileVersion = majorMinorPatch;
-Information("buildVersion: " + buildVersion);
+Information("informationalVersion: " + informationalVersion);
 Information("assemblyVersion: " + assemblyVersion);
 Information("fileVersion: " + fileVersion);


Changed build.cake for CI builds

Changed build.cake for CI builds

--- build.cake
+++ build.cake
@@ -7,7 +7,7 @@
 var target = Argument<string>("target", "Default");
 var source = Argument<string>("source", null);
 var apiKey = Argument<string>("apikey", null);
-var version = Argument<string>("targetversion", null);
+var version = Argument<string>("targetversion", EnvironmentVariable("APPVEYOR_BUILD_VERSION"));
 var skipClean = Argument<bool>("skipclean", false);
 var skipTests = Argument<bool>("skiptests", false);
 var nogit = Argument<bool>("nogit", false);
@@ -303,6 +303,10 @@

 public void UpdateProjectJsonVersion(string version, FilePathCollection filePaths)
 {
+  if (version == null)
+  {
+      version = "0.0.0";
+  }
   Verbose(logAction => logAction("Setting version to {0}", version));
   foreach (var file in filePaths)
   {
@@ -317,11 +321,12 @@

 Task("Default")
   .IsDependentOn("Test")
-  .IsDependentOn("Package");
+  .IsDependentOn("Update-Version")
+  .IsDependentOn("Package-NuGet");

 Task("Mono")
   .IsDependentOn("Test");

 ///////////////////////////////////////////////////////////////

-RunTarget(target);+RunTarget(target);


only release on tag.

only release on tag.

--- build.cake
+++ build.cake
@@ -289,6 +289,7 @@
     .WithCriteria(() => isMasterBranch)
     .WithCriteria(()=> isReleasable)
     .WithCriteria(()=> isRunningOnAppVeyor)
+    .WithCriteria(()=> isTagged)
     .Does(() =>
 {
     var apiKey = EnvironmentVariable("MYGET_API_KEY");


fix package version

fix package version

--- build.cake
+++ build.cake
@@ -155,7 +155,7 @@

 Information("Setting NuGet package dependencies versions:");

-var AvaloniaVersion = packageVersions["Avalonia"].FirstOrDefault().Item1;
+var AvaloniaVersion = "0.8.0";

 Information("Package: Avalonia, version: {0}", AvaloniaVersion);

@@ -171,7 +171,7 @@
     Symbols = false,
     NoPackageAnalysis = true,
     Description = "A port of AvalonEdit to the AvaloniaUI Framework.",
-    Copyright = "Copyright 2017",
+    Copyright = "Copyright 2019",
     Tags = new [] { "Avalonia", "AvalonEdit", "TextEditor", "AvaloniaEdit", "Control" },
     Dependencies = new []
     {
@@ -365,6 +365,7 @@
 Task("Default")
     .IsDependentOn("Restore-NetCore")
     .IsDependentOn("Build-NetCore")
+    .IsDependentOn("Create-NuGet-Packages")
     .IsDependentOn("Publish-MyGet")
     .IsDependentOn("Publish-NetCore")
     .IsDependentOn("Zip-NetCore");


Publish is needed for nunit.framework.tests; .NET Core builds don't copy dependencies to output directory

--- build.cake
+++ build.cake
@@ -153,6 +153,13 @@
             ToolVersion = MSBuildToolVersion.VS2017,
             Configuration = configuration,
             PlatformTarget = PlatformTarget.MSIL
+        });
+
+        DotNetCorePublish("src/NUnitFramework/tests/nunit.framework.tests.csproj", new DotNetCorePublishSettings
+        {
+            Framework = "netcoreapp1.1",
+            Configuration = configuration,
+            OutputDirectory = BIN_DIR + "netcoreapp1.1/"
         });
     });


Specify productVersion as an argument

Specify productVersion as an argument

--- build.cake
+++ build.cake
@@ -6,6 +6,7 @@

 var target = Argument("target", "Default");
 var configuration = Argument("configuration", "Release");
+var productVersion = Argument("productVersion", "3.10.0");

 var ErrorDetail = new List<string>();
 bool IsDotNetCoreInstalled = false;
@@ -14,12 +15,13 @@
 // SET PACKAGE VERSION
 //////////////////////////////////////////////////////////////////////

-var version = "3.10.0";
-var modifier = "";
+var dash = productVersion.IndexOf('-');
+var version = dash > 0
+    ? productVersion.Substring(0, dash)
+    : productVersion;

 var isAppveyor = BuildSystem.IsRunningOnAppVeyor;
 var dbgSuffix = configuration == "Debug" ? "-dbg" : "";
-var productVersion = version + modifier + dbgSuffix;

 //////////////////////////////////////////////////////////////////////
 // DEFINE RUN CONSTANTS


fixed cake script

fixed cake script

--- build.cake
+++ build.cake
@@ -82,7 +82,7 @@
     if(isJenkinsBuild)
     {
 		// Get the path to the package.
-		var package = "./Build/nuget/" + packageName + ".0.0." + version + ".nupkg";
+		var package = "./Build/nuget/" + packageName + version + ".nupkg";

 		// Push the package.
 		NuGetPush(package, new NuGetPushSettings {


Improving build script

Improving build script

--- build.cake
+++ build.cake
@@ -100,6 +100,7 @@
     MSBuild(solutionFile, settings =>
         settings
             .SetConfiguration(configuration)
+            .SetVerbosity(Verbosity.Minimal)
             .WithTarget("restore")
             );
 });


Finish Issue-12.1

Finish Issue-12.1

--- build.cake
+++ build.cake
@@ -10,7 +10,6 @@
 var nuspec = "./Cake.VersionReader/Cake.VersionReader/Cake.VersionReader.nuspec";
 var releaseFolder = "./Cake.VersionReader/Cake.VersionReader/bin/Release/netstandard2.0";
 var releaseDll = "/Cake.VersionReader.dll";
-var nuspecFile = "./Cake.VersionReader/Cake.VersionReader.nuspec";
 var unitTestPaths = "./Cake.VersionReader/Cake.VersionReader.Test/bin/Release/Cake.VersionReader.Tests.dll";
 var testResultFile = "./TestResult.xml";
 var testErrorFile = "./errors.xml";
@@ -88,7 +87,7 @@
 	.IsDependentOn ("UnitTest")
 	.Does (() => {
 		CreateDirectory ("./nupkg/");
-		ReplaceRegexInFiles(nuspecFile, "0.0.0", version);
+		ReplaceRegexInFiles(nuspec, "0.0.0", version);

 		NuGetPack (nuspec, new NuGetPackSettings {
 			Verbosity = NuGetVerbosity.Detailed,


Add sentinel file to MSBuild to enable workload resolver

--- build.cake
+++ build.cake
@@ -371,6 +371,12 @@
         source: CombinePaths(msbuildSdkResolverSourceFolder, "Microsoft.DotNet.MSBuildSdkResolver.dll"),
         destination: CombinePaths(msbuildSdkResolverTargetFolder, "Microsoft.DotNet.MSBuildSdkResolver.dll"));

+    // Add sentinel file to enable workload resolver
+    FileHelper.WriteAllLines(
+        path: CombinePaths(msbuildSdkResolverTargetFolder, "EnableWorkloadResolver.sentinel"),
+        contents: new string[0]
+    );
+
     if (Platform.Current.IsWindows)
     {
         CopyDotNetHostResolver(env, "win", "x86", "hostfxr.dll", msbuildSdkResolverTargetFolder, copyToArchSpecificFolder: true);


Change to consumer prints

Change to consumer prints

--- test/managed/queue-test/SinglePacketQueueTest.cs
+++ test/managed/queue-test/SinglePacketQueueTest.cs
@@ -71,13 +71,15 @@
     stopwatch.Start();
     long lastSec = stopwatch.ElapsedMilliseconds / 1000;
     long count = 0;
+    long absCount = 0;
     while (true) {
       long currSec = stopwatch.ElapsedMilliseconds / 1000;
-      queue_.Enqueue(new Packet(currSec + count));
+      queue_.Enqueue(new Packet(absCount));
       count++;
+      absCount++;
       if (currSec != lastSec) {
         lastSec = currSec;
-        Console.WriteLine("Produce " + GetCurrentCpu() + " " + count);
+        // Console.WriteLine locks, so let us further reduce contention here
         count = 0;
       }
     }
@@ -89,15 +91,17 @@
     stopwatch.Start();
     long lastSec = stopwatch.ElapsedMilliseconds / 1000;
     long count = 0;
+    long received = 0;
     while (true) {
       Packet pkt;
       if (queue_.TryDequeue(out pkt)) {
         count++;
+        received = pkt.id;
       }
       long currSec = stopwatch.ElapsedMilliseconds / 1000;
       if (currSec != lastSec) {
         lastSec = currSec;
-        Console.WriteLine("Consume " + GetCurrentCpu() + " " + count);
+        Console.WriteLine("Consume " + GetCurrentCpu() + " " + count + " " + received);
         count = 0;
       }
     }


2.4.0

--- Properties/AssemblyInfo.cs
+++ Properties/AssemblyInfo.cs
@@ -37,4 +37,4 @@
 // [assembly: AssemblyVersion("1.0.*")]

 [assembly: AssemblyVersion("0.9.0.0")]
-[assembly: AssemblyFileVersion("2.1.0.0")]
+[assembly: AssemblyFileVersion("2.4.0.0")]


1.0.0.31

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


Pumped up version for the fix for WSDL version.

--- Properties/AssemblyInfo.cs
+++ Properties/AssemblyInfo.cs
@@ -39,5 +39,5 @@
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]

-[assembly: AssemblyVersion("1.0.0.2")]
-[assembly: AssemblyFileVersion("1.0.0.2")]+[assembly: AssemblyVersion("1.0.0.3")]
+[assembly: AssemblyFileVersion("1.0.0.3")]


Copyright表記修正

Copyright表記修正

--- Properties/AssemblyInfo.cs
+++ Properties/AssemblyInfo.cs
@@ -10,7 +10,7 @@
 [assembly: AssemblyConfiguration( "" )]
 [assembly: AssemblyCompany( "" )]
 [assembly: AssemblyProduct( "Kerbal Space Program Translation Support Tool V2 for KSP" )]
-[assembly: AssemblyCopyright( "Copyright © 2016 itom0717" )]
+[assembly: AssemblyCopyright( "© 2016 itom0717" )]
 [assembly: AssemblyTrademark( "" )]
 [assembly: AssemblyCulture( "" )]


Updated to 1.1

Updated to 1.1

--- Properties/AssemblyInfo.cs
+++ Properties/AssemblyInfo.cs
@@ -32,4 +32,4 @@
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]+[assembly: AssemblyFileVersion("1.1.0.0")]


Version bump to 2.5-dev1.0.

Version bump to 2.5-dev1.0.

Signed-off-by: V10lator <fd1911a80a45064cec08d87c592168c9000a1489@myway.de>

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


v1.4.4

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


AssemblyInfo.cs

AssemblyInfo.cs

--- Properties/AssemblyInfo.cs
+++ Properties/AssemblyInfo.cs
@@ -10,9 +10,9 @@
 [assembly: AssemblyTitle("PNGToMultiDPITIFFPublic")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
+[assembly: AssemblyCompany("Quppa.net")]
 [assembly: AssemblyProduct("PNGToMultiDPITIFFPublic")]
-[assembly: AssemblyCopyright("Copyright ©  2013")]
+[assembly: AssemblyCopyright("Copyright © David Warner 2014")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]


Bump version

Bump version

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


Added Arrange, Act, Assert Comments in NullableSimpleTimeSpanAssertionSpecs.cs


Added a test to make sure it url encodes unicode characters

--- src/tests/RequestTests.cs
+++ src/tests/RequestTests.cs
@@ -63,6 +63,18 @@
 			Assert.AreEqual(Expected, request.GetUrl());
 		}

+        [Test]
+        public void TestUrlEncodingOfUnicodeCharacters()
+        {
+            var request = new Request();
+
+			request.SetParameter("needs_encoding", "&foo=bar");
+			request.SetParameter("unicode", "Sjömadsvägen");
+
+			const string Expected = "?needs_encoding=%26foo%3dbar&unicode=Sj%c3%b6madsv%c3%a4gen";
+			Assert.AreEqual(Expected, request.GetUrl());
+        }
+
 		[Test]
 		public void TestUrlWithoutTrailingQuestionMark()
 		{


fix(Index.cshtml): alterar tag form.

fix(Index.cshtml): alterar tag form.

--- modulo-ajax/CdZ/src/CdZ.MVC/Views/Cavaleiro/Index.cshtml
+++ modulo-ajax/CdZ/src/CdZ.MVC/Views/Cavaleiro/Index.cshtml
@@ -15,8 +15,7 @@

-@using (Html.BeginForm("Post", "Cavaleiro", FormMethod.Post))
-{
+<form id="frmNovoCavaleiro">

     Nome
     <input id="txtNomeCavaleiro" type="text" name="nome" placeholder="Ex: Shiryu">


Adds tests related to the IsEqualTo() with same numbers of different types.

--- NFluent.Tests/NumbersOfDifferentTypesRelatedTests.cs
+++ NFluent.Tests/NumbersOfDifferentTypesRelatedTests.cs
@@ -42,6 +42,57 @@
         #region IsEqualTo / IsNotEqualTo

         [Test]
+        public void IntValueIsNotEqualToTheSameByteValue()
+        {
+            byte byteValue = 2;
+            Check.That(byteValue).IsNotEqualTo(2);
+        }
+
+        [Test]
+        public void ByteValueIsEqualToTheSameIntValue()
+        {
+            byte byteValue = 2;
+            Check.That(2).IsEqualTo(byteValue);
+        }
+
+        [Test]
+        public void IntValueIsEqualToTheSameLongValue()
+        {
+            Check.That(2L).IsEqualTo(2);
+        }
+
+        [Test]
+        public void IntValueIsEqualToTheSameDoubleValue()
+        {
+            Check.That(2.0D).IsEqualTo(2);
+        }
+
+        [Test]
+        public void LongValueIsEqualToTheSameDoubleValue()
+        {
+            Check.That(2.0D).IsEqualTo(2L);
+        }
+
+        [Test]
+        public void IntValueIsEqualToTheSameFloatValue()
+        {
+            Check.That(2.0F).IsEqualTo(2);
+        }
+
+        [Test]
+        public void LongValueIsNotEqualToTheSameIntValue()
+        {
+            Check.That(2).IsNotEqualTo(2L);
+        }
+
+        [Test]
+        [ExpectedException(typeof(FluentCheckException), ExpectedMessage = "\nThe checked value is different from the expected one.\nThe checked value:\n\t[42] of type: [int]\nThe expected value:\n\t[42] of type: [long]")]
+        public void LongValueIsNotEqualToTheSameIntValueAndThrows()
+        {
+            Check.That(42).IsEqualTo(42L);
+        }
+
+        [Test]
         public void NotIsEqualToWorksWithDifferentTypes()
         {
             const int IntValue = 42;
@@ -50,16 +101,6 @@
             Check.That(IntValue).Not.IsEqualTo(LongValue);
         }

-        [Test]
-        [ExpectedException(typeof(FluentCheckException), ExpectedMessage = "\nThe checked value is different from the expected one.\nThe checked value:\n\t[42] of type: [int]\nThe expected value:\n\t[42] of type: [long]")]
-        public void IsEqualToThrowsWhenSameNumberOfDifferentTypes()
-        {
-            const int IntValue = 42;
-            const long LongValue = 42L;
-
-            Check.That(IntValue).IsEqualTo(LongValue);
-        }
-
         #endregion
     }
 }


.logignore output will no longer be reversed. closes #2543

--- NadekoBot.Core/Modules/Administration/LogCommands.cs
+++ NadekoBot.Core/Modules/Administration/LogCommands.cs
@@ -1,15 +1,15 @@
 #if !GLOBAL_NADEKO
 using Discord;
 using Discord.Commands;
+using NadekoBot.Common;
+using NadekoBot.Common.Attributes;
+using NadekoBot.Common.TypeReaders.Models;
+using NadekoBot.Core.Services.Database.Models;
 using NadekoBot.Extensions;
-using NadekoBot.Core.Services.Database.Models;
+using NadekoBot.Modules.Administration.Services;
 using System;
 using System.Linq;
 using System.Threading.Tasks;
-using NadekoBot.Common;
-using NadekoBot.Common.Attributes;
-using NadekoBot.Common.TypeReaders.Models;
-using NadekoBot.Modules.Administration.Services;
 using static NadekoBot.Modules.Administration.Services.LogCommandService;

 namespace NadekoBot.Modules.Administration
@@ -49,7 +49,7 @@

                 var removed = _service.LogIgnore(Context.Guild.Id, Context.Channel.Id);

-                if (removed)
+                if (!removed)
                     await ReplyConfirmLocalized("log_ignore", Format.Bold(channel.Mention + "(" + channel.Id + ")")).ConfigureAwait(false);
                 else
                     await ReplyConfirmLocalized("log_not_ignore", Format.Bold(channel.Mention + "(" + channel.Id + ")")).ConfigureAwait(false);


Update CategoriesController.cs - update to handle main category editing

--- NinjaHive.WebApp/Controllers/CategoriesController.cs
+++ NinjaHive.WebApp/Controllers/CategoriesController.cs
@@ -41,6 +41,17 @@
             return Redirect(UrlProvider<CategoriesController>.GetUrl(c => c.Index()));
         }

+         [HttpPost]
+        public ActionResult EditMainCategory(MainCategoryModel model)
+        {
+             if(ModelState.IsValid)
+             {
+                 this.mainCategoryRepository.Update(model);
+             }
+
+            return base.Home();
+        }
+
         [HttpPost]
         public ActionResult AddSubCategory(SubCategoryModel model)
         {
@@ -49,7 +60,7 @@
                 this.subCategoryRepository.Create(model);
             }
             return Redirect(UrlProvider<CategoriesController>.GetUrl(c => c.Index()));
-        }
+        }

         [HttpPost]
         public ActionResult EditSubCategory(SubCategoryModel model)


Get number of display inputs from DisplayConfig.

--- OSVR-Unity/Assets/OSVRUnity/src/DisplayController.cs
+++ OSVR-Unity/Assets/OSVRUnity/src/DisplayController.cs
@@ -138,6 +138,10 @@
                     Debug.LogError(_viewerCount + " viewers found, but this implementation requires exactly one viewer.");
                     return;
                 }
+
+                //Corresponds to video_inputs field in display descriptor.
+                _displayInputCount = _displayConfig.GetNumDisplayInputs();
+
                 //create scene objects
                 CreateHeadAndEyes();
             }


added InternetExplorer driver to projects

--- Objectivity.Test.Automation.Common/BrowserManager.cs
+++ Objectivity.Test.Automation.Common/BrowserManager.cs
@@ -100,10 +100,10 @@
                         EnsureCleanSession = true,
                         IgnoreZoomLevel = true,
                     };
-                    driver = new InternetExplorerDriver(".", options);
+                    driver = new InternetExplorerDriver(options);
                     break;
                 case "Chrome":
-                    driver = new ChromeDriver(@"Drivers\");
+                    driver = new ChromeDriver();
                     break;
                 default:
                     throw new NotSupportedException(


basket counter initialization fix

basket counter initialization fix

--- src/AkkaEventStore/Actors/BasketCoordinatorActor.cs
+++ src/AkkaEventStore/Actors/BasketCoordinatorActor.cs
@@ -70,13 +70,13 @@
                 connection.ReadStreamEventsBackwardAsync("basketsCounter", StreamPosition.End, 1, false).Result;
             if (streamEvents.Events.Length > 0)
             {
-                var number = Encoding.UTF8.GetString(streamEvents.Events[0].Event.Data);
-                for (int i = Convert.ToInt32(number); i > 0; i--)
+                var number = Convert.ToInt32(Encoding.UTF8.GetString(streamEvents.Events[0].Event.Data));
+                for (int i = number; i > 0; i--)
                 {
-                    var basketId = "basket-" + i;
-                    counter = i;
+                    var basketId = "basket-" + i;
                     baskets.Add(basketId, Context.ActorOf(Props.Create<BasketActor>(basketId), basketId));
                 }
+                counter = number;
             }

             Receive<CreateNewBasketCommand>(message =>


String/name referencing refactoring.

String/name referencing refactoring.

--- Meridian.InterSproc/Meridian.InterSproc/StubMethodGenerator.cs
+++ Meridian.InterSproc/Meridian.InterSproc/StubMethodGenerator.cs
@@ -25,6 +25,9 @@
     /// </summary>
     public class StubMethodGenerator : IStubMethodGenerator
     {
+        private const string ConnectionVariableName = "connection";
+        private const string DynamicParametersVariableName = "sprocParameters";
+
         private readonly CodeMemberField connectionStringMember;
         private readonly CodeSnippetStatement emptyLine;

@@ -145,7 +148,7 @@
             CodeVariableDeclarationStatement connectionVariable =
                 new CodeVariableDeclarationStatement(
                     typeof(IDbConnection).Name,
-                    "connection",
+                    ConnectionVariableName,
                     new CodePrimitiveExpression(null));

             codeStatements.Add(connectionVariable);
@@ -163,7 +166,7 @@
             CodeVariableDeclarationStatement dynamicParamsDeclaration =
                 new CodeVariableDeclarationStatement(
                     typeof(Dapper.DynamicParameters).Name,
-                    "sprocParameters",
+                    DynamicParametersVariableName,
                     new CodeObjectCreateExpression(typeof(Dapper.DynamicParameters).Name));

             // 4) try {
@@ -171,7 +174,8 @@
             {
                 // 5) connection = new SqlConnection(this.connectionString);
                 new CodeAssignStatement(
-                    new CodeVariableReferenceExpression(connectionVariable.Name),
+                    new CodeVariableReferenceExpression(
+                        ConnectionVariableName),
                     createSqlConnectionInstance),

                 // Empty line.
@@ -188,7 +192,7 @@
                 paramsToAdd
                     .Select(x => new CodeMethodInvokeExpression(
                         new CodeVariableReferenceExpression(
-                            "sprocParameters"),
+                            DynamicParametersVariableName),
                         nameof(Dapper.DynamicParameters.Add),
                         new CodePrimitiveExpression(x.Name.FirstCharToUpper()),
                         new CodeVariableReferenceExpression(x.Name)))
@@ -212,7 +216,8 @@
                 // 10) connection.Dipose();
                 new CodeExpressionStatement(
                     new CodeMethodInvokeExpression(
-                        new CodeVariableReferenceExpression(connectionVariable.Name),
+                        new CodeVariableReferenceExpression(
+                            ConnectionVariableName),
                         nameof(IDbConnection.Dispose))),
             };

@@ -238,19 +243,20 @@
                     new CodeMethodInvokeExpression(
                         new CodeMethodReferenceExpression(
                             new CodeVariableReferenceExpression(
-                                "connection"),
+                                ConnectionVariableName),
                             nameof(Dapper.SqlMapper.Execute)),
                         new CodePrimitiveExpression(
                             contractMethodInformation.GetStoredProcedureFullName()),
                         new CodeVariableReferenceExpression(
-                            "sprocParameters"),
+                            DynamicParametersVariableName),
                         new CodePrimitiveExpression(null),
                         new CodePrimitiveExpression(null),
                         new CodePropertyReferenceExpression( // Not entirely correct, but works in the same way.
                             new CodeVariableReferenceExpression(nameof(CommandType)),
                             nameof(CommandType.StoredProcedure)));

-                codeStatements.Add(new CodeExpressionStatement(invokeExecuteStatement));
+                codeStatements.Add(
+                    new CodeExpressionStatement(invokeExecuteStatement));
             }
             else
             {
@@ -288,13 +294,13 @@
                         new CodeMethodInvokeExpression(
                             new CodeMethodReferenceExpression(
                                 new CodeVariableReferenceExpression(
-                                    "connection"),
+                                    ConnectionVariableName),
                                 firstQueryMethod.Name,
                                 new CodeTypeReference(ienumReturnType.GenericTypeArguments.Single())),
                             new CodePrimitiveExpression(
                                 contractMethodInformation.GetStoredProcedureFullName()),
                             new CodeVariableReferenceExpression(
-                                "sprocParameters"),
+                                DynamicParametersVariableName),
                             new CodePrimitiveExpression(null),
                             new CodePrimitiveExpression(true),
                             new CodePrimitiveExpression(null),


Bug fixed: バーンダウンチャートの過去データが正しく表示できない問題を解消。

--- Implem.Pleasanter/Models/Issues/IssueUtilities.cs
+++ Implem.Pleasanter/Models/Issues/IssueUtilities.cs
@@ -2015,25 +2015,46 @@
                 "Issues",
                 formData,
                 Rds.IssuesWhere().SiteId(siteSettings.SiteId));
-            return Rds.ExecuteTable(statements: Rds.SelectIssues(
-                tableType: Sqls.TableTypes.NormalAndHistory,
-                column: Rds.IssuesTitleColumn(siteSettings)
-                    .IssueId(_as: "Id")
-                    .Ver()
-                    .Title()
-                    .WorkValue()
-                    .StartTime()
-                    .CompletionTime()
-                    .ProgressRate()
-                    .Status()
-                    .Updator()
-                    .CreatedTime()
-                    .UpdatedTime(),
-                where: where,
-                orderBy: Rds.IssuesOrderBy()
-                    .IssueId()
-                    .Ver()))
-                        .AsEnumerable();
+            return Rds.ExecuteTable(
+                statements: new SqlStatement[]
+                {
+                    Rds.SelectIssues(
+                        column: Rds.IssuesTitleColumn(siteSettings)
+                            .IssueId(_as: "Id")
+                            .Ver()
+                            .Title()
+                            .WorkValue()
+                            .StartTime()
+                            .CompletionTime()
+                            .ProgressRate()
+                            .Status()
+                            .Updator()
+                            .CreatedTime()
+                            .UpdatedTime(),
+                        where: where,
+                        unionType: Sqls.UnionTypes.Union),
+                    Rds.SelectIssues(
+                        tableType: Sqls.TableTypes.HistoryWithoutFlag,
+                        column: Rds.IssuesTitleColumn(siteSettings)
+                            .IssueId(_as: "Id")
+                            .Ver()
+                            .Title()
+                            .WorkValue()
+                            .StartTime()
+                            .CompletionTime()
+                            .ProgressRate()
+                            .Status()
+                            .Updator()
+                            .CreatedTime()
+                            .UpdatedTime(),
+                        where: Rds.IssuesWhere()
+                            .IssueId_In(sub: Rds.SelectIssues(
+                                column: Rds.IssuesColumn().IssueId(),
+                                where: where)),
+                        orderBy: Rds.IssuesOrderBy()
+                            .IssueId()
+                            .Ver())
+                }).AsEnumerable();
         }

         /// <summary>


Delete old error logs on Arkade exit

Delete old error logs on Arkade exit

--- src/Arkivverket.Arkade/Core/ArkadeProcessingArea.cs
+++ src/Arkivverket.Arkade/Core/ArkadeProcessingArea.cs
@@ -93,7 +93,11 @@

         private static bool IsOldLog(FileSystemInfo logFile)
         {
-            string dateString = Regex.Match(logFile.Name, @"^arkade-(?<date>\d{8}).log$").Groups["date"].Value;
+            // Extracts date from either arkade-20171024.log or arkade-error-20171024091500.log
+            const string dateCaptureRegexPattern = @"^arkade(-error)?-(?<date>\d{8})(\d{6})?\.log$";
+
+            string dateString = Regex.Match(logFile.Name, dateCaptureRegexPattern).Groups["date"].Value;
+
             DateTime logDate = DateTime.ParseExact(dateString, "yyyyMMdd", CultureInfo.InvariantCulture);

             return logDate.AddDays(7) < DateTime.Now; // The log is more than 7 days old


v5.0.0 (redo)

v5.0.0 (redo)

--- Internals/ModTags/ModInfo/UI/UITagFinishButton.cs
+++ Internals/ModTags/ModInfo/UI/UITagFinishButton.cs
@@ -8,7 +8,7 @@
 using Terraria.UI;

-namespace HamstarHelpers.Internals.ModTags.ModInfo.UI {
+namespace HamstarHelpers.Internals.ModTags.ModInfo.UI {
 	/// @private
 	partial class UITagFinishButton : UIMenuButton {
 		private readonly ModTagsEditorManager Manager;


Prep for May 2015 release

Prep for May 2015 release

--- OfficeDevPnP.Core/OfficeDevPnP.Core/Properties/AssemblyInfo.cs
+++ OfficeDevPnP.Core/OfficeDevPnP.Core/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@
 //
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.0415.0")]
-[assembly: AssemblyFileVersion("1.1.0415.0")]
+[assembly: AssemblyVersion("1.2.0515.0")]
+[assembly: AssemblyFileVersion("1.2.0515.0")]


fix spacing.

fix spacing.

--- src/Avalonia.Dialogs/ManagedFileChooserViewModel.cs
+++ src/Avalonia.Dialogs/ManagedFileChooserViewModel.cs
@@ -212,10 +212,10 @@
                         {
                             var selectedItem = SelectedItems.FirstOrDefault();

-							if (selectedItem != null)
-							{
-								FileName = selectedItem.DisplayName;
-							}
+						    if (selectedItem != null)
+						    {
+						        FileName = selectedItem.DisplayName;
+						    }
                         }
                     }
                 }


Add ToString to help with debuggign... :-)

--- LINQToTTree/LINQToTTreeLib/Variables/VarSimple.cs
+++ LINQToTTree/LINQToTTreeLib/Variables/VarSimple.cs
@@ -30,5 +30,14 @@
         /// Get/Set if this variable needs to be declared.
         /// </summary>
         public bool Declare { get; set; }
+
+        /// <summary>
+        /// TO help with debugging...
+        /// </summary>
+        /// <returns></returns>
+        public override string ToString()
+        {
+            return "(" + Type.Name + ") " + RawValue;
+        }
     }
 }


Fix issues with socket on Linux (#1432)

Fix issues with socket on Linux (#1432)

--- Languages/IronPython/IronPython.Modules/socket.cs
+++ Languages/IronPython/IronPython.Modules/socket.cs
@@ -2988,18 +2988,13 @@

         public static string GetServiceByPortNonWindows(ushort port, string protocol) {
             var netport = unchecked((ushort)IPAddress.HostToNetworkOrder(unchecked((short)port)));
-            var result = getservbyport(netport, protocol);
+            var result = getservbyport_linux(netport, protocol);
             if (IntPtr.Zero == result) {
                 throw new SocketUtilException(
                     string.Format("Could not resolve service for port {0}", port));
             }

-#if CLR4
-            if (Environment.Is64BitProcess)
-                return PtrToStructure<servent64>(result).s_name;
-            else
-#endif
-                return PtrToStructure<servent>(result).s_name;
+            return PtrToStructure<servent>(result).s_name;
         }

         public static string GetServiceByPort(ushort port, string protocol) {
@@ -3032,25 +3027,17 @@
         }

         public static ushort GetServiceByNameNonWindows(string service, string protocol) {
-
-            var result = getservbyname(service, protocol);
+            var result = getservbyname_linux(service, protocol);
             if (IntPtr.Zero == result) {
                 throw new SocketUtilException(
                     string.Format("Could not resolve port for service {0}", service));
             }

-            ushort port;
-#if CLR4
-            if (Environment.Is64BitProcess)
-                port = PtrToStructure<servent64>(result).s_port;
-            else
-#endif
-                port = PtrToStructure<servent>(result).s_port;
-
+            ushort port = PtrToStructure<servent>(result).s_port;
             var hostport = IPAddress.NetworkToHostOrder(unchecked((short)port));
             return unchecked((ushort)hostport);
-
-        }
+        }
+
         public static ushort GetServiceByName(string service, string protocol) {
             if (Environment.OSVersion.Platform == PlatformID.Unix || Environment.OSVersion.Platform == PlatformID.MacOSX)
                 return GetServiceByNameNonWindows(service, protocol);


Fix _Layout of Admin site.

Fix _Layout of Admin site.

Adjust the overall layout of the Admin area to better match the main site.
It will need more custom styling to remove things like the big background
image.

--- src/CGO.Web/Areas/Admin/Views/Shared/_Layout.cshtml
+++ src/CGO.Web/Areas/Admin/Views/Shared/_Layout.cshtml
@@ -1,75 +1,81 @@
 <!DOCTYPE html>

-
-        <meta charset="utf-8" />
-        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-        <title>@ViewBag.Title</title>
-        @Styles.Render("~/styles/bootstrap")
-        @Styles.Render("~/Content/Site.css")
-
-        @Styles.Render("~/bundles/font-awesome")
-        @Styles.Render("~/bundles/boilerplate")
-
-
+
+        <meta charset="utf-8" />
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <title>@ViewBag.Title</title>
+        @Styles.Render("~/styles/bootstrap")
+        @Styles.Render("~/Content/Site.css")
+
+        @Styles.Render("~/bundles/font-awesome")
+        @Styles.Render("~/bundles/boilerplate")
+
+

-

-

+

+

-

-                        <button class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
-
-
-
-                        </button>
-                        @Html.ActionLink("Cambridge Graduate Orchestra", "Index", "Home", htmlAttributes: new { @class = "navbar-brand" }, routeValues: null)
-

-

-                        @Html.Partial("_MenuBar")
-

-

-

-
+

+                        <button class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+
+
+
+                        </button>
+
+
+                            CGO
+
+

+

+                        @Html.Partial("_MenuBar")
+

+

+

+

@ViewBag.Title

-
-                @RenderBody()
-

+
+

+                    @RenderBody()
+

+

+

-

-
Copyright © Cambridge Graduate Orchestra @DateTime.UtcNow.ToString("yyyy")

-

-
Facebook

-
Twitter

-

-

-
Powered by RavenDB

-

-
Designed and built by Alastair Smith.

-

+

+
Copyright © Cambridge Graduate Orchestra @DateTime.UtcNow.ToString("yyyy")

+

+
Facebook

+
Twitter

+

+

+
Powered by RavenDB

+

+
Designed and built by Alastair Smith.

+

+
+        @Scripts.Render("~/bundles/jquery")
+        @Scripts.Render("~/bundles/jqueryui")
+
+        @Scripts.Render("~/bundles/modernizr")
+        @Scripts.Render("~/bundles/knockout")

-        @Scripts.Render("~/bundles/jquery")
-        @Scripts.Render("~/bundles/jqueryui")
-
-        @Scripts.Render("~/bundles/modernizr")
-        @Scripts.Render("~/bundles/knockout")
-
-
-
+
+
         @Scripts.Render("~/bundles/bootstrap")

         @RenderSection("Scripts", false)


Cleanup

Cleanup

--- src/Cedar.EventStore.Postgres/InterlockedBoolean.cs
+++ src/Cedar.EventStore.Postgres/InterlockedBoolean.cs
@@ -31,10 +31,7 @@
         /// <summary>
         /// Current value
         /// </summary>
-        public bool Value
-        {
-            get { return this._value == 1; }
-        }
+        public bool Value => _value == 1;

         /// <summary>
         /// Initializes a new instance of <see cref="T:InterlockedBoolean"/>
@@ -42,7 +39,7 @@
         /// <param name="initialValue">initial value</param>
         public InterlockedBoolean(bool initialValue = false)
         {
-            this._value = initialValue ? 1 : 0;
+            _value = initialValue ? 1 : 0;
         }

         /// <summary>
@@ -52,7 +49,7 @@
         /// <returns>the original value before any operation was performed</returns>
         public bool Set(bool newValue)
         {
-            var oldValue = Interlocked.Exchange(ref this._value, newValue ? 1 : 0);
+            var oldValue = Interlocked.Exchange(ref _value, newValue ? 1 : 0);
             return oldValue == 1;
         }

@@ -65,7 +62,7 @@
         /// <returns>the original value before any operation was performed</returns>
         public bool CompareExchange(bool newValue, bool comparand)
         {
-            var oldValue = Interlocked.CompareExchange(ref this._value, newValue ? 1 : 0, comparand ? 1 : 0);
+            var oldValue = Interlocked.CompareExchange(ref _value, newValue ? 1 : 0, comparand ? 1 : 0);
             return oldValue == 1;
         }
     }


Use the email from SPUser if email info from windows is empty

--- src/Codeless.SharePoint/SharePoint/PrincipalInfo.cs
+++ src/Codeless.SharePoint/SharePoint/PrincipalInfo.cs
@@ -17,6 +17,9 @@
       : this(principal, CommonHelper.ConfirmNotNull(principal, "principal").DistinguishedName ?? principal.SamAccountName, parentPrincipal) {
       this.DisplayName = principal.DisplayName ?? principal.DistinguishedName ?? principal.SamAccountName;
       this.EmailAddress = principal.EmailAddress;
+      if (String.IsNullOrEmpty(this.EmailAddress) && parentPrincipal is SPUser) {
+        this.EmailAddress = ((SPUser)parentPrincipal).Email;
+      }
       this.ProviderType = SPIdentityProviderTypes.Windows;
       this.EncodedClaim = SPClaimProviderManager.Local.ConvertIdentifierToClaim(((NTAccount)principal.Sid.Translate(typeof(NTAccount))).Value, SPIdentifierTypes.WindowsSamAccountName).ToEncodedString();
     }


ImgurResult organization

ImgurResult organization

--- src/CommonBotLibrary/Services/Models/ImgurResult.cs
+++ src/CommonBotLibrary/Services/Models/ImgurResult.cs
@@ -5,10 +5,11 @@
 {
     public class ImgurResult : IWebpage
     {
-        public string Id { get; set; }
         [JsonProperty("link")]
         public string Url { get; set; }
         public string Title { get; set; }
+
+        public string Id { get; set; }
         public string Description { get; set; }
         [JsonProperty("is_album")]
         public bool IsAlbum { get; set; }


Add a link to FAQ in the header.

Add a link to FAQ in the header.

--- src/CompetitionPlatform/Views/Shared/_Layout.cshtml
+++ src/CompetitionPlatform/Views/Shared/_Layout.cshtml
@@ -179,6 +179,7 @@

All projects

My projects

+
FAQ


dashboard - uncommenting a line that we left there by mistake

--- src/Dashboard/ApiControllers/FunctionsController.cs
+++ src/Dashboard/ApiControllers/FunctionsController.cs
@@ -156,7 +156,7 @@
             model.Invocation = new InvocationLogViewModel(func);
             model.TriggerReason = new TriggerReasonViewModel(func.FunctionInstance.TriggerReason);
             model.Trigger = model.TriggerReason.ToString();
-            model.IsAborted = true;// model.Invocation.Status == ViewModels.FunctionInstanceStatus.Running && _terminationSignalReader.IsTerminationRequested(func.HostInstanceId);
+            model.IsAborted = model.Invocation.Status == ViewModels.FunctionInstanceStatus.Running && _terminationSignalReader.IsTerminationRequested(func.HostInstanceId);

             // Do some analysis to find inputs, outputs,


Remove redundant ToString.

Remove redundant ToString.

--- src/Facility.Definition/Swagger/SwaggerGenerator.cs
+++ src/Facility.Definition/Swagger/SwaggerGenerator.cs
@@ -291,7 +291,7 @@

 			operation.Responses = responses;

-			string httpMethod = httpMethodInfo.Method.ToString().ToLowerInvariant();
+			string httpMethod = httpMethodInfo.Method.ToLowerInvariant();
 			switch (httpMethod)
 			{
 			case "get":


Simplified some string handling code.

Simplified some string handling code.

--- QRCoder/QRCodeGenerator.cs
+++ QRCoder/QRCodeGenerator.cs
@@ -307,7 +307,7 @@

                 foreach (var pattern in methods)
                 {
-                    if (pattern.Name.Length == 8 && pattern.Name.Substring(0, 7) == "Pattern")
+                    if (pattern.Name.Length == 8 && pattern.Name.StartsWith("Pattern"))
                     {
                         var qrTemp = new QRCodeData(version);
                         for (var y = 0; y < size; y++)
@@ -930,12 +930,12 @@
             }
             if (plainText.Length == 2)
             {
-                var dec = Convert.ToInt32(plainText.Substring(0, plainText.Length));
+                var dec = Convert.ToInt32(plainText);
                 codeText += DecToBin(dec, 7);
             }
             else if (plainText.Length == 1)
             {
-                var dec = Convert.ToInt32(plainText.Substring(0, plainText.Length));
+                var dec = Convert.ToInt32(plainText);
                 codeText += DecToBin(dec, 4);
             }
             return codeText;
@@ -1112,12 +1112,8 @@
         private void CreateAlphanumEncDict()
         {
             this.alphanumEncDict = new Dictionary<char, int>();
-            //alphanumEncTable.ToList().Select((x, i) => new { Chr = x, Index = i }).ToList().ForEach(x => this.alphanumEncDict.Add(x.Chr, x.Index));
-            var resList = alphanumEncTable.ToList().Select((x, i) => new { Chr = x, Index = i }).ToList();
-            foreach (var res in resList)
-            {
-                this.alphanumEncDict.Add(res.Chr, res.Index);
-            }
+            for (int i = 0; i < alphanumEncTable.Length; i++)
+                this.alphanumEncDict.Add(alphanumEncTable[i], i);
         }

         private void CreateAlignmentPatternTable()


Check local deletion in test

Check local deletion in test

--- osu.Game.Tests/Visual/Online/TestSceneCommentActions.cs
+++ osu.Game.Tests/Visual/Online/TestSceneCommentActions.cs
@@ -129,6 +129,10 @@
             });
             AddStep("Confirm dialog", () => InputManager.Key(Key.Number1));
             AddUntilStep("Deletion requested", () => delete);
+            AddUntilStep("Comment is deleted locally", () =>
+            {
+                return this.ChildrenOfType<DrawableComment>().SingleOrDefault(x => x.Comment.Id == 1) == null;
+            });
         }

         private void addTestComments()


Fix `SoloScoreInfo.Rank` not being serialised if rank is `D`

--- osu.Game/Online/API/Requests/Responses/SoloScoreInfo.cs
+++ osu.Game/Online/API/Requests/Responses/SoloScoreInfo.cs
@@ -3,6 +3,7 @@

 using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Converters;
@@ -45,6 +46,9 @@

         [JsonConverter(typeof(StringEnumConverter))]
         [JsonProperty("rank")]
+        // ScoreRank is aligned to make 0 equal D. We still want to serialise this (even when DefaultValueHandling.Ignore is used),
+        // so set the default to an impossible value.
+        [DefaultValue(null)]
         public ScoreRank Rank { get; set; }

         [JsonProperty("started_at")]


Properly dispose of `Stream` in bg quality check

--- osu.Game/Rulesets/Edit/Checks/CheckBackgroundQuality.cs
+++ osu.Game/Rulesets/Edit/Checks/CheckBackgroundQuality.cs
@@ -2,6 +2,7 @@
 // See the LICENCE file in the repository root for full licence text.

 using System.Collections.Generic;
+using System.IO;
 using osu.Game.Rulesets.Edit.Checks.Components;

 namespace osu.Game.Rulesets.Edit.Checks
@@ -48,10 +49,14 @@
                 yield return new IssueTemplateLowResolution(this).Create(texture.Width, texture.Height);

             string storagePath = context.Beatmap.BeatmapInfo.BeatmapSet.GetPathForFile(backgroundFile);
-            double filesizeMb = context.WorkingBeatmap.GetStream(storagePath).Length / (1024d * 1024d);

-            if (filesizeMb > max_filesize_mb)
-                yield return new IssueTemplateTooUncompressed(this).Create(filesizeMb);
+            using (Stream stream = context.WorkingBeatmap.GetStream(storagePath))
+            {
+                double filesizeMb = stream.Length / (1024d * 1024d);
+
+                if (filesizeMb > max_filesize_mb)
+                    yield return new IssueTemplateTooUncompressed(this).Create(filesizeMb);
+            }
         }

         public class IssueTemplateTooHighResolution : IssueTemplate


Fix beatmap background not hiding when user settings ignored and storyboard replaces background

--- osu.Game/Screens/Backgrounds/BackgroundScreenBeatmap.cs
+++ osu.Game/Screens/Backgrounds/BackgroundScreenBeatmap.cs
@@ -166,7 +166,9 @@
                 BlurAmount.ValueChanged += _ => UpdateVisuals();
             }

-            protected override bool ShowDimContent => !ShowStoryboard.Value || !StoryboardReplacesBackground.Value; // The background needs to be hidden in the case of it being replaced by the storyboard
+            protected override bool ShowDimContent
+                // The background needs to be hidden in the case of it being replaced by the storyboard
+                => (!ShowStoryboard.Value && !IgnoreUserSettings.Value) || !StoryboardReplacesBackground.Value;

             protected override void UpdateVisuals()
             {


fixed a couple bugs with the property queues

--- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -4091,9 +4091,14 @@
                         objectPropertiesBlocks.Value.Add(objPropDB);
                     }
                 }
+
+                updatesThisCall++;
             }

+            Int32 ppcnt = 0;
+            Int32 pbcnt = 0;
+
             if (objectPropertiesBlocks.IsValueCreated)
             {
                 List<ObjectPropertiesPacket.ObjectDataBlock> blocks = objectPropertiesBlocks.Value;
@@ -4105,9 +4110,15 @@

                 packet.Header.Zerocoded = true;
                 OutPacket(packet, ThrottleOutPacketType.Task, true);
+
+                pbcnt += blocks.Count;
+                ppcnt++;
             }

+            Int32 fpcnt = 0;
+            Int32 fbcnt = 0;
+
             if (objectFamilyBlocks.IsValueCreated)
             {
                 List<ObjectPropertiesFamilyPacket.ObjectDataBlock> blocks = objectFamilyBlocks.Value;
@@ -4130,10 +4141,15 @@
                     packet.ObjectData = blocks[i];
                     packet.Header.Zerocoded = true;
                     OutPacket(packet, ThrottleOutPacketType.Task);
+
+                    fpcnt++;
+                    fbcnt++;
                 }

             }

+            m_log.WarnFormat("[PACKETCOUNTS] queued {0} property packets with {1} blocks",ppcnt,pbcnt);
+            m_log.WarnFormat("[PACKETCOUNTS] queued {0} family property packets with {1} blocks",fpcnt,fbcnt);
         }

         private ObjectPropertiesFamilyPacket.ObjectDataBlock CreateObjectPropertiesFamilyBlock(SceneObjectPart sop, uint requestFlags)
@@ -11408,6 +11424,11 @@
             OutPacket(packet, throttlePacketType, true);
         }

+/// <MIC>
+        Dictionary<string,uint> pktsrc = new Dictionary<string,uint>();
+        uint pktcnt = 0;
+/// </MIC>
+
         /// <summary>
         /// This is the starting point for sending a simulator packet out to the client
         /// </summary>
@@ -11455,7 +11476,22 @@
                     if (count > 5) break;
                 }

-                // m_log.WarnFormat("[BADGUY] {0}", stack);
+                lock(pktsrc)
+                {
+                    if (! pktsrc.ContainsKey(stack))
+                        pktsrc.Add(stack,0);
+                    pktsrc[stack]++;
+
+                    if (++pktcnt > 500)
+                    {
+                        pktcnt = 0;
+                        m_log.WarnFormat("[PACKETCOUNTS] START");
+                        foreach (KeyValuePair<string,uint> pkt in pktsrc)
+                            m_log.WarnFormat("[PACKETCOUNTS] {0,8}, {1}", pkt.Value, pkt.Key);
+                        pktsrc.Clear();
+                        m_log.WarnFormat("[PACKETCOUNTS] END");
+                    }
+                }
             }

             m_udpServer.SendPacket(m_udpClient, packet, throttlePacketType, doAutomaticSplitting);


Don't try to constant fold LambdaExpr.

Don't try to constant fold LambdaExpr.

--- symbooglix/symbooglix/Expr/ConstantFoldingTraverser.cs
+++ symbooglix/symbooglix/Expr/ConstantFoldingTraverser.cs
@@ -118,7 +118,8 @@

         public Action VisitLambdaExpr(LambdaExpr e)
         {
-            throw new NotImplementedException();
+            // We can't constant fold these.
+            return Traverser.Action.ContinueTraversal(e);
         }

         public Action VisitNot(NAryExpr e)


Fixing the column info gen for many to one items.

--- src/Inflatable/ClassMapper/Default/ManyToOneMany.cs
+++ src/Inflatable/ClassMapper/Default/ManyToOneMany.cs
@@ -71,7 +71,7 @@
         /// <param name="mappings">The mappings.</param>
         public override void SetColumnInfo(MappingSource mappings)
         {
-            var ActualParent = mappings.GetParentMapping<ClassType>().FirstOrDefault(x => x.IDProperties.Any());
+            var ActualParent = mappings.GetChildMappings<ClassType>().SelectMany(x => mappings.GetParentMapping(x.ObjectType)).FirstOrDefault(x => x.IDProperties.Any());
             List<IQueryColumnInfo> TempColumns = new List<IQueryColumnInfo>();
             TempColumns.AddRange(ActualParent.IDProperties.ForEach(x =>
             {


Fixes Mantis #3220. Thank you kindly, MPallari, for a patch that: This patch changes InformClientOfNeighbour, CrossRegion and  SendRegionTeleport methods to virtual.

--- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -1380,7 +1380,7 @@
         /// <summary>
         /// Tell the client that the given neighbour region is ready to receive a child agent.
         /// </summary>
-        public void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourEndPoint)
+        public virtual void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourEndPoint)
         {
             IPAddress neighbourIP = neighbourEndPoint.Address;
             ushort neighbourPort = (ushort)neighbourEndPoint.Port;
@@ -1417,7 +1417,7 @@
             return agentData;
         }

-        public void CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt, IPEndPoint externalIPEndPoint,
+        public virtual void CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt, IPEndPoint externalIPEndPoint,
                                 string capsURL)
         {
             Vector3 look = new Vector3(lookAt.X * 10, lookAt.Y * 10, lookAt.Z * 10);
@@ -1507,7 +1507,7 @@
             OutPacket(tpLocal, ThrottleOutPacketType.Unknown);
         }

-        public void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint newRegionEndPoint, uint locationID,
+        public virtual void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint newRegionEndPoint, uint locationID,
                                        uint flags, string capsURL)
         {
             //TeleportFinishPacket teleport = (TeleportFinishPacket)PacketPool.Instance.GetPacket(PacketType.TeleportFinish);


Possible fix for NRE when adding reactions

--- Modix.Services/CommandHelp/CommandErrorHandler.cs
+++ Modix.Services/CommandHelp/CommandErrorHandler.cs
@@ -38,7 +38,13 @@
         {
             //Don't trigger if the emoji is wrong, if the user is a bot, or if we've
             //made an error message reply already
-            if (reaction.User.Value.IsBot || reaction.Emote.Name != _emoji || _errorReplies.ContainsKey(cachedMessage.Id))
+
+            if (reaction.User.IsSpecified && reaction.User.Value.IsBot)
+            {
+                return;
+            }
+
+            if (reaction.Emote.Name != _emoji || _errorReplies.ContainsKey(cachedMessage.Id))
             {
                 return;
             }
@@ -68,7 +74,12 @@
         public async Task ReactionRemoved(Cacheable<IUserMessage, ulong> cachedMessage, ISocketMessageChannel channel, SocketReaction reaction)
         {
             //Don't trigger if the emoji is wrong, or if the user is bot
-            if (reaction.User.Value.IsBot || reaction.Emote.Name != _emoji)
+            if (reaction.User.IsSpecified && reaction.User.Value.IsBot)
+            {
+                return;
+            }
+
+            if (reaction.Emote.Name != _emoji)
             {
                 return;
             }


Add --no-via switch to disable VIA padlock instructions

--- src/csharp/Intel/Generator/Program.cs
+++ src/csharp/Intel/Generator/Program.cs
@@ -161,6 +161,8 @@
     Don't include XOP instructions
 --no-3dnow
     Don't include 3DNow! instructions
+--no-via
+    Don't include VIA instructions
 --include-cpuid <name>
     Include instructions with these CPUID features, remove everything else
     eg. --include-cpuid intel8086;intel186;intel286;intel386;intel486;x64;wbnoinvd
@@ -243,6 +245,13 @@
 					options.ExcludeCpuid.Add(nameof(CpuidFeature.D3NOW));
 					break;

+				case "--no-via":
+					options.ExcludeCpuid.Add(nameof(CpuidFeature.PADLOCK_ACE));
+					options.ExcludeCpuid.Add(nameof(CpuidFeature.PADLOCK_PHE));
+					options.ExcludeCpuid.Add(nameof(CpuidFeature.PADLOCK_PMM));
+					options.ExcludeCpuid.Add(nameof(CpuidFeature.PADLOCK_RNG));
+					break;
+
 				case "--include-cpuid":
 					if (value is null) {
 						error = "Missing cpuid feature name";


Revert "change ctor args from List to IEnumerable"

This reverts commit 91897f63fe560ad72c32ef04a2c51eb4e2274c90.

--- source/Core/Services/InMemory/InMemoryUserService.cs
+++ source/Core/Services/InMemory/InMemoryUserService.cs
@@ -36,9 +36,9 @@
         /// Initializes a new instance of the <see cref="InMemoryUserService"/> class.
         /// </summary>
         /// <param name="users">The users.</param>
-        public InMemoryUserService(IEnumerable<InMemoryUser> users)
-        {
-            _users = users.ToList();
+        public InMemoryUserService(List<InMemoryUser> users)
+        {
+            _users = users;
         }

         /// <summary>


* eliminate unnecessary ScheduleFullUpdate()

--- OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -3406,8 +3406,6 @@
         protected internal void AttachToScene(ulong regionHandle)
         {
             m_regionHandle = regionHandle;
-
-            ScheduleFullUpdate();
         }

         private byte GetAttachPointEncoded()


JSON ready

JSON ready

--- MultyNetHack/MultyNetHack/Components/Component.cs
+++ MultyNetHack/MultyNetHack/Components/Component.cs
@@ -3,12 +3,17 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
+using System.IO;
+
+using Newtonsoft.Json;

 using MultyNetHack.MyEnums;
 using MultyNetHack.MyMath;
+using MultyNetHack.Screen;

 namespace MultyNetHack.Components
 {
+    [JsonObject]
     /// <summary>
     /// Everything should be extended from this
     /// </summary>
@@ -19,7 +24,7 @@
         {
             get
             {
-                return LocalBounds.X;
+                return LocalBounds == null ? 0 : LocalBounds.X;
             }
             set
             {
@@ -30,22 +35,22 @@
         {
             get
             {
-                return LocalBounds.Y;
+                return LocalBounds == null ? 0 : LocalBounds.Y;
             }
             set
             {
                 LocalBounds.Y = value;
             }
         }
-        public int GlobalX => IsRoot ? 0 : LocalX + Parent.LocalX;
-        public int GlobalY => IsRoot ? 0 : LocalY + Parent.LocalY;
-        public int Height => LocalBounds.Height;
-        public int Width => LocalBounds.Width;
+        public int GlobalX => IsRoot ? 0 : LocalX + (Parent == null ? 0 : Parent.LocalX);
+        public int GlobalY => IsRoot ? 0 : LocalY + (Parent == null ? 0 : Parent.LocalY);
+        public int Height => LocalBounds == null ? 0 : LocalBounds.Height;
+        public int Width => LocalBounds == null ? 0 : LocalBounds.Width;
         public int NumOfRooms => Controls.Count(I => I.Value.GetType() == typeof(Room));
         public int NumOfWalls => Controls.Count(I => I.Value.GetType() == typeof(Wall));
         public int NumOfPaths => Controls.Count(I => I.Value.GetType() == typeof(Path));
         public Rectangle LocalBounds => Bounds;
-        public Rectangle GlobalBounds => this.IsRoot ? new Rectangle(0, 0, 0, 0) : LocalBounds + Parent.GlobalBounds;
+        public Rectangle GlobalBounds => this.IsRoot ? new Rectangle(0, 0, 0, 0) : (LocalBounds == null ? new Rectangle(0,0,0,0) : (Parent == null ? LocalBounds : LocalBounds + Parent.GlobalBounds));

         public bool IsRoot { get; set; }
         public bool IsPassable { get; set; }
@@ -95,7 +100,7 @@
             Point P = new Point(X, Y);
             return GetComponentOnLocation(P);
         }
-        private Component GetComponentOnLocation(Point Point)
+        public Component GetComponentOnLocation(Point Point)
         {
             try
             {
@@ -116,9 +121,7 @@
                 throw;
             }
         }
-
-
-        private async Task GenerateRandomPaths(int N, IEnumerable<string> Names)
+        public async Task GenerateRandomPaths(int N, IEnumerable<string> Names)
         {
             List<Path> Range = new List<Path>();
             Task[] Tasks = new Task[N];
@@ -144,7 +147,7 @@
             }

         }
-        private async Task GenerateRandomPaths(int N)
+        public async Task GenerateRandomPaths(int N)
         {
             List<string> Names = new List<string>();
             for (int I = 0; I < N; I++)
@@ -153,7 +156,7 @@
             }
             await GenerateRandomPaths(N, Names);
         }
-        private async Task GenerateRandomRooms(int N, IReadOnlyList<string> Names)
+        public async Task GenerateRandomRooms(int N, IReadOnlyList<string> Names)
         {
             Task[] Tasks = new Task[4];
             List<List<Component>> Quad = new List<List<Component>>();
@@ -219,12 +222,47 @@
         {
             return Components.Any(N => N.LocalBounds & NewComponent.LocalBounds && N.ZValue == NewComponent.ZValue);
         }
-        public static bool CheckCollision(Dictionary<string, Component> Components, Component NewComponent)
+        public bool CheckCollision(Dictionary<string, Component> Components, Component NewComponent)
         {
             return Components.Any(N => N.Value.LocalBounds & NewComponent.LocalBounds && N.Value.ZValue == NewComponent.ZValue);
         }

-        //check for intersection in two rooms
+        public async Task<string> GimeJSON()
+        {
+            return await Task.Factory.StartNew(() => JsonConvert.SerializeObject(this, this.GetType(), Formatting.Indented, new JsonSerializerSettings()
+            {
+                MetadataPropertyHandling = MetadataPropertyHandling.ReadAhead,
+                CheckAdditionalContent = true,
+                DateFormatHandling = DateFormatHandling.IsoDateFormat,
+                MaxDepth = 5,
+                MissingMemberHandling = MissingMemberHandling.Ignore,
+                ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
+                NullValueHandling = NullValueHandling.Include,
+                StringEscapeHandling = StringEscapeHandling.EscapeNonAscii
+            }));
+        }
+        public async Task SaveStateToDisc(string FileName)
+        {
+            string InvalidChars = @"?:*[];|=,";
+            int count = 0;
+            FileName = new string(FileName.Select(i => {
+                count++;
+                if (count < 5) return i;
+                return InvalidChars.Any(j => i == j) ? '_' : i;
+            }).ToArray());
+            var hss = FileName.Split('\\').ToList();
+            await Task.Factory.StartNew(async () => { File.WriteAllText(hss.Last(), await GimeJSON(), System.Text.Encoding.UTF8); }).ContinueWith((i) =>
+            {
+
+                //finished
+            });
+        }
+        public static async Task<Component> GimeComponentFromJSON(string FileName)
+        {
+             return await Task.Factory.StartNew(() => JsonConvert.DeserializeObject<Component>(File.ReadAllText(FileName, System.Text.Encoding.UTF8)));
+        }
+
+        //check for intersection in two Components
         public static bool operator &(Component One, Component Two)
         {
             return (One.LocalBounds.LeftBound <= Two.LocalBounds.RightBound && One.LocalBounds.RightBound >= Two.LocalBounds.LeftBound &&
@@ -246,11 +284,11 @@
         }
         public static bool operator ==(Component One, Component Two)
         {
-            return One.LocalBounds.TopBound == Two.LocalBounds.TopBound &&
-                   One.LocalBounds.BottomBound == Two.LocalBounds.BottomBound &&
-                   One.LocalBounds.LeftBound == Two.LocalBounds.LeftBound &&
-                   One.LocalBounds.RightBound == Two.LocalBounds.RightBound &&
-                   One.Name == Two.Name;
+            return One?.LocalBounds?.TopBound == Two?.LocalBounds?.TopBound &&
+                   One?.LocalBounds?.BottomBound == Two?.LocalBounds?.BottomBound &&
+                   One?.LocalBounds?.LeftBound == Two?.LocalBounds?.LeftBound &&
+                   One?.LocalBounds?.RightBound == Two?.LocalBounds?.RightBound &&
+                   One?.Name == Two?.Name;
         }

         public static bool operator !=(Component One, Component Two)
@@ -268,7 +306,7 @@
         {
             return new Rectangle(C.LocalBounds.TopBound + P.Y, C.LocalBounds.RightBound + P.X, C.LocalBounds.BottomBound + P.Y, C.LocalBounds.LeftBound + P.X);
         }
-        public override bool Equals(object Obj) => Obj.Equals(this);
+        public override bool Equals(object Obj) => Obj is Component ? Obj as Component == this : false ;
         public bool Equals(Component Other)
         {
             return ZValue == Other.ZValue &&


Missing clause in NewBlockCommit

Missing clause in NewBlockCommit

--- NBXplorer/Backends/Postgres/DbConnectionHelper.cs
+++ NBXplorer/Backends/Postgres/DbConnectionHelper.cs
@@ -227,7 +227,7 @@

 		public async Task NewBlockCommit(uint256 blockHash)
 		{
-			await Connection.ExecuteAsync("UPDATE blks SET confirmed='t' WHERE blk_id=@blk_id AND confirmed IS FALSE;",
+			await Connection.ExecuteAsync("UPDATE blks SET confirmed='t' WHERE code=@code AND blk_id=@blk_id AND confirmed IS FALSE;",
 				new
 				{
 					code = Network.CryptoCode,


first round of cleanup

first round of cleanup

--- Nez-PCL/ECS/Components/Physics/ArcadeRigidbody.cs
+++ Nez-PCL/ECS/Components/Physics/ArcadeRigidbody.cs
@@ -4,45 +4,84 @@

 namespace Nez
 {
+	/// <summary>
+	/// Note that this is not a full, multi-iteration physics object! This can be used for simple, arcade style physics.
+	/// </summary>
 	public class ArcadeRigidbody : Component, IUpdatable
 	{
-		public float mass = 10f;
+		/// <summary>
+		/// mass of this rigidbody. A 0 mass will make this an immovable object.
+		/// </summary>
+		/// <value>The mass.</value>
+		public float mass
+		{
+			get { return _mass; }
+			set
+			{
+				_mass = Mathf.clamp( value, 0, float.MaxValue );
+
+				if( _mass > 0.0001f )
+					_inverseMass = 1 / _mass;
+				else
+					_inverseMass = 0f;
+			}
+		}
+		float _mass = 10f;

 		/// <summary>
 		/// 0 - 1 range where 0 is no bounce and 1 is perfect reflection
 		/// </summary>
-		public float elasticity = 0.5f;
+		public float elasticity
+		{
+			get { return _elasticity; }
+			set { _elasticity = Mathf.clamp01( value ); }
+		}
+		float _elasticity = 0.5f;

 		/// <summary>
-		/// 0 means no friction, 1 means the object will stop dead on
+		/// 0 - 1 range. 0 means no friction, 1 means the object will stop dead on
 		/// </summary>
-		public float friction = 0.5f;
+		public float friction
+		{
+			get { return _friction; }
+			set { _friction = Mathf.clamp01( value ); }
+		}
+		float _friction = 0.5f;

-		public float glue = 0.01f;
+		/// <summary>
+		/// 0 - 3 range.
+		/// </summary>
+		public float glue
+		{
+			get { return _glue; }
+			set { _glue = Mathf.clamp( value, 0, 3 ); }
+		}
+		float _glue = 0.01f;

+		/// <summary>
+		/// velocity of this rigidbody
+		/// </summary>
 		public Vector2 velocity;

-		public bool isImmovable { get { return mass < 0.0001f; } }
+		/// <summary>
+		/// rigidbodies with a mass of 0 are considered immovable. Changing velocity and collisions will have no effect on them.
+		/// </summary>
+		/// <value><c>true</c> if is immovable; otherwise, <c>false</c>.</value>
+		public bool isImmovable { get { return _mass < 0.0001f; } }

-		float inverseMass
-		{
-			get
-			{
-				if( mass > 0.0001f )
-					return 1 / mass;
-				return 0f;
-			}
-		}
+		float _inverseMass;

 		public ArcadeRigidbody()
-		{}
+		{
+			_inverseMass = 1 / _mass;
+		}

 		public void addImpulse( Vector2 force )
 		{
 			if( !isImmovable )
-				velocity += force * ( inverseMass * Time.deltaTime * Time.deltaTime );
+				velocity += force * ( _inverseMass * Time.deltaTime * Time.deltaTime );
 		}

@@ -128,15 +167,15 @@

 			float dt;
 			Vector2.Dot( ref Dt, ref Dt, out dt );
-			var CoF = friction;
+			var CoF = _friction;

-			if( dt < glue * glue )
+			if( dt < _glue * _glue )
 				CoF = 1.01f;

-			relativeVelocity = -( 1.0f + elasticity ) * Dn - CoF * Dt;
+			relativeVelocity = -( 1.0f + _elasticity ) * Dn - CoF * Dt;

-			var m0 = inverseMass;
-			var m1 = other.inverseMass;
+			var m0 = _inverseMass;
+			var m1 = other._inverseMass;
 			var m  = m0 + m1;
 			var r0 = m0 / m;
 			var r1 = m1 / m;


Misspelling TheRenderArbitrryMarkdownMethod-> TheRenderArbitraryMarkdownMethod was fixed.

--- Octokit.Tests/Clients/MiscellaneousClientTests.cs
+++ Octokit.Tests/Clients/MiscellaneousClientTests.cs
@@ -31,7 +31,7 @@
                     "text/plain");
             }
         }
-        public class TheRenderArbitrryMarkdownMethod
+        public class TheRenderArbitraryMarkdownMethod
         {
             [Fact]
             public async Task RequestsTheEmojiEndpoint()


update format date dd-MMM-yyyy HH:mm

update format date dd-MMM-yyyy HH:mm

--- OkToBoardServices/Controllers/ReportController.cs
+++ OkToBoardServices/Controllers/ReportController.cs
@@ -25,7 +25,7 @@
         private string PopulateDateTime(DateTime date, DateTime time)
         {
             var result = DateTime.Now.ToString("dd-MMM-yyyy HH:mm");
-            var d = String.Format("{0:d-MMM-yyyy}", date);
+            var d = String.Format("{0:dd-MMM-yyyy}", date);
             var t = String.Format("{0:HH:mm}", time);
             result = String.Format("{0} {1}", d, t);
             return result;
@@ -38,7 +38,7 @@
             string data;
             if (ConfigurationManager.AppSettings["UseFakeData"].ToLower() == "true")
             {
-                data = "[{'boarding_info':[{'origin':'LHR','time_arrive':'2015-07-22T19:45:00.000Z','flight_code':'J7','flight_number':'10','id':null,'contact_number':'+84 0986 977 123','vessel_name':'Adonia','eta_time':'14-Mar-2014 08:00','report_type':'doc','user_id':1,'ship_id':'444016b8-cdfd-4620-a9cf-778e6b484349','user_name':'Nguyen Barry','create_time':'22-Jul-2015'}],'crew_info':[{'first_name':'crew 5','last_name':'last 5','position':'Rank','birthday':'2015-07-22T00:00:00.000Z','passport':'Pas','country_id':1,'gender':true,'id':null,'country':'Afghanistan'},{'first_name':'crew 4','last_name':'last 4','position':'Rank 4','birthday':'2015-07-22T00:00:00.000Z','passport':'Pas','country_id':1,'gender':true,'id':null,'country':'Afghanistan'},{'first_name':'crew 3','last_name':'last3 ','position':'Rank 3','birthday':'2015-07-22T00:00:00.000Z','passport':'Pas','country_id':1,'gender':true,'id':null,'country':'Afghanistan'},{'first_name':'crew 2','last_name':'las2','position':'Rank','birthday':'2015-07-22T00:00:00.000Z','passport':'Pass','country_id':1,'gender':true,'id':null,'country':'Afghanistan'},{'first_name':'crew 1','last_name':'last 1','position':'Rank 1','birthday':'2015-07-22T00:00:00.000Z','passport':'Pas','country_id':1,'gender':true,'id':null,'country':'Afghanistan'}]}]";
+                data = "[{'boarding_info':[{'origin':'Cha','flight_code':'Ch','flight_number':'Chai','id':null,'contact_number':null,'vessel_name':'AZAMARA QUEST','eta_time':'06-Mar-2012 07:00','time_arrive':' 2-JUL-2015 at 10:10AM','report_type':'doc','user_id':1,'ship_id':'d3f6169f-4072-42bc-89fe-2dbcdc110c55','user_name':null,'create_time':'22-Jul-2015'}],'crew_info':[{'first_name':'ChaiEn','last_name':'ChaiKo','position':'Chai','birthday':'28-JUN-2015','passport':'Chai','country_id':7,'gender':'Male','id':null,'country':'Angola'}]}]";
                 Logger.log.Debug("=========================Data TEST===========================");
             }
             else


Improved test error reporting

Improved test error reporting

--- test/ByrneLabs.Commons.MetadataDom.Tests.Checker/CheckState.cs
+++ test/ByrneLabs.Commons.MetadataDom.Tests.Checker/CheckState.cs
@@ -19,7 +19,8 @@
             @"^Could not find Method [\.\w]+\._VtblGap\d+_\d+\(\) with reflection$",
             @"ByrneLabs\.Commons\.MetadataDom\.BadMetadataException: Method .+ has \d+ parameters but \d+ parameter types were found",
             @"HasDefaultValue has a value of False in metadata but a value of True in reflection",
-            @"MetadataToken has a value of \d+ in metadata but a value of \d+ in reflection"
+            @"MetadataToken has a value of \d+ in metadata but a value of \d+ in reflection",
+            @"<\w+?>\{[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\}.+?Name has a value of <\w+?>\{[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\}.*? in metadata but a value of <\w+?>\{[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\}.*? in reflection"
         };
         private readonly List<CodeElement> _checkedMetadataElements = new List<CodeElement>();
         private readonly List<Tuple<CodeElement, object>> _comparedElements = new List<Tuple<CodeElement, object>>();
@@ -97,7 +98,7 @@
         {
             get
             {
-                var filteredErrorMessages = UnfilteredErrors.Where(errorMessage => !_ignoredErrorsRegex.Any(ignoredErrorRegex => Regex.IsMatch(errorMessage, ignoredErrorRegex)) && !_likelyFrameworkBugErrorsRegex.Any(ignoredErrorRegex => Regex.IsMatch(errorMessage, ignoredErrorRegex)));
+                var filteredErrorMessages = UnfilteredErrors.Where(errorMessage => !_ignoredErrorsRegex.Any(ignoredErrorRegex => Regex.IsMatch(errorMessage, ignoredErrorRegex)));
                 return filteredErrorMessages.ToImmutableArray();
             }
         }
@@ -122,7 +123,7 @@

         public bool IncompleteAssemblyLoad => LogText.Contains("System.IO.FileNotFoundException: Could not load file or assembly") || LogText.Contains("This suggests the assembly also has a native image assembly") || LogText.Contains("System.IO.FileLoadException: Could not load file or assembly");

-        public bool LikelyFrameworkBugFound => Errors.Any(errorMessage => !_likelyFrameworkBugErrorsRegex.Any(ignoredErrorRegex => Regex.IsMatch(errorMessage, ignoredErrorRegex)));
+        public bool LikelyFrameworkBugFound => Errors.All(errorMessage => !_likelyFrameworkBugErrorsRegex.Any(ignoredErrorRegex => Regex.IsMatch(errorMessage, ignoredErrorRegex)));

         public string LogText
         {


Add option interaction characterization tests

--- test/Autofac.Extras.FakeItEasy.Test/AutoFakeFixture.cs
+++ test/Autofac.Extras.FakeItEasy.Test/AutoFakeFixture.cs
@@ -137,6 +137,49 @@
             }
         }

+        [Fact]
+        public void CallsBaseMethodsOverridesStrict()
+        {
+            // A characterization test, intended to detect accidental changes in behavior.
+            // This is an odd situation, since specifying both strict and callsBaseMethods only makes
+            // sense when there are concrete methods on the fake that we want to be executed, but we
+            // want to reject the invocation of any methods that are left abstract on the faked type.
+            using (var fake = new AutoFake(callsBaseMethods: true, strict: true))
+            {
+                var bar = fake.Resolve<Bar>();
+                bar.Go();
+                Assert.True(bar.Gone);
+            }
+        }
+
+        [Fact]
+        public void CallsBaseMethodsOverridesConfigureFake()
+        {
+            // A characterization test, intended to detect accidental changes in behavior.
+            // Since callsBaseMethods applies globally and configureFake can affect individual
+            // members, having configureFake override callsBaseMethods may be preferred.
+            using (var fake = new AutoFake(
+                callsBaseMethods: true,
+                configureFake: f => A.CallTo(() => ((Bar)f).Go()).DoesNothing()))
+            {
+                var bar = fake.Resolve<Bar>();
+                bar.Go();
+                Assert.True(bar.Gone);
+            }
+        }
+
+        [Fact]
+        public void ConfigureFakeOverridesStrict()
+        {
+            using (var fake = new AutoFake(
+                strict: true,
+                configureFake: f => A.CallTo(() => ((Bar)f).Go()).DoesNothing()))
+            {
+                var bar = fake.Resolve<Bar>();
+                bar.Go();
+            }
+        }
+
         public abstract class Bar : IBar
         {
             private bool _gone;


Make it obvious you need an ApiKey

Make it obvious you need an ApiKey

--- test/FluentEmail.SendGrid.Tests/SendGridSenderTests.cs
+++ test/FluentEmail.SendGrid.Tests/SendGridSenderTests.cs
@@ -1,25 +1,26 @@
 using System;
-using System.Collections.Generic;
 using System.IO;
-using System.Linq;
 using System.Threading.Tasks;
 using FluentEmail.Core;
-using FluentEmail.Core.Models;
 using NUnit.Framework;
+using Attachment = FluentEmail.Core.Models.Attachment;

 namespace FluentEmail.SendGrid.Tests
 {
     public class SendGridSenderTests
     {
-        const string apiKey = "";
-        const string toEmail = "fluentEmail@mailinator.com";
-        const string toName = "FluentEmail Mailinator";
-        const string fromEmail = "test@fluentmail.com";
-        const string fromName = "SendGridSender Test";
+        const string apiKey    = ""; // TODO: Put your API key here
+
+        const string toEmail   = "fluentEmail@mailinator.com";
+        const string toName    = "FluentEmail Mailinator"    ;
+        const string fromEmail = "test@fluentmail.com"       ;
+        const string fromName  = "SendGridSender Test"       ;

         [SetUp]
         public void SetUp()
         {
+            if (string.IsNullOrWhiteSpace(apiKey)) throw new ArgumentException("SendGrid Api Key need to be supplied");
+
             var sender = new SendGridSender(apiKey, true);
             Email.DefaultSender = sender;
         }


add unit test.

add unit test.

--- test/Microsoft.DocAsCode.MarkdownLite.Tests/GfmTest.cs
+++ test/Microsoft.DocAsCode.MarkdownLite.Tests/GfmTest.cs
@@ -518,6 +518,10 @@
             @"__aaa_aa __aaa a _a aaa __a",
             @"
__aaa_aa __aaa a _a aaa __a

 ")]
+        [InlineData(
+            @"***A*B*C*D**",
+            @"
ABCD

+")]
         #endregion
         public void TestGfmInGeneral(string source, string expected)
         {


Should send push message when LogEventLevel set as the same restricted minimum level

--- test/Serilog.Sinks.Pushover.Tests/PushoverSinkTests.cs
+++ test/Serilog.Sinks.Pushover.Tests/PushoverSinkTests.cs
@@ -62,5 +62,17 @@

             Assert.Equal(Enumerable.Empty<string>(), _selfLogMessages);
         }
+
+        [TestMethod]
+        public void Can_Send_When_Minimum_Level_Same_as_LogEventLevel()
+        {
+            using (var pushoverLoger = new LoggerConfiguration()
+                .WriteTo.PushoverSink(LogEventLevel.Error, token: token, userOrGroupKey: userOrGroupKey).CreateLogger())
+            {
+                pushoverLoger.Error("This message must be reach");
+            }
+
+            Assert.Equal(Enumerable.Empty<string>(), _selfLogMessages);
+        }
     }
 }


improved test cases

improved test cases

--- test/SuperSocket.Tests/WebSocket/WebSocketBasicTest.cs
+++ test/SuperSocket.Tests/WebSocket/WebSocketBasicTest.cs
@@ -68,7 +68,13 @@
                     {
                         session = s as WebSocketSession;
                         await Task.CompletedTask;
-                    });
+                    })
+                    .ConfigureServices(
+                        (hostCtx, services) =>
+                        {
+                            services.AddSingleton<ITestService, TestService>();
+                        }
+                    );
             }, hostConfigurator: hostConfigurator)
                 .BuildAsServer())
             {
@@ -83,7 +89,8 @@

                 await Task.Delay(1 * 1000);

-                Assert.IsType<MyWebSocketSession>(session);
+                Assert.IsType<MyWebSocketSession>(session);
+                Assert.IsType<TestService>((session as MyWebSocketSession).TestService);

                 await websocket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None);
                 await Task.Delay(1 * 1000);
@@ -1012,9 +1019,27 @@
             }
         }

+        public interface ITestService
+        {
+            void Test();
+        }
+
+        public class TestService : ITestService
+        {
+            public void Test()
+            {
+
+            }
+        }
+
         public class MyWebSocketSession : WebSocketSession
         {
-
+            public ITestService TestService { get; private set; }
+
+            public MyWebSocketSession(ITestService testService)
+            {
+                TestService = testService;
+            }
         }
     }
 }