Update xMenu.cs

Update xMenu.cs

--- LanguagePatches/LanguagePatches/LanguagePatches/xMenu.cs
+++ LanguagePatches/LanguagePatches/LanguagePatches/xMenu.cs
@@ -49,78 +49,81 @@
         // Update the MainMenu Buttons
         private void Update()
         {
-            // Does our config exists?
-            if (!isOver && File.Exists(Loader.path + "Menu.xml"))
+            if (Loader.loadCache == "active")
             {
-                GameObject gameObject = GameObject.Find("MainMenu");
-                if (!(gameObject == null))
+                // Does our config exists?
+                if (!isOver && File.Exists(Loader.path + "Menu.xml"))
                 {
-                    MainMenu component = gameObject.GetComponent<MainMenu>();
-                    foreach (TextMesh mesh in GameObject.FindObjectsOfType<TextMesh>())
+                    GameObject gameObject = GameObject.Find("MainMenu");
+                    if (!(gameObject == null))
                     {
-                        xFont.FontIfy(mesh);
+                        MainMenu component = gameObject.GetComponent<MainMenu>();
+                        foreach (TextMesh mesh in GameObject.FindObjectsOfType<TextMesh>())
+                        {
+                            xFont.FontIfy(mesh);
+                        }
+                        List<string> menu = new List<string>();
+                        XmlDocument xmlDocument = new XmlDocument();
+                        xmlDocument.Load(Loader.path + "Menu.xml");
+
+                        if (xmlDocument.DocumentElement.HasAttribute("replaceFont"))
+                        {
+                            fontIfy = bool.Parse(xmlDocument.DocumentElement.GetAttribute("replaceFont"));
+                        }
+
+                        foreach (XmlElement child in xmlDocument.DocumentElement.ChildNodes)
+                        {
+                            // Patch the Buttons
+                            switch (child.GetAttribute("name"))
+                            {
+                                case "backBtn":
+                                    xMenu.TM(component.backBtn, child.InnerText, GetSize(child));
+                                    break;
+                                case "startBtn":
+                                    xMenu.TM(component.startBtn, child.InnerText, GetSize(child));
+                                    gameObject.transform.FindChild("stage 2").FindChild("Header").GetComponent<TextMesh>().text = child.InnerText;
+                                    break;
+                                case "settingBtn":
+                                    xMenu.TM(component.settingBtn, child.InnerText, GetSize(child));
+                                    break;
+                                case "spaceportBtn":
+                                    xMenu.TM(component.spaceportBtn, child.InnerText, GetSize(child));
+                                    break;
+                                case "commBtn":
+                                    xMenu.TM(component.commBtn, child.InnerText, GetSize(child));
+                                    break;
+                                case "continueBtn":
+                                    xMenu.TM(component.continueBtn, child.InnerText, GetSize(child));
+                                    break;
+                                case "creditsBtn":
+                                    xMenu.TM(component.creditsBtn, child.InnerText, GetSize(child));
+                                    break;
+                                case "newGameBtn":
+                                    xMenu.TM(component.newGameBtn, child.InnerText, GetSize(child));
+                                    break;
+                                case "quitBtn":
+                                    xMenu.TM(component.quitBtn, child.InnerText, GetSize(child));
+                                    break;
+                                case "scenariosBtn":
+                                    xMenu.TM(component.scenariosBtn, child.InnerText, GetSize(child));
+                                    break;
+                                case "trainingBtn":
+                                    xMenu.TM(component.trainingBtn, child.InnerText, GetSize(child));
+                                    break;
+                                case "KSPsiteURL":
+                                    component.KSPsiteURL = child.InnerText;
+                                    break;
+                                case "SpaceportURL":
+                                    component.SpaceportURL = child.InnerText;
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }
+
+                        // rien ne va plus
+                        isOver = true;
                     }
-                    List<string> menu = new List<string>();
-                    XmlDocument xmlDocument = new XmlDocument();
-                    xmlDocument.Load(Loader.path + "Menu.xml");
-
-                    if (xmlDocument.DocumentElement.HasAttribute("replaceFont"))
-                    {
-                        fontIfy = bool.Parse(xmlDocument.DocumentElement.GetAttribute("replaceFont"));
-                    }
-
-                    foreach (XmlElement child in xmlDocument.DocumentElement.ChildNodes)
-                    {
-                        // Patch the Buttons
-                        switch (child.GetAttribute("name"))
-                        {
-                            case "backBtn":
-                                xMenu.TM(component.backBtn, child.InnerText, GetSize(child));
-                                break;
-                            case "startBtn":
-                                xMenu.TM(component.startBtn, child.InnerText, GetSize(child));
-                                gameObject.transform.FindChild("stage 2").FindChild("Header").GetComponent<TextMesh>().text = child.InnerText;
-                                break;
-                            case "settingBtn":
-                                xMenu.TM(component.settingBtn, child.InnerText, GetSize(child));
-                                break;
-                            case "spaceportBtn":
-                                xMenu.TM(component.spaceportBtn, child.InnerText, GetSize(child));
-                                break;
-                            case "commBtn":
-                                xMenu.TM(component.commBtn, child.InnerText, GetSize(child));
-                                break;
-                            case "continueBtn":
-                                xMenu.TM(component.continueBtn, child.InnerText, GetSize(child));
-                                break;
-                            case "creditsBtn":
-                                xMenu.TM(component.creditsBtn, child.InnerText, GetSize(child));
-                                break;
-                            case "newGameBtn":
-                                xMenu.TM(component.newGameBtn, child.InnerText, GetSize(child));
-                                break;
-                            case "quitBtn":
-                                xMenu.TM(component.quitBtn, child.InnerText, GetSize(child));
-                                break;
-                            case "scenariosBtn":
-                                xMenu.TM(component.scenariosBtn, child.InnerText, GetSize(child));
-                                break;
-                            case "trainingBtn":
-                                xMenu.TM(component.trainingBtn, child.InnerText, GetSize(child));
-                                break;
-                            case "KSPsiteURL":
-                                component.KSPsiteURL = child.InnerText;
-                                break;
-                            case "SpaceportURL":
-                                component.SpaceportURL = child.InnerText;
-                                break;
-                            default:
-                                break;
-                        }
-                    }
-
-                    // rien ne va plus
-                    isOver = true;
                 }
             }
         }
@@ -137,4 +140,4 @@
             }
         }
     }
-}+}


Added CarWeight

Added CarWeight

--- Derby/Models/Racer.cs
+++ Derby/Models/Racer.cs
@@ -12,6 +12,9 @@
         [Display(Name = "Car Number")]
         public string CarNumber { get; set; }

+        [Display(Name = "Car Weight")]
+        public double Weight { get; set; }
+
 		public int DenId { get; set; }
         public int ScoutId { get; set; }
 	}


GSF.Core: Added logic to GSF.IO.FileProcessor to allow the handler to requeue files if it is not ready to process them.

git-tfs-id: [https://tfs.codeplex.com/tfs/TFS07]$/gsf/Main;C91779

--- Source/Libraries/GSF.Core/IO/FileProcessor.cs
+++ Source/Libraries/GSF.Core/IO/FileProcessor.cs
@@ -44,6 +44,7 @@
         // Fields
         private readonly string m_fullPath;
         private readonly bool m_alreadyProcessed;
+        private bool m_requeue;

         #endregion

@@ -83,6 +84,22 @@
             get
             {
                 return m_alreadyProcessed;
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets a flag that indicates whether the
+        /// file should be requeued by the file processor.
+        /// </summary>
+        public bool Requeue
+        {
+            get
+            {
+                return m_requeue;
+            }
+            set
+            {
+                m_requeue = value;
             }
         }

@@ -441,19 +458,25 @@
         // Otherwise, waits 250 milliseconds and tries again.
         private void LockAndQueue(string filePath)
         {
+            if (m_disposed || !File.Exists(filePath))
+                return;
+
+            if (FilePath.TryGetReadLockExclusive(filePath))
+                m_processingQueue.Add(() => ProcessFile(filePath));
+            else
+                DelayLockAndQueue(filePath);
+        }
+
+        // Waits 250 milliseconds, then calls LockAndQueue.
+        private void DelayLockAndQueue(string filePath)
+        {
             WaitOrTimerCallback callback = (state, timeout) =>
             {
                 if (timeout)
                     LockAndQueue(filePath);
             };

-            if (m_disposed || !File.Exists(filePath))
-                return;
-
-            if (FilePath.TryGetReadLock(filePath))
-                m_processingQueue.Add(() => ProcessFile(filePath));
-            else
-                ThreadPool.RegisterWaitForSingleObject(m_waitObject, callback, null, 250, true);
+            ThreadPool.RegisterWaitForSingleObject(m_waitObject, callback, null, 250, true);
         }

         // Processes the given file.
@@ -473,9 +496,14 @@

             // Process the file at the given file path
             alreadyProcessed = m_processedFiles.Contains(filePath);
-            OnProcessing(filePath, alreadyProcessed);
-
-            if (!alreadyProcessed)
+
+            if (OnProcessing(filePath, alreadyProcessed))
+            {
+                // If the handler requeuests a requeue,
+                // requeue the file after a 250 millisecond delay.
+                DelayLockAndQueue(filePath);
+            }
+            else if (!alreadyProcessed)
             {
                 // Update the list of processed files
                 // and save it back to the cache
@@ -578,10 +606,18 @@
         }

         // Triggers the processing event for the given file.
-        private void OnProcessing(string fullPath, bool alreadyProcessed)
-        {
+        private bool OnProcessing(string fullPath, bool alreadyProcessed)
+        {
+            FileProcessorEventArgs args;
+
             if ((object)Processing != null)
-                Processing(this, new FileProcessorEventArgs(fullPath, alreadyProcessed));
+            {
+                args = new FileProcessorEventArgs(fullPath, alreadyProcessed);
+                Processing(this, args);
+                return args.Requeue;
+            }
+
+            return false;
         }

         // Triggers the error event with the given exception.


Identity col condition

Identity col condition

--- EFCore.BulkExtensions/TableInfo.cs
+++ EFCore.BulkExtensions/TableInfo.cs
@@ -193,14 +193,13 @@
             OwnedTypesDict = ownedTypes.ToDictionary(a => a.Name, a => a);

             IdentityColumnName = allProperties.SingleOrDefault(a => a.IsPrimaryKey() &&
-                                                                     (a.ClrType.Name.StartsWith("Byte") ||
-                                                                      a.ClrType.Name.StartsWith("SByte") ||
-                                                                      a.ClrType.Name.StartsWith("Int") ||
-                                                                      a.ClrType.Name.StartsWith("UInt") ||
-                                                                      (isSqlServer && a.ClrType.Name.StartsWith("Decimal"))) &&
-                                                                    !a.ClrType.Name.EndsWith("[]") &&
-                                                                    a.ValueGenerated == ValueGenerated.OnAdd
-                                                              )?.GetColumnName(ObjectIdentifier); // ValueGenerated equals OnAdd even for nonIdentity column like Guid so we only type int as second condition
+                                                                    a.ValueGenerated == ValueGenerated.OnAdd && // ValueGenerated equals OnAdd for nonIdentity column like Guid so take only number types
+                                                                    (a.ClrType.Name.StartsWith("Byte") ||
+                                                                     a.ClrType.Name.StartsWith("SByte")||
+                                                                     a.ClrType.Name.StartsWith("Int")  ||
+                                                                     a.ClrType.Name.StartsWith("UInt") ||
+                                                                     (isSqlServer && a.ClrType.Name.StartsWith("Decimal")))
+                                                              )?.GetColumnName(ObjectIdentifier);

             // timestamp/row version properties are only set by the Db, the property has a [Timestamp] Attribute or is configured in FluentAPI with .IsRowVersion()
             // They can be identified by the columne type "timestamp" or .IsConcurrencyToken in combination with .ValueGenerated == ValueGenerated.OnAddOrUpdate


clean up cluster benchmark

clean up cluster benchmark

--- src/cluster-playground/ClusterExperiment1/Program.cs
+++ src/cluster-playground/ClusterExperiment1/Program.cs
@@ -16,43 +16,18 @@
     {
         private static async Task RunFollower()
         {
-            Log.SetLoggerFactory(LoggerFactory.Create(l => l.AddConsole(o =>
-                        {
-                            o.IncludeScopes = false;
-                            o.UseUtcTimestamp = false;
-                            o.TimestampFormat = "hh:mm:ss:fff - ";
-                        }
-                    ).SetMinimumLevel(LogLevel.Information)
-                )
-            );
+            var logger = SetupLogger();

-            var cluster = SpawnMember(0);
+            var cluster = SpawnMember();

             Console.ReadLine();
         }

         private static async Task RunLeader()
         {
-            Log.SetLoggerFactory(LoggerFactory.Create(l => l.AddConsole(o =>
-                        {
-                            o.IncludeScopes = false;
-                            o.UseUtcTimestamp = false;
-                            o.TimestampFormat = "hh:mm:ss:fff - ";
-                        }
-                    ).SetMinimumLevel(LogLevel.Information)
-                )
-            );
-            var logger = Log.CreateLogger(nameof(Program));
+            var logger = SetupLogger();

-            var system = new ActorSystem();
-            var consul = new ConsulProvider(new ConsulProviderOptions());
-            var serialization = new Serialization();
-            serialization.RegisterFileDescriptor(MessagesReflection.Descriptor);
-            var cluster = new Cluster(system, serialization);
-
-            var db = GetMongo();
-            var identity = new MongoIdentityLookup("mycluster",db);
-            await cluster.StartClientAsync(new ClusterConfig("mycluster", "127.0.0.1", 8090, consul).WithIdentityLookup(identity));
+            var cluster = await SpawnClient();

             await Task.Delay(5000);

@@ -89,6 +64,22 @@
             Console.ReadLine();
         }

+        private static ILogger SetupLogger()
+        {
+            Log.SetLoggerFactory(LoggerFactory.Create(l => l.AddConsole(o =>
+                        {
+                            o.IncludeScopes = false;
+                            o.UseUtcTimestamp = false;
+                            o.TimestampFormat = "hh:mm:ss:fff - ";
+                        }
+                    ).SetMinimumLevel(LogLevel.Information)
+                )
+            );
+            var logger = Log.CreateLogger(nameof(Program));
+            return logger;
+        }
+
+
         public static async Task Main(string[] args)
         {
             if (args.Length == 0)
@@ -101,24 +92,54 @@
             }
         }

-
-        private static Cluster SpawnMember(int port)
+        private static async Task<Cluster> SpawnClient()
         {
             var system = new ActorSystem();
-            var consul = new ConsulProvider(new ConsulProviderOptions());
+            var clusterProvider = ClusterProvider();
             var serialization = new Serialization();
             serialization.RegisterFileDescriptor(MessagesReflection.Descriptor);
-            var db = GetMongo();
-            var identity = new MongoIdentityLookup("mycluster",db);
+            var identity = GetIdentityLookup();
             var cluster = new Cluster(system, serialization);
+
+            var config = GetClusterConfig(clusterProvider, identity);
+            await cluster.StartClientAsync(config);
+            return cluster;
+        }
+
+        private static Cluster SpawnMember()
+        {
+            var system = new ActorSystem();
+            var clusterProvider = ClusterProvider();
+            var serialization = new Serialization();
+            serialization.RegisterFileDescriptor(MessagesReflection.Descriptor);
+            var identity = GetIdentityLookup();
+            var cluster = new Cluster(system, serialization);
+
             var helloProps = Props.FromProducer(() => new HelloActor());
             cluster.Remote.RegisterKnownKind("hello", helloProps);
-            cluster.StartMemberAsync(new ClusterConfig("mycluster", "127.0.0.1", port, consul).WithIdentityLookup(identity));
+
+            var config = GetClusterConfig(clusterProvider, identity);
+            cluster.StartMemberAsync(config);
             return cluster;
-
-
         }

+        private static ClusterConfig GetClusterConfig(ConsulProvider clusterProvider, MongoIdentityLookup identity)
+        {
+            return new ClusterConfig("mycluster", "127.0.0.1", 0, clusterProvider).WithIdentityLookup(identity);
+        }
+
+        private static ConsulProvider ClusterProvider()
+        {
+            return new ConsulProvider(new ConsulProviderOptions());
+        }
+
+        private static MongoIdentityLookup GetIdentityLookup()
+        {
+            var db = GetMongo();
+            var identity = new MongoIdentityLookup("mycluster", db);
+            return identity;
+        }
+
         static IMongoDatabase GetMongo()
         {
             var connectionString =


--- Demo/2022/Algebra/Algebra/Rational.cs
+++ Demo/2022/Algebra/Algebra/Rational.cs
@@ -13,12 +13,13 @@
     IMultiplyOperators<Rational<TBase>, TBase, Rational<TBase>>,
     IDivisionOperators<Rational<TBase>, Rational<TBase>, Rational<TBase>>,
     IDivisionOperators<Rational<TBase>, TBase, Rational<TBase>>,
-    IEqualityOperators<Rational<TBase>, Rational<TBase>>,
     IUnaryPlusOperators<Rational<TBase>, Rational<TBase>>,
     IUnaryNegationOperators<Rational<TBase>, Rational<TBase>>,
-    IComparisonOperators<Rational<TBase>, Rational<TBase>>
+    IComparisonOperators<Rational<TBase>, Rational<TBase>>,
+    IComparisonOperators<Rational<TBase>, TBase>

-    where TBase : IAdditiveIdentity<TBase, TBase>,
+    where TBase :
+    IAdditiveIdentity<TBase, TBase>,
     IMultiplicativeIdentity<TBase, TBase>,
     IAdditionOperators<TBase, TBase, TBase>,
     ISubtractionOperators<TBase, TBase, TBase>,
@@ -147,40 +148,41 @@
     public static Rational<TBase> operator checked /(TBase left, Rational<TBase> right)
         => checked(new(left * right.Denominator, right.Numerator));

-    public static bool operator ==(Rational<TBase> left, Rational<TBase> right) => left.Equals(right);
-
-    public static bool operator !=(Rational<TBase> left, Rational<TBase> right) => !left.Equals(right);
-
     public static Rational<TBase> operator +(Rational<TBase> value) => value;

     public static Rational<TBase> operator checked -(Rational<TBase> value) => checked(new(-value.Numerator, value.Denominator));

     public static Rational<TBase> operator -(Rational<TBase> value) => new(-value.Numerator, value.Denominator);

-    public static bool operator >(Rational<TBase> left, Rational<TBase> right)
-        => left.Numerator * right.Denominator > left.Denominator * right.Denominator;
+    public static bool operator ==(Rational<TBase> left, Rational<TBase> right) => left.Equals(right);
+    public static bool operator !=(Rational<TBase> left, Rational<TBase> right) => !left.Equals(right);
+    public static bool operator >(Rational<TBase> left, Rational<TBase> right) => left.Numerator * right.Denominator > left.Denominator * right.Numerator;
+    public static bool operator >=(Rational<TBase> left, Rational<TBase> right) => left.Numerator * right.Denominator >= left.Denominator * right.Numerator;
+    public static bool operator <(Rational<TBase> left, Rational<TBase> right) => left.Numerator * right.Denominator < left.Denominator * right.Numerator;
+    public static bool operator <=(Rational<TBase> left, Rational<TBase> right) => left.Numerator * right.Denominator <= left.Denominator * right.Numerator;
+    public bool Equals(Rational<TBase> other) => Numerator * other.Denominator == Denominator * other.Numerator;
+    public int CompareTo(Rational<TBase> other) => (Numerator * other.Denominator).CompareTo(Denominator * other.Denominator);

-    public static bool operator >=(Rational<TBase> left, Rational<TBase> right)
-        => left.Numerator * right.Denominator >= left.Denominator * right.Denominator;
+    public static bool operator ==(Rational<TBase> left, TBase right) => left.Equals(right);
+    public static bool operator !=(Rational<TBase> left, TBase right) => !left.Equals(right);
+    public static bool operator >(Rational<TBase> left, TBase right) => left.Numerator > left.Denominator * right;
+    public static bool operator >=(Rational<TBase> left, TBase right) => left.Numerator >= left.Denominator * right;
+    public static bool operator <(Rational<TBase> left, TBase right) => left.Numerator < left.Denominator * right;
+    public static bool operator <=(Rational<TBase> left, TBase right) => left.Numerator <= left.Denominator * right;
+    public bool Equals(TBase? other) => Numerator == Denominator * other!;
+    public int CompareTo(TBase? other) => Numerator.CompareTo(Denominator * other!);

-    public static bool operator <(Rational<TBase> left, Rational<TBase> right)
-        => left.Numerator * right.Denominator < left.Denominator * right.Denominator;
-
-    public static bool operator <=(Rational<TBase> left, Rational<TBase> right)
-        => left.Numerator * right.Denominator <= left.Denominator * right.Denominator;
-
-    public bool Equals(Rational<TBase> other)
-        => Numerator * other.Denominator == Denominator * other.Numerator;
+    public static bool operator ==(TBase left, Rational<TBase> right) => left.Equals(right);
+    public static bool operator !=(TBase left, Rational<TBase> right) => !left.Equals(right);
+    public static bool operator >(TBase left, Rational<TBase> right) => left * right.Denominator > right.Numerator;
+    public static bool operator >=(TBase left, Rational<TBase> right) => left * right.Denominator >= right.Numerator;
+    public static bool operator <(TBase left, Rational<TBase> right) => left * right.Denominator < right.Numerator;
+    public static bool operator <=(TBase left, Rational<TBase> right) => left * right.Denominator <= right.Numerator;

     public override bool Equals(object? obj) => obj is Rational<TBase> other && Equals(other);
-
     public override int GetHashCode() => HashCode.Combine(Numerator, Denominator);
-
+    public int CompareTo(object? obj) => obj is Rational<TBase> other ? CompareTo(other) : -1;
     public override string ToString() => Denominator == TBase.MultiplicativeIdentity
         ? Numerator.ToString()!
         : $"{Numerator}/{Denominator}";
-
-    public int CompareTo(object? obj) => obj is Rational<TBase> other ? CompareTo(other) : -1;
-
-    public int CompareTo(Rational<TBase> other) => (Numerator * other.Denominator).CompareTo(Denominator * other.Denominator);
 }


Button UI

Button UI

--- Derby/Views/Competition/Create.cshtml
+++ Derby/Views/Competition/Create.cshtml
@@ -63,14 +63,14 @@

-                <input type="submit" value="Create" class="btn btn-success" />
+                <input type="submit" value="Create" class="btn btn-xs btn-success" />

 }

-    @Html.ActionLink("Back to Pack Details", "Details", "Pack", new { id = ViewBag.PackId }, new { @class = "btn btn-default" })
+    @Html.ActionLink("Back to Pack Details", "Details", "Pack", new { id = ViewBag.PackId }, new { @class = "btn btn-xs btn-default" })

 @section Scripts {


Fixing proxy bypass address serialization for legacy .NET drivers

The W3C WebDriver Specification states that the list of addresses to
bypass in a proxy configuration should be an array. The legacy OSS dialect
of the protocol specifies it must be a string. This commit fixes the
serialization for the non-spec-compliant case, serializing it as a
semicolon-separated list. Fixes issue #5645.

--- dotnet/src/webdriver/Proxy.cs
+++ dotnet/src/webdriver/Proxy.cs
@@ -441,6 +441,22 @@
         /// dialect of the wire protocol.</returns>
         internal Dictionary<string, object> ToCapability()
         {
+            return this.AsDictionary(true);
+        }
+
+        /// <summary>
+        /// Returns a dictionary suitable for serializing to the OSS dialect of the
+        /// wire protocol.
+        /// </summary>
+        /// <returns>A dictionary suitable for serializing to the OSS dialect of the
+        /// wire protocol.</returns>
+        internal Dictionary<string, object> ToLegacyCapability()
+        {
+            return this.AsDictionary(false);
+        }
+
+        private Dictionary<string, object> AsDictionary(bool isSpecCompliant)
+        {
             Dictionary<string, object> serializedDictionary = null;
             if (this.proxyKind != ProxyKind.Unspecified)
             {
@@ -484,17 +500,32 @@

                 if (this.noProxyAddresses.Count > 0)
                 {
-                    List<object> addressList = new List<object>();
-                    foreach (string address in this.noProxyAddresses)
-                    {
-                        addressList.Add(address);
-                    }
-
-                    serializedDictionary["noProxy"] = addressList;
+                    serializedDictionary["noProxy"] = this.GetNoProxyAddressList(isSpecCompliant);
                 }
             }

             return serializedDictionary;
+        }
+
+        private object GetNoProxyAddressList(bool isSpecCompliant)
+        {
+            object addresses = null;
+            if (isSpecCompliant)
+            {
+                List<object> addressList = new List<object>();
+                foreach (string address in this.noProxyAddresses)
+                {
+                    addressList.Add(address);
+                }
+
+                addresses = addressList;
+            }
+            else
+            {
+                addresses = this.BypassProxyAddresses;
+            }
+
+            return addresses;
         }

         private void VerifyProxyTypeCompatilibily(ProxyKind compatibleProxy)


Fix: Removing unneeded namespaces.

Fix: Removing unneeded namespaces.

--- rm.Trie/TrieFactory.cs
+++ rm.Trie/TrieFactory.cs
@@ -1,7 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using System.Collections.Generic;

 namespace rm.Trie
 {


Set texture sampling to linear.

Set texture sampling to linear.

--- drivers/AgateMDX/D3DDevice.cs
+++ drivers/AgateMDX/D3DDevice.cs
@@ -186,6 +186,9 @@
             mDevice.SamplerState[0].AddressU = TextureAddress.Clamp;
             mDevice.SamplerState[0].AddressV = TextureAddress.Clamp;

+            mDevice.SamplerState[0].MagFilter = TextureFilter.Linear;
+            mDevice.SamplerState[0].MinFilter = TextureFilter.Linear;
+
             SetView2D();
         }

@@ -207,7 +210,8 @@
             mDevice.RenderState.CullMode = Cull.None;
             mDevice.RenderState.Lighting = false;

-            //mDevice.SetTransform(TransformType.Projection, orthoProj);
+
+
             mDevice.SetTransform(TransformType.World, world);
             mDevice.SetTransform(TransformType.View, Matrix.Identity);


.sendmsg sucht jetzt Serverübergreifend nach einem Benutzer

--- NadekoBot/Modules/Administration/AdministrationModule.cs
+++ NadekoBot/Modules/Administration/AdministrationModule.cs
@@ -1010,7 +1010,8 @@
                    .AddCheck (SimpleCheckers.OwnerOnly ())
                    .Do (async e =>
                    {
-                       var u = e.Server.FindUsers (e.GetArg ("user")).FirstOrDefault ();
+                       var u = findUser(e.GetArg ("user"));
+
                        if (u == null)
                        {
                            await e.Channel.SendMessage ("Ungültiger Benutzer.").ConfigureAwait (false);
@@ -1065,6 +1066,17 @@

                     });
             });
+        }
+
+        public User findUser ( string v )
+        {
+            foreach (var ch in NadekoBot.Client.Servers.Select (s => s.DefaultChannel))
+            {
+                var u = ch.FindUsers (v).FirstOrDefault ();
+                if (u != null)
+                    return u;
+            }
+            return null;
         }

         public void SaveParseToDb<T>(string where) where T : IDataModel


Don't crash the client when the initial connection fails.

--- EchoClient/Program.cs
+++ EchoClient/Program.cs
@@ -19,8 +19,17 @@

 		private static async Task MainAsync(string[] args)
 		{
-			using (TcpClient client = new TcpClient("::1", 8080))
+			using (TcpClient client = new TcpClient())
 			{
+				try
+				{
+					client.ConnectAsync("localhost", 8080).Wait(3000);
+				}
+				catch (Exception)
+				{
+					Console.WriteLine($"Unable to connect, try again later.");
+					return;
+				}
 				using (NetworkStream stream = client.GetStream())
 				{
 					Console.WriteLine("Username:");


-Tests

-Tests

--- Src/Newtonsoft.Json.Tests/Linq/JTokenTests.cs
+++ Src/Newtonsoft.Json.Tests/Linq/JTokenTests.cs
@@ -56,6 +56,17 @@
     [TestFixture]
     public class JTokenTests : TestFixtureBase
     {
+        [Test]
+        public void DeepEqualsObjectOrder()
+        {
+            string ob1 = @"{""key1"":""1"",""key2"":""2""}";
+            string ob2 = @"{""key2"":""2"",""key1"":""1""}";
+
+            JObject j1 = JObject.Parse(ob1);
+            JObject j2 = JObject.Parse(ob2);
+            Assert.IsTrue(j1.DeepEquals(j2));
+        }
+
         [Test]
         public void ReadFrom()
         {


11 - Added comment that all directories must end with backslash

--- ObjectEntanglementLibrary/FileTunnelSpeedTest/Program.cs
+++ ObjectEntanglementLibrary/FileTunnelSpeedTest/Program.cs
@@ -12,6 +12,8 @@
 {
     class Program
     {
+        // directories must end with \
+
         static string TestReceiveDirectory = @"C:\Users\ari\TestFileServer\received\";
         static string TestServerRootDirectory = @"C:\Users\ari\TestFileServer\";


Simplify span tests.

Simplify span tests.

Tests were using ZipkinAnnotationVisitor instead.

--- Src/zipkin4net/Tests/Tracers/Zipkin/T_Span.cs
+++ Src/zipkin4net/Tests/Tracers/Zipkin/T_Span.cs
@@ -1,8 +1,10 @@
 using System;
-using zipkin4net.Annotation;
+using System.Text;
 using zipkin4net.Tracers.Zipkin;
 using zipkin4net.Utils;
 using NUnit.Framework;
+using zipkin4net.Tracers.Zipkin.Thrift;
+using BinaryAnnotation = zipkin4net.Tracers.Zipkin.BinaryAnnotation;
 using Span = zipkin4net.Tracers.Zipkin.Span;

 namespace zipkin4net.UTest.Tracers.Zipkin
@@ -11,87 +13,17 @@
     internal class T_Span
     {
         [Test]
-        public void DurationAndSpanStartedSetWhenSetAsComplete()
-        {
-            VerifySpanDurationComputedWhenSetAsComplete(Annotations.ClientSend(), Annotations.ClientRecv(), isRootSpan: false, isSpanStartedAndDurationSet:true);
-            VerifySpanDurationComputedWhenSetAsComplete(Annotations.ServerRecv(), Annotations.ServerSend(), isRootSpan: true, isSpanStartedAndDurationSet: true);
-            VerifySpanDurationComputedWhenSetAsComplete(Annotations.ServerRecv(), Annotations.ServerSend(), isRootSpan: false, isSpanStartedAndDurationSet: false);
-            VerifySpanDurationComputedWhenSetAsComplete(Annotations.LocalOperationStart("Operation"), Annotations.LocalOperationStop(), isRootSpan: false, isSpanStartedAndDurationSet: true);
-            VerifySpanDurationComputedWhenSetAsComplete(Annotations.ProducerStart(), Annotations.ProducerStop(), isRootSpan: false, isSpanStartedAndDurationSet: false);
-            VerifySpanDurationComputedWhenSetAsComplete(Annotations.ConsumerStart(), Annotations.ConsumerStop(), isRootSpan: false, isSpanStartedAndDurationSet: false);
-        }
-
-        private static void VerifySpanDurationComputedWhenSetAsComplete(IAnnotation start, IAnnotation stop, bool isRootSpan, bool isSpanStartedAndDurationSet)
-        {
-            var startTime = DateTime.Now;
-            var endTime = startTime.AddHours(1);
-            var expectedDuration = endTime.Subtract(startTime);
-
-            long? parentId = 0;
-            if (isRootSpan)
-                parentId = null;
-            var spanState = new SpanState(1, parentId, 2, isSampled: null, isDebug: false);
-            var spanCreatedTimestamp = TimeUtils.UtcNow;
-            var span = new Span(spanState, spanCreatedTimestamp);
-
-            var recordStart = new Record(spanState, startTime, start);
-            var visitorStart = new ZipkinAnnotationVisitor(recordStart, span);
-            var recordStop  = new Record(spanState, endTime, stop);
-            var visitorStop  = new ZipkinAnnotationVisitor(recordStop, span);
-
-            Assert.AreEqual(spanCreatedTimestamp, span.SpanCreated);
-            Assert.False(span.Duration.HasValue);
-            Assert.False(span.Complete);
-            recordStart.Annotation.Accept(visitorStart);
-            Assert.False(span.Duration.HasValue);
-            Assert.False(span.Complete);
-            recordStop.Annotation.Accept(visitorStop);
-            Assert.True(span.Complete);
-            if (isSpanStartedAndDurationSet)
-            {
-                Assert.AreEqual(expectedDuration, span.Duration);
-                Assert.AreEqual(startTime, span.SpanStarted);
-            }
-            else
-            {
-                Assert.False(span.Duration.HasValue);
-                Assert.False(span.SpanStarted.HasValue);
-            }
-        }
-
-        [Test]
-        public void ClientDurationIsPreferredOverServer()
-        {
-            var spanState = new SpanState(1, null, 2, isSampled: null, isDebug: false);
-            var span = new Span(spanState, TimeUtils.UtcNow);
-            const int offset = 10;
-
-            var annotationTime = TimeUtils.UtcNow;
-            var recordServerRecv = new Record(spanState, annotationTime, Annotations.ServerRecv());
-            recordServerRecv.Annotation.Accept(new ZipkinAnnotationVisitor(recordServerRecv, span));
-            var recordServerSend = new Record(spanState, annotationTime.AddMilliseconds(offset), Annotations.ServerSend());
-            recordServerSend.Annotation.Accept(new ZipkinAnnotationVisitor(recordServerSend, span));
-            var recordClientSend = new Record(spanState, annotationTime.AddMilliseconds(-offset), Annotations.ClientSend());
-            recordClientSend.Annotation.Accept(new ZipkinAnnotationVisitor(recordClientSend, span));
-            var recordClientRecv = new Record(spanState, annotationTime.AddMilliseconds(2 * offset), Annotations.ClientRecv());
-            recordClientRecv.Annotation.Accept(new ZipkinAnnotationVisitor(recordClientRecv, span));
-
-            Assert.True(span.Duration.HasValue);
-            Assert.AreEqual(3 * offset, span.Duration.Value.TotalMilliseconds);
-        }
-
-        [Test]
         public void MinimumDurationShouldBeAMicrosecond()
         {
             var spanState = new SpanState(1, null, 2, isSampled: null, isDebug: false);
             var span = new Span(spanState, TimeUtils.UtcNow);
+            var annotationTime = span.SpanCreated;
+            span.AddBinaryAnnotation(new BinaryAnnotation(zipkinCoreConstants.LOCAL_COMPONENT,
+                Encoding.UTF8.GetBytes("lc1"), AnnotationType.STRING, annotationTime,
+                SerializerUtils.DefaultServiceName, SerializerUtils.DefaultEndPoint));
+            span.SetAsComplete(annotationTime.AddTicks(1));

-            var annotationTime = span.SpanCreated;
-            var recordServerRecv = new Record(spanState, annotationTime, Annotations.ServerRecv());
-            recordServerRecv.Annotation.Accept(new ZipkinAnnotationVisitor(recordServerRecv, span));
-            var recordServerSend = new Record(spanState, annotationTime.AddTicks(1), Annotations.ServerSend());
-            recordServerSend.Annotation.Accept(new ZipkinAnnotationVisitor(recordServerSend, span));
-            Assert.True(span.Duration.HasValue);
+            Assert.NotNull(span.Duration);
             Assert.AreEqual(0.001, span.Duration.Value.TotalMilliseconds);
         }

@@ -102,9 +34,11 @@
         [TestCase(200, true)]
         public void SpanHasDurationOnlyIfValueIsPositive(int offset, bool shouldHaveDuration)
         {
-            var duration = GetSpanDuration(offset, Annotations.ClientSend(), Annotations.ClientRecv());
+            var duration = GetSpanDuration(TimeSpan.FromMilliseconds(offset), zipkinCoreConstants.CLIENT_SEND,
+                zipkinCoreConstants.CLIENT_RECV);
             if (shouldHaveDuration)
             {
+                Assert.NotNull(duration);
                 Assert.AreEqual(offset, (int) duration.Value.TotalMilliseconds);
             }
             else
@@ -116,36 +50,25 @@
         [Test]
         public void SpanDoesntHaveDurationIfIncomplete()
         {
-            const int offset = 10;
+            var offset = TimeSpan.FromMilliseconds(10);

-            Assert.False(GetSpanDuration(offset, Annotations.ServerRecv()).HasValue);
-            Assert.False(GetSpanDuration(offset, Annotations.ServerSend()).HasValue);
-            Assert.False(GetSpanDuration(offset, Annotations.ClientRecv()).HasValue);
-            Assert.False(GetSpanDuration(offset, Annotations.ClientSend()).HasValue);
-            Assert.False(GetSpanDuration(offset, Annotations.LocalOperationStart("Operation")).HasValue);
-            Assert.False(GetSpanDuration(offset, Annotations.LocalOperationStop()).HasValue);
-            Assert.False(GetSpanDuration(offset, Annotations.ConsumerStart()).HasValue);
-            Assert.False(GetSpanDuration(offset, Annotations.ConsumerStop()).HasValue);
-            Assert.False(GetSpanDuration(offset, Annotations.ProducerStart()).HasValue);
-            Assert.False(GetSpanDuration(offset, Annotations.ProducerStop()).HasValue);
+            Assert.False(GetSpanDuration(offset, zipkinCoreConstants.SERVER_SEND).HasValue);
+            Assert.False(GetSpanDuration(offset, zipkinCoreConstants.CLIENT_RECV).HasValue);
         }

-        private static TimeSpan? GetSpanDuration(int offset, IAnnotation firstAnnotation, IAnnotation secondAnnotation = null)
+        private static TimeSpan? GetSpanDuration(TimeSpan offset, params string[] annotations)
         {
-            var spanState = new SpanState(1, 0, 2, isSampled: null, isDebug: false);
+            var spanState = new SpanState(1, null, 2, isSampled: null, isDebug: false);
             var span = new Span(spanState, TimeUtils.UtcNow);
+            var annotationTime = span.SpanCreated;

-            var annotationTime = TimeUtils.UtcNow;
-            var firstRecord = new Record(spanState, annotationTime, firstAnnotation);
-            firstRecord.Annotation.Accept(new ZipkinAnnotationVisitor(firstRecord, span));
-            if (secondAnnotation != null)
-            {
-                var secondRecord = new Record(spanState, annotationTime.AddMilliseconds(offset), secondAnnotation);
-                secondRecord.Annotation.Accept(new ZipkinAnnotationVisitor(secondRecord, span));
-            }
+            Array.ForEach(annotations, a =>
+                span.AddAnnotation(new ZipkinAnnotation(annotationTime, a)));
+
+            span.SetAsComplete(annotationTime.Add(offset));

             return span.Duration;
         }
     }
-}
+}


Fixed a null reference exception seen during Astoria's appearance updates.

--- OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
+++ OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
@@ -531,6 +531,12 @@
                 baseItem = this.FindItem(baseItem.AssetID);
             }

+            if (baseItem == null)
+            {
+                //broken link cannot be followed
+                return null;
+            }
+
             if (baseItem.AssetType == (int)AssetType.Link)
             {
                 //recursion limit was hit


Added argument support for weather command

--- DwellerBot/Commands/WeatherCommand.cs
+++ DwellerBot/Commands/WeatherCommand.cs
@@ -16,9 +16,10 @@
     class WeatherCommand : CommandBase
     {
         private const string WeatherQueryUrl =
-            @"http://api.openweathermap.org/data/2.5/weather?q=Minsk,by&units=metric&lang=ru&APPID=";
+            @"http://api.openweathermap.org/data/2.5/weather?q=%location%&units=metric&lang=ru&APPID=";

         private readonly string _apiKey;
+        private string _location;

         public WeatherCommand(Api bot, string apiKey):base(bot)
         {
@@ -27,8 +28,27 @@

         public override async Task ExecuteAsync(Update update, Dictionary<string, string> parsedMessage)
         {
+            // Restore default value
+            _location = "Minsk,by";
+
+            // If arguments are supplied, try to insert them into query
+            if (parsedMessage.ContainsKey("message"))
+            {
+                var args = parsedMessage["message"].Split(',');
+                if (args.Length >= 2)
+                {
+                    _location = args[0] + "," + args[1];
+                }
+            }
+
             var responseStream = new StreamReader(await GetWeather());
             var weatherContainer = JsonConvert.DeserializeObject<WeatherContainer>(responseStream.ReadToEnd());
+            if (weatherContainer.cod == 404)
+            {
+                await _bot.SendTextMessage(update.Message.Chat.Id, "Invalid arguments.", false, update.Message.MessageId);
+                return;
+            }
+
             var sb = new StringBuilder();
             sb.Append("Погода в " + weatherContainer.name + ", " + weatherContainer.sys.country);
             sb.AppendLine(" на " + weatherContainer.dt.UnixTimeStampToDateTime().ToLocalTime().ToShortDateString());
@@ -45,7 +65,8 @@
         public async Task<Stream> GetWeather()
         {
             var hc = new HttpClient();
-            return await hc.GetStreamAsync(WeatherQueryUrl + _apiKey);
+            var queryUrl = WeatherQueryUrl.Replace("%location%", _location);
+            return await hc.GetStreamAsync(queryUrl + _apiKey);
         }
     }
 }


IMonitoredJobQueue has been tweaked to allow publishing some additional info over IObservable RunningCount / QueuedCount surfaced from the job execution queue OnJobCompletion surfaced from job execution queue OnQueueAction surfaced from ObservableDurableJobQueue added TimeSpan to CancelQueuedAndWaitForExecutingJobsToComplete

--- EPS.Concurrency/IMonitoredJobQueue.cs
+++ EPS.Concurrency/IMonitoredJobQueue.cs
@@ -5,16 +5,37 @@
 	/// <summary>	A very simple interface for adding items to a monitored job queue.  </summary>
 	/// <remarks>	7/24/2011. </remarks>
 	/// <typeparam name="T">	Generic type parameter. </typeparam>
-	public interface IMonitoredJobQueue<T>
+	public interface IMonitoredJobQueue<TJobInput, TJobOutput, TPoison>
 		: IDisposable
 	{
 		/// <summary>	Adds a job.  </summary>
 		/// <param name="input">	The input. </param>
-		void AddJob(T input);
-
+		void AddJob(TJobInput input);
+
+		/// <summary>
+		/// The Observable that monitors job completion, where completion can be either run to completion, exception or cancellation from the job
+		/// execution queue.
+		/// </summary>
+		/// <value>	A sequence of observable job completion notifications from the job execution queue. </value>
+		IObservable<JobResult<TJobInput, TJobOutput>> OnJobCompletion { get; }
+
+		/// <summary>	Gets notifications as items are moved around the durable queue. </summary>
+		/// <value>	A sequence of observable durable queue notifications. </value>
+		IObservable<DurableJobQueueAction<TJobInput, TPoison>> OnQueueAction { get; }

 		/// <summary>	Cancel queued jobs and wait for executing jobs to complete. </summary>
-		/// <remarks>	This should automatically be called upon Dispose. </remarks>
-		void CancelQueuedAndWaitForExecutingJobsToComplete();
+		/// <remarks>	This should automatically be called upon Dispose by classes implementing this interface. </remarks>
+		/// <param name="timeSpan">	The time span to block until terminating. </param>
+		void CancelQueuedAndWaitForExecutingJobsToComplete(TimeSpan timeout);
+
+		/// <summary>	Gets the number of running jobs from the job execution queue. </summary>
+		/// <value>	The number of running jobs. </value>
+		int RunningCount { get; }
+
+		/// <summary>	Gets the number of queued jobs from the job execution queue. </summary>
+		/// <value>	The number of queued jobs. </value>
+		int QueuedCount { get; }
+
+		//TODO: 7-26-2011 -- consider surfacing additional observables from a wrapped IJobResultInspector
 	}
 }


Call the proper keyboard setup program for saucy

--- PalasoUIWindowsForms/WritingSystems/WSKeyboardControl.cs
+++ PalasoUIWindowsForms/WritingSystems/WSKeyboardControl.cs
@@ -328,7 +328,15 @@
 			string arguments = null;

 #if MONO
-			program = "ibus-setup";
+			if (KeyboardController.CombinedKeyboardHandling)
+			{
+				program = "/usr/bin/gnome-control-center";
+				arguments = "region layouts";
+			}
+			else
+			{
+				program = "/usr/bin/ibus-setup";
+			}
 #else
 			program = Path.Combine(
 				Environment.GetFolderPath(Environment.SpecialFolder.System), @"control.exe");


UIの追加

UIの追加

--- FKS/Form1.Designer.cs
+++ FKS/Form1.Designer.cs
@@ -30,12 +30,23 @@
         {
             this.components = new System.ComponentModel.Container();
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
+            this.keyboardHook1 = new HongliangSoft.Utilities.Gui.KeyboardHook();
             this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
             this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
             this.ExitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-            this.keyboardHook1 = new HongliangSoft.Utilities.Gui.KeyboardHook();
+            this.label1 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.textBox1 = new System.Windows.Forms.TextBox();
+            this.textBox2 = new System.Windows.Forms.TextBox();
+            this.pictureBox1 = new System.Windows.Forms.PictureBox();
+            this.linkLabel1 = new System.Windows.Forms.LinkLabel();
             this.contextMenuStrip1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
             this.SuspendLayout();
+            //
+            // keyboardHook1
+            //
+            this.keyboardHook1.KeyboardHooked += new HongliangSoft.Utilities.Gui.KeyboardHookedEventHandler(this.keyboardHook1_KeyboardHooked);
             //
             // notifyIcon1
             //
@@ -45,6 +56,7 @@
             this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
             this.notifyIcon1.Text = "FKS";
             this.notifyIcon1.Visible = true;
+            this.notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);
             //
             // contextMenuStrip1
             //
@@ -60,24 +72,89 @@
             this.ExitToolStripMenuItem.Text = "終了";
             this.ExitToolStripMenuItem.Click += new System.EventHandler(this.ExitToolStripMenuItem_Click);
             //
-            // keyboardHook1
+            // label1
             //
-            this.keyboardHook1.KeyboardHooked += new HongliangSoft.Utilities.Gui.KeyboardHookedEventHandler(this.keyboardHook1_KeyboardHooked);
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(13, 13);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(41, 12);
+            this.label1.TabIndex = 1;
+            this.label1.Text = "左移動";
+            //
+            // label2
+            //
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(13, 60);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(41, 12);
+            this.label2.TabIndex = 2;
+            this.label2.Text = "右移動";
+            //
+            // textBox1
+            //
+            this.textBox1.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox1.Location = new System.Drawing.Point(12, 28);
+            this.textBox1.Name = "textBox1";
+            this.textBox1.ReadOnly = true;
+            this.textBox1.Size = new System.Drawing.Size(100, 19);
+            this.textBox1.TabIndex = 3;
+            this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
+            //
+            // textBox2
+            //
+            this.textBox2.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox2.Location = new System.Drawing.Point(12, 75);
+            this.textBox2.Name = "textBox2";
+            this.textBox2.ReadOnly = true;
+            this.textBox2.Size = new System.Drawing.Size(100, 19);
+            this.textBox2.TabIndex = 4;
+            this.textBox2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox2_KeyDown);
+            //
+            // pictureBox1
+            //
+            this.pictureBox1.Cursor = System.Windows.Forms.Cursors.Default;
+            this.pictureBox1.ErrorImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.ErrorImage")));
+            this.pictureBox1.InitialImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.InitialImage")));
+            this.pictureBox1.Location = new System.Drawing.Point(137, 8);
+            this.pictureBox1.Name = "pictureBox1";
+            this.pictureBox1.Size = new System.Drawing.Size(73, 73);
+            this.pictureBox1.TabIndex = 5;
+            this.pictureBox1.TabStop = false;
+            //
+            // linkLabel1
+            //
+            this.linkLabel1.AutoSize = true;
+            this.linkLabel1.Location = new System.Drawing.Point(140, 86);
+            this.linkLabel1.Name = "linkLabel1";
+            this.linkLabel1.Size = new System.Drawing.Size(70, 12);
+            this.linkLabel1.TabIndex = 6;
+            this.linkLabel1.TabStop = true;
+            this.linkLabel1.Text = "@come25136";
             //
             // Form1
             //
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.BackColor = System.Drawing.SystemColors.Window;
-            this.ClientSize = new System.Drawing.Size(120, 0);
+            this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
+            this.ClientSize = new System.Drawing.Size(232, 105);
+            this.Controls.Add(this.linkLabel1);
+            this.Controls.Add(this.pictureBox1);
+            this.Controls.Add(this.textBox2);
+            this.Controls.Add(this.textBox1);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
             this.KeyPreview = true;
             this.Name = "Form1";
-            this.Opacity = 0D;
-            this.ShowInTaskbar = false;
             this.Text = "FunctionKeySetting";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
             this.Load += new System.EventHandler(this.Form1_Load);
+            this.Shown += new System.EventHandler(this.Form1_Shown);
             this.contextMenuStrip1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
             this.ResumeLayout(false);
+            this.PerformLayout();

         }

@@ -86,6 +163,12 @@
         private System.Windows.Forms.NotifyIcon notifyIcon1;
         private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
         private System.Windows.Forms.ToolStripMenuItem ExitToolStripMenuItem;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.TextBox textBox1;
+        private System.Windows.Forms.TextBox textBox2;
+        private System.Windows.Forms.PictureBox pictureBox1;
+        private System.Windows.Forms.LinkLabel linkLabel1;
     }
 }


Fix release build warning

Fix release build warning

--- Test/TestsController/SystemControllerTests.cs
+++ Test/TestsController/SystemControllerTests.cs
@@ -31,7 +31,7 @@
         public async Task TestResetDbCallsService()
         {
             // Arrange
-
+

             // Act
@@ -46,7 +46,7 @@
         }
 #else
         [Fact]
-        public async Task TestResetDbThrowsException()
+        public Task TestResetDbThrowsException()
         {
             // Arrange

@@ -55,6 +55,8 @@
             // Assert
             ex.Result.Message.ShouldBe("WHAT!!! Don't reset DB in Release!");
             MockDbIntService.Verify(a => a.RecreateAndInitialize(), Times.Never);
+
+            return Task.CompletedTask;
         }
 #endif


Set ActivationDate on user create

Set ActivationDate on user create

--- AspNet.Identity.Shaolinq/ShaolinqIdentityUserStore.cs
+++ AspNet.Identity.Shaolinq/ShaolinqIdentityUserStore.cs
@@ -47,6 +47,8 @@
 				var dbUser = dataModel.Users.Create();

 				dbUser.Id = Guid.NewGuid();
+				dbUser.ActivationDate = DateTime.UtcNow;
+
 				MapUser(user, dbUser);

 				scope.Flush(dataModel);


Removed extra semicolon.

Removed extra semicolon.

--- TestCaseAutomator/ViewModels/MainViewModel.cs
+++ TestCaseAutomator/ViewModels/MainViewModel.cs
@@ -212,7 +212,7 @@
 		    }
             catch (TeamFoundationServiceUnavailableException tfsUnavailableEx)
             {
-                errorMessage = tfsUnavailableEx.Message; ;
+                errorMessage = tfsUnavailableEx.Message;
             }
             catch (Exception e) when (e.InnerException != null &&
 		                              e.InnerException.GetType() == typeof(TeamFoundationServiceUnavailableException))


HOW THE FUCK

HOW THE FUCK

--- Assets/Scripts/Editor/EditorTools/SearchandDestroy.cs
+++ Assets/Scripts/Editor/EditorTools/SearchandDestroy.cs
@@ -1,5 +1,4 @@
-//Assets/Editor/SearchForComponents.cs
-using UnityEngine;
+using UnityEngine;
 using UnityEditor;
 using System.Collections;
 using System.Collections.Generic;


Fixed typo

Fixed typo

--- Assets/Scripts/LevelGenerator/RandomLevelGenerator.cs
+++ Assets/Scripts/LevelGenerator/RandomLevelGenerator.cs
@@ -12,9 +12,9 @@
 	public int xOrg = 0;
 	public int yOrg = 0;
 	public float scale = 1.0f;
-	public float darkTreshold = 0.3f;
-	public float midTreshold = 0.5f;
-	public float lightTreshold = 0.7f;
+	public float darkThreshold = 0.3f;
+	public float midThreshold = 0.5f;
+	public float lightThreshold = 0.7f;
 	public string seed = "jamlight";

 	bool m_started = false;
@@ -53,9 +53,9 @@
 		xOrg = UnityEngine.Random.Range(-64,64);
 		yOrg = UnityEngine.Random.Range(-64,64);
 		scale = UnityEngine.Random.Range (2, 16);
-		darkTreshold = UnityEngine.Random.Range (1f, 40f) / 100f;
-		midTreshold = UnityEngine.Random.Range(41f,70f) / 100f;
-		lightTreshold = UnityEngine.Random.Range (71f, 100f) / 100f;
+		darkThreshold = UnityEngine.Random.Range (1f, 40f) / 100f;
+		midThreshold = UnityEngine.Random.Range(41f,70f) / 100f;
+		lightThreshold = UnityEngine.Random.Range (71f, 100f) / 100f;
 		RunGenerator();
 	}

@@ -64,19 +64,19 @@
 		if (!Ready && m_started)
 		{
 			Texture2D perlin = PerlinGenerator.CreatePerlinTexture(width, height, xOrg, yOrg, scale);
-			GenerateLevelFromBitmap(ApplyTresholds(perlin));
+			GenerateLevelFromBitmap(ApplyThresholds(perlin));
 		}
 	}

-	Texture2D ApplyTresholds(Texture2D tex)
+	Texture2D ApplyThresholds(Texture2D tex)
 	{
 		Color[] pixels = tex.GetPixels ();
 		for (int i = 0; i < pixels.Length; i++)
 		{
 			Color c = pixels[i];
-			c.r = c.r <= darkTreshold ? 0f : c.r >= lightTreshold ? 1f : c.r <= midTreshold ? 0.4f : 0.6f;
-			c.g = c.g <= darkTreshold ? 0f : c.g >= lightTreshold ? 1f : c.g <= midTreshold ? 0.4f : 0.6f;
-			c.b = c.b <= darkTreshold ? 0f : c.b >= lightTreshold ? 1f : c.b <= midTreshold ? 0.4f : 0.6f;
+			c.r = c.r <= darkThreshold ? 0f : c.r >= lightThreshold ? 1f : c.r <= midThreshold ? 0.4f : 0.6f;
+			c.g = c.g <= darkThreshold ? 0f : c.g >= lightThreshold ? 1f : c.g <= midThreshold ? 0.4f : 0.6f;
+			c.b = c.b <= darkThreshold ? 0f : c.b >= lightThreshold ? 1f : c.b <= midThreshold ? 0.4f : 0.6f;
 			pixels[i] = c;
 		}
 		tex.SetPixels(pixels);


Request Number Order Repository Tests

Request Number Order Repository Tests

--- Purchasing.Tests/RepositoryTests/OrderRepositoryTests.cs
+++ Purchasing.Tests/RepositoryTests/OrderRepositoryTests.cs
@@ -6395,6 +6395,86 @@

         #endregion CustomFieldAnswers Tests

+        #region RequestNumber
+
+        [TestMethod]
+        public void TestRequestNumberGenerates1()
+        {
+            #region Arrange
+            var record = CreateValidEntities.Order(9);
+            record.DateCreated = new DateTime(2012, 01, 10);
+            record.CreatedBy = new User("Blah");
+            #endregion Arrange
+
+            #region Act
+            record.GenerateRequestNumber();
+            #endregion Act
+
+            #region Assert
+            Assert.AreEqual("-DO74QFW", record.RequestNumber);
+            #endregion Assert
+        }
+
+        [TestMethod]
+        public void TestRequestNumberGenerates2()
+        {
+            #region Arrange
+            var record = CreateValidEntities.Order(9);
+            record.DateCreated = new DateTime(2012, 01, 10);
+            record.CreatedBy = new User("Blah");
+            record.Organization = new Organization();
+            record.Organization.SetIdTo("MyOrg");
+            #endregion Arrange
+
+            #region Act
+            record.GenerateRequestNumber();
+            #endregion Act
+
+            #region Assert
+            Assert.AreEqual("MyOrg-DO74QFW", record.RequestNumber);
+            #endregion Assert
+        }
+
+        [TestMethod]
+        public void TestRequestNumberGenerates3()
+        {
+            #region Arrange
+            var record = CreateValidEntities.Order(9);
+            record.DateCreated = new DateTime(2012, 01, 10);
+            record.CreatedBy = new User("jcs");
+            record.Organization = new Organization();
+            record.Organization.SetIdTo("MyOrg");
+            #endregion Arrange
+
+            #region Act
+            record.GenerateRequestNumber();
+            #endregion Act
+
+            #region Assert
+            Assert.AreEqual("MyOrg-D2GVCE", record.RequestNumber);
+            #endregion Assert
+        }
+
+        [TestMethod]
+        public void TestRequestNumberGenerates4()
+        {
+            #region Arrange
+            var record = CreateValidEntities.Order(9);
+            record.DateCreated = new DateTime(2012, 01, 10).AddTicks(1);
+            record.CreatedBy = new User("jcs");
+            record.Organization = new Organization();
+            record.Organization.SetIdTo("MyOrg");
+            #endregion Arrange
+
+            #region Act
+            record.GenerateRequestNumber();
+            #endregion Act
+
+            #region Assert
+            Assert.AreEqual("MyOrg-D2GVDB", record.RequestNumber);
+            #endregion Assert
+        }
+        #endregion RequestNumber

         #region Constructor Tests
@@ -6432,6 +6512,8 @@
             Assert.AreEqual(DateTime.Now.Date, record.DateCreated.Date);
             Assert.IsFalse(record.HasControlledSubstance);
             Assert.AreEqual(7.25m, record.EstimatedTax);
+
+            Assert.IsNull(record.RequestNumber);
             #endregion Assert
         }
         #endregion Constructor Tests


Updated Test

Updated Test

--- CanadaAlertSystem/CanadaAlertSystemTesting/Program.cs
+++ CanadaAlertSystem/CanadaAlertSystemTesting/Program.cs
@@ -5,9 +5,12 @@
 using System.Threading.Tasks;

 using System.IO;
+using System.Net.Sockets;
+using System.Net;
 using System.Xml.Linq;

 using ZacharySeguin.CanadaAlertSystem;
+using System.Diagnostics;

 namespace ZacharySeguin.CanadaAlertSystemTesting
 {
@@ -19,16 +22,29 @@

             system.AlertReceived += delegate(object sender, AlertEventArgs args)
             {
+                if (args.Alert.Status != AlertStatus.Actual && args.Alert.Status != AlertStatus.Exercise)
+                {
+                    Debug.WriteLine("{0} - Non actual/exercise alert received.", DateTime.Now.ToString());
+                    return;
+                }
+
                 Console.WriteLine("*** ALERT ****\n{0}: {1} at {2}", args.Alert.Sender, args.Alert.Identifier, args.Alert.Sent.ToString());

                 foreach (AlertInfo info in args.Alert.Information)
                 {
                     Console.WriteLine("\t{0} - {1} at {2}", info.SenderName, info.Event, info.Effective.ToString());
+
+                    foreach (AlertArea area in info.Areas)
+                    {
+                        Console.WriteLine("\t\tEffective For: " + area.Description);
+                        Console.WriteLine(area.Polygons[0]);
+                    }// End of foreach
                 }// End of foreach
+
+                Console.WriteLine();
             };
-
-            XDocument xDoc = XDocument.Load(@"C:\Users\zachary\Documents\Visual Studio 2013\Projects\CanadaAlertingSystem\CanadaAlertingSystem\ExampleXML\AlertExample1.xml");
-            Console.WriteLine("Success: " + system.LoadFromXmlDocument(xDoc));
+
+            system.ConnectToStream("streaming1.naad-adna.pelmorex.com", 8080);

             Console.Read();
         }


Modify the FetchProjectAndTasks to use a better implementation

--- TimeLog.ApiConsoleApp/FetchProjectAndTasks.cs
+++ TimeLog.ApiConsoleApp/FetchProjectAndTasks.cs
@@ -25,14 +25,14 @@
                     Logger.Info("Sucessfully authenticated on transactional API");
                 }

-                var _result = ProjectManagementHandler.Instance.ProjectManagementClient.GetTasksByProjectId(Guid.Parse("02624193-784C-4569-9CD1-50B764EEE1A6"), ProjectManagementHandler.Instance.Token);
+                var _result = ProjectManagementHandler.Instance.ProjectManagementClient.GetProjectTasksPaged(Guid.Parse("02624193-784C-4569-9CD1-50B764EEE1A6"), 1, 100, ProjectManagementHandler.Instance.Token);
                 if (_result.ResponseState == ExecutionStatus.Success)
                 {
                     foreach (var _task in _result.Return)
                     {
                         if (Logger.IsDebugEnabled)
                         {
-                            Logger.DebugFormat("{0} > {1}", _task.Details.WBS, _task.Name);
+                            Logger.DebugFormat("{0} > {1}", _task.TaskWBS, _task.TaskName);
                         }
                     }
                 }


forgot a _info

forgot a _info

--- CleanMyDesktop/DataHandler/DataHandler.AppSettings.cs
+++ CleanMyDesktop/DataHandler/DataHandler.AppSettings.cs
@@ -59,7 +59,7 @@
         cmd.CommandText = "create table _settings(key varchar(20), value varchar(50))";
         cmd.ExecuteNonQuery();

-        cmd.CommandText = "create unique index uniq_name on _info (key);";
+        cmd.CommandText = "create unique index uniq_name on _settings (key);";
         cmd.ExecuteNonQuery();
       }


Update payment analytics tracking. Update google play services to latest.

--- Engine/Game/Data/BaseDataObject.cs
+++ Engine/Game/Data/BaseDataObject.cs
@@ -17,6 +17,7 @@
     public static string game_id = "game_id";
     public static string uuid = "uuid";
     public static string code = "code";
+    public static string codeThirdParty = "code_third_party";
     public static string name = "name";
     public static string data_type = "data_type";
     public static string load_type = "load_type";
@@ -404,6 +405,8 @@
     public static string xp = "xp";
     public static string power = "power";
     public static string currency = "currency";
+    public static string receipt = "receipt";
+    public static string signature = "signature";
     public static string access = "access";
     //
     // content
@@ -419,6 +422,7 @@
     //
     // missions

+    public static string quantity = "quantity";
     public static string amount = "amount";
     public static string run = "run";
     public static string run_enemies = "run_enemies";


documentation

documentation

--- RelhaxModpack/RelhaxModpack/Automation/AutomationTask.cs
+++ RelhaxModpack/RelhaxModpack/Automation/AutomationTask.cs
@@ -134,7 +134,7 @@
         }

         /// <summary>
-        ///
+        /// "true" version means that the test being true is "bad"
         /// </summary>
         /// <param name="test"></param>
         /// <param name="formattedString"></param>


Fixed properties of patches to actually be fields (what they should be) added property to dump patch type to a string, which would then go to the log

--- RelhaxModpack/RelhaxModpack/InstallerComponents/Patch.cs
+++ RelhaxModpack/RelhaxModpack/InstallerComponents/Patch.cs
@@ -1,33 +1,55 @@
 namespace RelhaxModpack
 {
+    //TODO: move patch classes into interface stuff
     //a patch is an instruction of how to modify a text file
     //generally a mod config file
     public class Patch
     {
         //a single string with the filename of the processingNativeFile (needed for tracing work instructions after installation)
-        public string NativeProcessingFile { get; set; }
+        public string NativeProcessingFile = string.Empty;
         //the actual name of the origional patch before processed
-        public string ActualPatchName { get; set; }
+        public string ActualPatchName = string.Empty;
         //the type of patch, xml or regex (direct text replacement)
-        public string Type { get; set; }
+        public string Type = string.Empty;
         //if xml, the mode that the xml patcher should use
         //add xml node, remove xml node, edit xml node
-        public string Mode { get; set; }
+        public string Mode = string.Empty;
         //the starting path to the file
-        public string PatchPath { get; set; }
+        public string PatchPath = string.Empty;
         //the path to the file, relative to patchPath
-        public string File { get; set; }
+        public string File = string.Empty;
         //the complete path to the file, saved at parse time
-        public string CompletePath { get; set; }
+        public string CompletePath = string.Empty;
         //if xml or json, the xml xpath to the node
-        public string Path { get; set; }
+        public string Path = string.Empty;
         //if regex, the optional specific lines in the text file
         //to make the modifications
-        public string[] Lines { get; set; }
+        public string[] Lines;
         //the node inner text (xml) or regex criteria to search for
-        public string Search { get; set; }
+        public string Search = string.Empty;
         //the text to replace the found search text with
-        public string Replace { get; set; }
-        public Patch() { }
+        public string Replace = string.Empty;
+        public string DumpPatchInfoForLog
+        {
+            get
+            {
+                switch (Type.ToLower())
+                {
+                    case "regex":
+                    case "regx":
+                        return string.Format("regex patch, {0}={1}, {2}={3}, {4}={5}, {6}={7}, {8}={9}", nameof(PatchPath), PatchPath,
+                            nameof(File), File, nameof(Lines), Lines == null ? "null" : string.Join(",",Lines), nameof(Search), Search,
+                            nameof(Replace), Replace);
+                    case "xml":
+                        return string.Format("xml patch, {0}={1}, {2}={3}, {4}={5}, {6}={7}, {8}={9}", nameof(PatchPath), PatchPath,
+                            nameof(File), File, nameof(Path), Path, nameof(Search), Search, nameof(Replace), Replace);
+                    case "json":
+                        return string.Format("json patch, {0}={1}, {2}={3}, {4}={5}, {6}={7}, {8}={9}", nameof(PatchPath), PatchPath,
+                            nameof(File), File, nameof(Path), Path, nameof(Search), Search,  nameof(Replace), Replace);
+                    default:
+                        return string.Format("ERROR: unknown type: {0}",Type);
+                }
+            }
+        }
     }
 }


Don't import panic shows not of the format YYYY-MM-DD

--- RelistenApi/Services/Importers/PanicStreamComImporter.cs
+++ RelistenApi/Services/Importers/PanicStreamComImporter.cs
@@ -349,7 +349,7 @@
                 {
                     var parts = SourceFile.Split('/');

-                    if (parts.Length == 3)
+                    if (parts.Length == 3 && Regex.IsMatch(parts[1], @"\d{4}-\d{2}-\d{2}"))
                     {
                         _sourceName = parts[1];
                         _fileName = parts[2];


Fix commit 17455f50d29919a38a48a666faf80c3c2cf4aae1

--- Samples/Connectors/SampleConnection/OrdersWindow.xaml.cs
+++ Samples/Connectors/SampleConnection/OrdersWindow.xaml.cs
@@ -33,7 +33,12 @@
 				OrderTypeEnabled = false,
 			}.Init(Connector);

-			if (window.ShowModal(this))
+			if (!window.ShowModal(this))
+				return;
+
+			if (Connector.IsOrderEditable(order) == true)
+				Connector.EditOrder(order, window.Order);
+			else
 				Connector.ReRegisterOrder(order, window.Order);
 		}
 	}


Fix extract method code

Fix extract method code

The VS code generator is too opinionated on CLR types :)

--- src/dotnet/commands/dotnet-publish/PublishCommand.cs
+++ src/dotnet/commands/dotnet-publish/PublishCommand.cs
@@ -180,7 +180,7 @@
             return true;
         }

-        private Boolean InvokeBuildOnProject(ProjectContext context, String buildBasePath, String configuration)
+        private bool InvokeBuildOnProject(ProjectContext context, string buildBasePath, string configuration)
         {
             var args = new List<string>()
             {


fix creating listview columns

fix creating listview columns

the old version works only once

--- SimpleMusicPlayer/SimpleMusicPlayer/Base/BaseListView.cs
+++ SimpleMusicPlayer/SimpleMusicPlayer/Base/BaseListView.cs
@@ -9,27 +9,28 @@
 {
   public class BaseListView : ListView
   {
-    public BaseListView() {
-      ItemsSourceProperty.AddOwner(typeof(BaseListView), new FrameworkPropertyMetadata(null, OnItemsSourcePropertyChanged));
+    protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e) {
+      base.OnPropertyChanged(e);
+
+      if (e.Property.Name == "ItemsSource" && e.OldValue != e.NewValue && e.NewValue != null) {
+        CreateColumns(this);
+      }
     }

-    private static void OnItemsSourcePropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) {
-      if (e.OldValue != e.NewValue && e.NewValue != null) {
-        var lv = (BaseListView)dependencyObject;
-        var gridView = new GridView();
-        gridView.AllowsColumnReorder = true;
-        var properties = lv.DataType.GetProperties();
-        foreach (var pi in properties) {
-          var browsable = pi.GetCustomAttributes(true).FirstOrDefault(a => a is BrowsableAttribute) as BrowsableAttribute;
-          if (browsable != null && !browsable.Browsable) {
-            continue;
-          }
-          var binding = new Binding {Path = new PropertyPath(pi.Name), Mode = BindingMode.OneWay};
-          var gridViewColumn = new GridViewColumn() {Header = pi.Name, DisplayMemberBinding = binding};
-          gridView.Columns.Add(gridViewColumn);
+    private static void CreateColumns(BaseListView lv) {
+      var gridView = new GridView();
+      gridView.AllowsColumnReorder = true;
+      var properties = lv.DataType.GetProperties();
+      foreach (var pi in properties) {
+        var browsable = pi.GetCustomAttributes(true).FirstOrDefault(a => a is BrowsableAttribute) as BrowsableAttribute;
+        if (browsable != null && !browsable.Browsable) {
+          continue;
         }
-        lv.View = gridView;
+        var binding = new Binding { Path = new PropertyPath(pi.Name), Mode = BindingMode.OneWay };
+        var gridViewColumn = new GridViewColumn() { Header = pi.Name, DisplayMemberBinding = binding };
+        gridView.Columns.Add(gridViewColumn);
       }
+      lv.View = gridView;
     }

     public Type DataType { get; set; }


stupid comment

stupid comment

--- OfficeOlympicsWeb/Controllers/HomeController.cs
+++ OfficeOlympicsWeb/Controllers/HomeController.cs
@@ -63,7 +63,7 @@
             await _recordService.InsertRecordAsync(record);

-            if (await _recordService.IsRecordTheBestAsync(record))
+            if (await _recordService.IsRecordTheBestAsync(record))// Move this to the cliental;skdhfa;psiodfhpaiosdhfiopashdfpoashidf
             {
                 var recordHub = GlobalHost.ConnectionManager.GetHubContext<RecordHub>();
                 var connectionId = HttpContext.Request.Cookies["conn-id"].Value;


Added CC for long consonants

Added CC for long consonants

--- OpenUtau.Plugin.Builtin/FrenchVCCVPhonemizer.cs
+++ OpenUtau.Plugin.Builtin/FrenchVCCVPhonemizer.cs
@@ -148,6 +148,9 @@
                             }
                         } else {
                             cci = $"{cc[i]} {cc[i + 1]}";
+                            if (!HasOto(cci, syllable.tone)) {
+                                cci = $"{cc[i]}{cc[i + 1]}";
+                            }
                             TryAddPhoneme(phonemes, syllable.tone, cci);
                         }

@@ -204,6 +207,9 @@
                         if (!HasOto(cci,ending.tone)) {
                             cci = $"{cc[i]}{cc[i + 1]}_";
                         }
+                        if (!HasOto(cci, ending.tone)) {
+                            cci = $"{cc[i]}{cc[i + 1]}";
+                        }

                         TryAddPhoneme(phonemes, ending.tone, cci);
                     }


Fixed minimize markup

Fixed minimize markup

--- Azimuth/Views/Shared/_Layout.cshtml
+++ Azimuth/Views/Shared/_Layout.cshtml
@@ -13,17 +13,15 @@
     @RenderSection("styles", false)

-

+

-

-
+

+

-

-            @if (Request.IsAuthenticated)
-            {
-

-

+                @if (Request.IsAuthenticated)
+                {
+

                         <form role="form" action="/search">

                                 <input type="text" placeholder="Search" class="form-control" style="min-width: 150px;" name="searchParam" />
@@ -35,14 +33,24 @@

                         </form>

-

-

+                }
+                <button type="button" class="navbar-toggle collapsed col-xs-1" data-toggle="collapse" data-target=".navbar-collapse">
+
+
+
+                </button>
+

+            @if (Request.IsAuthenticated)
+            {
+

+

+

-
+

                             @User.Identity.GetUserName()

-

+

@Html.ActionLink("Account", "Index", "UserProfile")


Correct lat/long

Correct lat/long

--- AzureFunctions/WiFiGatherer/run.csx
+++ AzureFunctions/WiFiGatherer/run.csx
@@ -33,17 +33,17 @@
     DateTime time = DateTime.Now;
     datapoints = new WiFi[] {
         new WiFi {
-            Location = new Point(52.205576, 0.119219), //Waffle man, Market
+            Location = new Point(0.119219, 52.205576), //Waffle man, Market
             Connections = GetConnections(time, 1.1, log),
             Time = time
         },
         new WiFi {
-            Location = new Point(52.201987, 0.122259), //Downing site
+            Location = new Point(0.122259, 52.201987), //Downing site
             Connections = GetConnections(time, 0.9, log),
             Time = time
         },
         new WiFi {
-            Location = new Point(52.204853, 0.116809), //King's chapel
+            Location = new Point(0.1168093, 52.20485), //King's chapel
             Connections = GetConnections(time, 0.5, log),
             Time = time
         },


Made `Vector2` implement `IEquatable<Vector2>`.

--- Evbpc.Framework/Physics/Vector2.cs
+++ Evbpc.Framework/Physics/Vector2.cs
@@ -9,7 +9,7 @@
     /// <summary>
     /// Represents a value with an X and Y coordinate, that represents a direction and magnitude of a system.
     /// </summary>
-    public struct Vector2 : IVector2
+    public struct Vector2 : IVector2, IEquatable<Vector2>
     {
         /// <summary>
         /// Creates a new instance of <see cref="Vector2"/> with the specified <see cref="X"/> and <see cref="Y"/> values.
@@ -121,6 +121,13 @@
         public static Vector2 FromRTheta(double r, double theta) => new Vector2((int)(r * Math.Cos(theta)), (int)(r * Math.Sin(theta)));

         /// <summary>
+        /// Determines if the specified <see cref="Vector2"/> object is equal to the current <see cref="Vector2"/>.
+        /// </summary>
+        /// <param name="other">The <see cref="Vector2"/> to compare to.</param>
+        /// <returns>True if the specified <see cref="Vector2"/> is equivalent to the current <see cref="Vector2"/>.</returns>
+        public bool Equals(Vector2 other) => this == other;
+
+        /// <summary>
         /// Adds two <see cref="Vector2"/> objects together and returns the result.
         /// </summary>
         /// <param name="v1">The first <see cref="Vector2"/> to be added.</param>


[050dev] Stop writing a space at the end of the command line in the header, as it causes problems in comparing.

--- OpusOptionInterfacePropertyGenerator/Program.cs
+++ OpusOptionInterfacePropertyGenerator/Program.cs
@@ -500,10 +500,10 @@
             {
                 WriteLine(writer, 0, "// Automatically generated file from OpusOptionInterfacePropertyGenerator. DO NOT EDIT.");
                 WriteLine(writer, 0, "// Command line:");
-                Write(writer, 0, "// ");
+                Write(writer, 0, "//");
                 foreach (string arg in parameters.args)
                 {
-                    Write(writer, 0, "{0} ", arg);
+                    Write(writer, 0, " {0}", arg);
                 }
                 Write(writer, 0, writer.NewLine);
                 WriteLine(writer, 0, "namespace {0}", parameters.outputNamespace);
@@ -712,15 +712,34 @@
                 // write header
                 WriteLine(builder, 0, "// Automatically generated file from OpusOptionInterfacePropertyGenerator.");
                 WriteLine(builder, 0, "// Command line:");
-                Write(builder, 0, "// ");
+                Write(builder, 0, "//");
                 foreach (string arg in parameters.args)
                 {
-                    Write(builder, 0, "{0} ", arg);
+                    Write(builder, 0, " {0}", arg);
                 }
                 Write(builder, 0, System.Environment.NewLine);
                 if (null != layout && layout.header.Length != 0 && !builder.ToString().Equals(layout.header.ToString()))
                 {
-                    throw new Exception("Headers are different:\nFile:\n'{0}'\nNew:\n'{1}'", layout.header.ToString(), builder.ToString());
+                    System.Text.StringBuilder message = new System.Text.StringBuilder();
+
+                    byte[] layoutHeaderBytes = System.Text.Encoding.ASCII.GetBytes(layout.header.ToString());
+                    byte[] builderHeaderBytes = System.Text.Encoding.ASCII.GetBytes(builder.ToString());
+                    System.Collections.Generic.List<int> differenceIndices = new System.Collections.Generic.List<int>();
+                    for (int i = 0; i < System.Math.Min(layoutHeaderBytes.Length, builderHeaderBytes.Length); ++i)
+                    {
+                        if (layoutHeaderBytes[i] != builderHeaderBytes[i])
+                        {
+                            differenceIndices.Add(i);
+                        }
+                    }
+
+                    message.AppendFormat("Headers are different:\nFile:\n'{0}'\nNew:\n'{1}'\nDifferences at:\n", layout.header.ToString(), builder.ToString());
+                    foreach (int diff in differenceIndices)
+                    {
+                        message.AppendFormat("\t{0}: {1} vs {2}\n", diff, layoutHeaderBytes[diff], builderHeaderBytes[diff]);
+                    }
+
+                    throw new Exception(message.ToString());
                 }
                 WriteLine(writer, 0, builder.ToString());


Fix link

Fix link

--- Battery-Commander.Web/Views/Home/Index.cshtml
+++ Battery-Commander.Web/Views/Home/Index.cshtml
@@ -79,8 +79,8 @@

                             @Html.ActionLink(row.Rank.DisplayName(), "Index", "SSD", new { unit = unit.Unit.Id,  rank = row.Rank})
                             @Html.ActionLink(row.Assigned.ToString(), "Index", "SSD", new { unit = unit.Unit.Id, rank = row.Rank })
-                            @Html.ActionLink(row.Completed.ToString(), "Index", "SSD", new { unit = unit.Unit.Id, rank = row.Rank, completed = true })
-                            @Html.ActionLink(row.Percentage.ToString("P2"), "Index", "SSD", new { unit = unit.Unit.Id, rank = row.Rank, completed = false })
+                            @Html.ActionLink(row.Completed.ToString(), "Index", "SSD", new { unit = unit.Unit.Id, rank = row.Rank, complete = true })
+                            @Html.ActionLink(row.Percentage.ToString("P2"), "Index", "SSD", new { unit = unit.Unit.Id, rank = row.Rank, complete = false })

                     }


Ajuste no método de exclusão de agendamento para não duplicar a ligação com os períodos. #20000006-1009 #143

--- Src/GestaoEscolar/Academico/Sondagem/Agendamento.aspx.cs
+++ Src/GestaoEscolar/Academico/Sondagem/Agendamento.aspx.cs
@@ -665,8 +665,10 @@

                     int ind = VS_ListaAgendamento.IndexOf(VS_ListaAgendamento.Where(a => a.sda_id == idExcluir).First());
                     VS_ListaAgendamento.RemoveAt(ind);
+                    VS_ListaAgendamentoPeriodo.RemoveAll(p => p.sda_id == idExcluir);

                     //Exclui as retificações do agendamento
+                    VS_ListaAgendamentoPeriodo.RemoveAll(p => VS_ListaAgendamento.Any(a => a.sda_idRetificada == idExcluir && a.sda_id == p.sda_id));
                     VS_ListaAgendamento.RemoveAll(a => a.sda_idRetificada == idExcluir);

                     VS_ListaAgendamento = VS_ListaAgendamento.OrderByDescending(a => a.sda_dataInicio).ThenByDescending(a => a.sda_dataFim).ToList();


Dont add duplicate file items

Dont add duplicate file items

--- StructuredXmlEditor/Tools/ProjectView/ProjectViewTool.cs
+++ StructuredXmlEditor/Tools/ProjectView/ProjectViewTool.cs
@@ -165,8 +165,12 @@
 				{
 					if (ext != String.Empty)
 					{
-						new ProjectItem(Workspace, current, this, part);
-						current.UpdateChildFolders();
+						var existing = current.Children.FirstOrDefault(e => e.Name == part);
+						if (existing == null)
+						{
+							new ProjectItem(Workspace, current, this, part);
+							current.UpdateChildFolders();
+						}
 					}
 					else
 					{


remove unused tests

remove unused tests

--- Packager.Test/Processors/AudioProcessorTests.cs
+++ Packager.Test/Processors/AudioProcessorTests.cs
@@ -309,28 +309,7 @@
                         Arg.Any<ConsolidatedPodMetadata>());
                 }
             }
-
-            public class WhenClearingMetadataFields : WhenNothingGoesWrong
-            {
-                [Test]
-                public void ItShouldCloseSection()
-                {
-                    Observers.Received().EndSection(Arg.Any<string>(), "Original BEXT metadata fields cleared successfully");
-                }
-
-                [Test]
-                public void ItShouldOpenSection()
-                {
-                    Observers.Received().BeginSection("Clearing original BEXT metadata fields");
-                }
-
-                [Test]
-                public void ItShouldTellProcessorToRemoveFields()
-                {
-                    BextProcessor.Received().ClearAllBextMetadataFields(Arg.Is<List<ObjectFileModel>>(l => l.SingleOrDefault(m => m.IsSameAs(PreservationFileName)) != null));
-                }
-            }
-
+
             public class WhenGeneratingXmlManifest : WhenNothingGoesWrong
             {
                 private CarrierData CarrierData { get; set; }


remove unneeded INPC

remove unneeded INPC

--- TCC.Core/UI/Controls/Skills/FixedSkillContainers.xaml.cs
+++ TCC.Core/UI/Controls/Skills/FixedSkillContainers.xaml.cs
@@ -7,9 +7,7 @@
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Collections.Specialized;
-using System.ComponentModel;
 using System.Linq;
-using System.Runtime.CompilerServices;
 using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Controls;
@@ -26,7 +24,7 @@
 namespace TCC.UI.Controls.Skills
 {
     //TODO: refactor this
-    public partial class FixedSkillContainers : INotifyPropertyChanged
+    public partial class FixedSkillContainers
     {
         private object[] _mainOrder = { };
         private object[] _secondaryOrder = { };
@@ -295,11 +293,6 @@
             }
         }

-        public event PropertyChangedEventHandler PropertyChanged = null!;
-
-        protected void N([CallerMemberName] string? propertyName = null)
-        {
-            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
-        }
+
     }
 }


Form was slightly too small

Form was slightly too small

--- CalDavSynchronizer/Ui/OptionsForm.Designer.cs
+++ CalDavSynchronizer/Ui/OptionsForm.Designer.cs
@@ -39,7 +39,7 @@
       // _okButton
       //
       this._okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this._okButton.Location = new System.Drawing.Point(289, 555);
+      this._okButton.Location = new System.Drawing.Point(289, 581);
       this._okButton.Name = "_okButton";
       this._okButton.Size = new System.Drawing.Size(75, 23);
       this._okButton.TabIndex = 0;
@@ -51,7 +51,7 @@
       //
       this._cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this._cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-      this._cancelButton.Location = new System.Drawing.Point(370, 555);
+      this._cancelButton.Location = new System.Drawing.Point(370, 581);
       this._cancelButton.Name = "_cancelButton";
       this._cancelButton.Size = new System.Drawing.Size(75, 23);
       this._cancelButton.TabIndex = 1;
@@ -66,13 +66,13 @@
       this._tabControl.Location = new System.Drawing.Point(13, 13);
       this._tabControl.Name = "_tabControl";
       this._tabControl.SelectedIndex = 0;
-      this._tabControl.Size = new System.Drawing.Size(432, 536);
+      this._tabControl.Size = new System.Drawing.Size(432, 562);
       this._tabControl.TabIndex = 2;
       //
       // _addProfileButton
       //
       this._addProfileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this._addProfileButton.Location = new System.Drawing.Point(13, 555);
+      this._addProfileButton.Location = new System.Drawing.Point(13, 581);
       this._addProfileButton.Name = "_addProfileButton";
       this._addProfileButton.Size = new System.Drawing.Size(75, 23);
       this._addProfileButton.TabIndex = 3;
@@ -86,7 +86,7 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.CancelButton = this._cancelButton;
-      this.ClientSize = new System.Drawing.Size(457, 590);
+      this.ClientSize = new System.Drawing.Size(457, 616);
       this.ControlBox = false;
       this.Controls.Add(this._addProfileButton);
       this.Controls.Add(this._tabControl);


test fix

test fix

--- Castle.DynamicLinqQueryBuilder.Tests/Tests.cs
+++ Castle.DynamicLinqQueryBuilder.Tests/Tests.cs
@@ -3461,7 +3461,7 @@
                 Field = "Children.FirstName",
                 Id = "Children.FirstName",
                 Input = "NA",
-                Operator = "not_equal",
+                Operator = "equal",
                 Type = "string",
                 Value = "John Jr.",
             };


Put in another leveling test.

Put in another leveling test.

--- Tests/MatterControl.Tests/MatterControl/LevelingTests.cs
+++ Tests/MatterControl.Tests/MatterControl/LevelingTests.cs
@@ -47,7 +47,45 @@
     [TestFixture]
     public class LevelingTests
     {
-        [Test, Category("Leveling")]
+		[Test, Category("Leveling")]
+		public void Leveling7PointsNeverGetsTooHeigh()
+		{
+			PrintLevelingData levelingData = new PrintLevelingData();
+
+			double radius = 100;
+			levelingData.SampledPositions = new List<Vector3>();
+			levelingData.SampledPositions.Add(new Vector3(130.00, 0.00, 0));
+			levelingData.SampledPositions.Add(new Vector3(65.00, 112.58, 10));
+			levelingData.SampledPositions.Add(new Vector3(-65.00, 112.58, 0));
+			levelingData.SampledPositions.Add(new Vector3(-130.00, 0.00, 10));
+			levelingData.SampledPositions.Add(new Vector3(-65.00, -112.58, 0));
+			levelingData.SampledPositions.Add(new Vector3(65.00, -112.58, 10));
+
+			levelingData.SampledPositions.Add(new Vector3(0, 0, 0));
+
+			levelingData.SampledPositions.Add(new Vector3(0, 0, 6));
+
+			Vector2 bedCenter = Vector2.Zero;
+
+			RadialLevlingFunctions levelingFunctions7Point = new RadialLevlingFunctions(6, levelingData, bedCenter);
+			int totalPoints = 2000;
+			for (int curPoint = 0; curPoint < totalPoints; curPoint++)
+			{
+				Vector2 currentTestPoint = new Vector2(radius, 0);
+				currentTestPoint.Rotate(MathHelper.Tau / totalPoints * curPoint);
+				Vector3 destPosition = new Vector3(currentTestPoint, 0);
+
+				Vector3 outPosition = levelingFunctions7Point.GetPositionWithZOffset(destPosition);
+				Assert.IsTrue(outPosition.z <= 10);
+
+				string outPositionString = levelingFunctions7Point.DoApplyLeveling(GetGCodeString(destPosition), destPosition, PrinterMachineInstruction.MovementTypes.Absolute);
+				double outZ = 0;
+				Assert.IsTrue(GCodeFile.GetFirstNumberAfter("Z", outPositionString, ref outZ));
+				Assert.IsTrue(outZ <= 10);
+			}
+		}
+
+		[Test, Category("Leveling")]
         public void Leveling7PointsCorectInterpolation()
 		{
 			PrintLevelingData levelingData = new PrintLevelingData();


fixed typo

fixed typo

--- Controls/businesspack/FileUpload/sample3/ViewModel.cs
+++ Controls/businesspack/FileUpload/sample3/ViewModel.cs
@@ -18,7 +18,7 @@

         public void Process()
         {
-            var folderPath = GetFolderdPath();
+            var folderPath = GetFolderPath();

             // save all files to disk
             foreach (var file in Upload.Files)
@@ -32,7 +32,7 @@
             Upload.Clear();
         }

-        private string GetFolderdPath()
+        private string GetFolderPath()
         {
             var folderPath = Path.Combine(Context.Configuration.ApplicationPhysicalPath, "MyFiles");


information -> verbose for bg job status messages

--- Core.BackgroundJobs/Services/BackgroundJobLauncher.cs
+++ Core.BackgroundJobs/Services/BackgroundJobLauncher.cs
@@ -97,7 +97,7 @@

         private void LogJobStarted(string jobId)
         {
-            _logger.Information("'{jobName}' STARTING", jobId);
+            _logger.Verbose("'{jobName}' STARTING", jobId);
         }

         private void LogJobResult(string jobId, Result<string, OperationError> result)
@@ -119,7 +119,7 @@

         private void LogJobSucceeded(string jobId, Result<string, OperationError> result)
         {
-            _logger.Information("'{jobName}' SUCCEEDED with '{message}'", jobId, result.Value);
+            _logger.Verbose("'{jobName}' SUCCEEDED with '{message}'", jobId, result.Value);
         }
     }
 }