This probably closes #54.

This probably closes #54.

--- Chiro.CiviCrm.Api/DataContracts/Requests/MembershipRequest.cs
+++ Chiro.CiviCrm.Api/DataContracts/Requests/MembershipRequest.cs
@@ -53,9 +53,12 @@
         /// Only if IsOverride is true, the resulting membership will have the requested
         /// status. I will set this by default if Status != null.
         /// </summary>
-        [JsonConverter(typeof(BoolConverter))]
+        [JsonConverter(typeof (BoolConverter))]
         [JsonProperty("is_override", NullValueHandling = NullValueHandling.Ignore)]
-        public bool? IsOverride { get { return Status.HasValue; } }
+        public bool? IsOverride
+        {
+            get { return Status.HasValue ? true : (bool?) null; }
+        }

         [JsonConverter(typeof(BoolConverter))]
         [JsonProperty("is_test", NullValueHandling = NullValueHandling.Ignore)]


Remove free hand check from buckle

Remove free hand check from buckle

--- Content.Server/GameObjects/Components/Mobs/BuckleComponent.cs
+++ Content.Server/GameObjects/Components/Mobs/BuckleComponent.cs
@@ -93,13 +93,6 @@
                 return false;
             }

-            if (hands.GetActiveHand != null)
-            {
-                _notifyManager.PopupMessage(user, user,
-                    Loc.GetString("Your hand isn't free!"));
-                return false;
-            }
-
             if (Buckled)
             {
                 _notifyManager.PopupMessage(Owner, user,


update client app

update client app

update client app

--- tests/TestApp/AdalAndroidTestApp/MainActivity.cs
+++ tests/TestApp/AdalAndroidTestApp/MainActivity.cs
@@ -53,9 +53,9 @@
             this.accessTokenTextView = FindViewById<TextView>(Resource.Id.accessTokenTextView);

             sts.Authority = "https://login.microsoftonline.com/common";
-            sts.ValidClientId = "b92e0ba5-f86e-4411-8e18-6b5f928d968a";
+            sts.ValidClientId = "<CLIENT_ID>";
             sts.ValidResource = "https://graph.windows.net";
-            sts.ValidUserName = "mdm@msdevex.onmicrosoft.com";
+            sts.ValidUserName = "<USER_NAME>";

             EditText email = FindViewById<EditText>(Resource.Id.email);
             email.Text = sts.ValidUserName;


* added 1 TODO

* added 1 TODO

--- code/UI/Win32/Modules/ProgramInfoUC/ViewModel.cs
+++ code/UI/Win32/Modules/ProgramInfoUC/ViewModel.cs
@@ -3,6 +3,7 @@
 namespace XElement.SDM.UI.Win32.Modules.ProgramInfo
 {
 #region not unit-tested
+    //TODO: Visiualize that a program has already been started
     public class ViewModel
     {
         public ViewModel( Model model )


Fix to not read from inexistent report.log

--- Raccoon/Core/Game.cs
+++ Raccoon/Core/Game.cs
@@ -121,7 +121,11 @@
                     // include report.log
                     System.Diagnostics.Debug.Flush();
                     logWriter.WriteLine("\n\nreport.log\n-------------\n");
-                    logWriter.WriteLine(File.ReadAllText(Debug.LogFileName));
+                    if (File.Exists(Debug.LogFileName)) {
+                        logWriter.WriteLine(File.ReadAllText(Debug.LogFileName));
+                    } else {
+                        logWriter.WriteLine("  No 'report.log' file");
+                    }
                 }

                 switch (System.Environment.OSVersion.Platform) {


Fixed upload converter issue

Fixed upload converter issue

--- redmine-net40-api/JSonConverters/UploadConverter.cs
+++ redmine-net40-api/JSonConverters/UploadConverter.cs
@@ -53,8 +53,6 @@
                 result.Add("filename", entity.FileName);
                 result.Add("token", entity.Token);
                 result.Add("description", entity.Description);
-                root["upload"] = result;
-                return root;
             }

             return result;


Removed Thread.Sleep() from time dependent test in favour of a wait

--- tests/boomerang.tests.acceptance/RequestSpecs.cs
+++ tests/boomerang.tests.acceptance/RequestSpecs.cs
@@ -13,6 +13,8 @@
     public class RequestSpecs
     {
         private static int receivedRequests;
+
+        private static AutoResetEvent waitHandle;

         [Test, Ignore]
         public void Should_intercept_relative_address_on_any_base_address()
@@ -57,15 +59,21 @@
             Spec.GivenAServerOnSpecificPort().Get("thisaddress").Returns("body", 200);
             Spec.GivenAServerOnSpecificPort().OnReceivedRequest += OnReceivedRequest;

+            waitHandle = new AutoResetEvent(false);
             Spec.WhenGetRequestSent(Spec.HostAddress + "thisaddress");
-            // TODO how to make this test better??...
-            Thread.Sleep(100);
+
+            if (!waitHandle.WaitOne(1000, false))
+            {
+                Assert.Fail("Test timed out; 'RequestSpecs.Should_raise_event_when_request_received()'");
+            }
+
             receivedRequests.ShouldBe(1);
         }

         private static void OnReceivedRequest(object sender, ProxyRequestEventArgs e)
         {
             receivedRequests++;
+            waitHandle.Set();
         }

     }


lower level json stuff

lower level json stuff

--- MassTransit.ServiceBus.Tests/JsonPlay/As_a_Json_Serializer.cs
+++ MassTransit.ServiceBus.Tests/JsonPlay/As_a_Json_Serializer.cs
@@ -1,5 +1,7 @@
 namespace MassTransit.ServiceBus.Tests.JsonPlay
 {
+    using System.Globalization;
+    using System.IO;
     using Newtonsoft.Json;
     using NUnit.Framework;
     using NUnit.Framework.SyntaxHelpers;
@@ -12,8 +14,29 @@
         {
             string json = JavaScriptConvert.SerializeObject(new Bob("Chris"));

+
+
+
             Bob clone = JavaScriptConvert.DeserializeObject<Bob>(json);
             Assert.That(clone.Friend, Is.EqualTo("Chris"));
+        }
+
+        [Test]
+        public void More_Control()
+        {
+            object value = new Bob("dru");
+
+            StringWriter sw = new StringWriter(CultureInfo.InvariantCulture);
+            JsonSerializer jsonSerializer = new JsonSerializer();
+
+            using (JsonWriter jsonWriter = new JsonWriter(sw))
+            {
+                jsonWriter.Formatting = Formatting.Indented;
+                jsonSerializer.Serialize(jsonWriter, value);
+            }
+
+            string json = sw.ToString();
+            int i = 0;
         }
     }


Fixed problem with message fallback to default language

--- src/i18n/TextLocalizer.cs
+++ src/i18n/TextLocalizer.cs
@@ -85,10 +85,8 @@
             // Optionally try default language.
             if (fallbackOnDefault)
             {
-                text = TryGetTextFor(LocalizedApplication.Current.DefaultLanguageTag.ToString(), key);
-                if (text != null) {
-                    o_langtag = LocalizedApplication.Current.DefaultLanguageTag;
-                    return text; }
+                o_langtag = LocalizedApplication.Current.DefaultLanguageTag;
+                return key;
             }

             return null;
@@ -150,11 +148,6 @@
             if (text != null) {
                 return text; }

-            // If the language is the default language, by definition the text always exists
-            // and as there isn't a translation defined for the key, we return the key itself.
-            if (string.Compare(langtag, LocalizedApplication.Current.DefaultLanguageTag.ToString(), true) == 0) {
-                return key; }
-
             // Lookup failed.
             return null;
         }


Clear IAVolume lists on close

Clear IAVolume lists on close

- Lots of cross object references with non-widget IAVolumes. Clear
on widget close as is easy and seems beneficial

--- MatterControlLib/PartPreviewWindow/View3D/InteractionLayer.cs
+++ MatterControlLib/PartPreviewWindow/View3D/InteractionLayer.cs
@@ -52,7 +52,7 @@
 		/// <summary>
 		/// Contains type to IAVolume mappings
 		/// </summary>
-		private Dictionary<Type, List<IInteractionElement>> iavMappings = new Dictionary<Type, List<IInteractionElement>>();
+		private readonly Dictionary<Type, List<IInteractionElement>> iavMappings = new Dictionary<Type, List<IInteractionElement>>();

 		/// <summary>
 		/// Interaction Volume Overrides for the selected scene item
@@ -67,7 +67,7 @@

 		public bool DrawOpenGLContent { get; set; } = true;

-		private List<IInteractionElement> registeredIAVolumes = new List<IInteractionElement>();
+		private readonly List<IInteractionElement> registeredIAVolumes = new List<IInteractionElement>();

 		public IEnumerable<IInteractionElement> InteractionVolumes
 		{
@@ -358,6 +358,7 @@
 			if (renderSource != null)
 			{
 				renderSource.BeforeDraw -= RenderSource_BeforeDraw;
+				renderSource = null;
 			}

 			if (sceneContext.Printer != null)
@@ -383,6 +384,15 @@
 			}

 			base.OnClosed(e);
+
+			// Clear lists and references
+			iavOverrides?.Clear();
+			iavMappings.Clear();
+			registeredIAVolumes.Clear();
+			drawables.Clear();
+			itemDrawables.Clear();
+			SelectedInteractionVolume = null;
+			HoveredInteractionVolume = null;
 		}

 		private bool FindInteractionVolumeHit(Ray ray, out InteractionVolume hitIAVolume, out IntersectInfo info)


Removed unused using

Removed unused using

--- Tests/Mapsui.Tests/Rendering/RenderGetStrategyTests.cs
+++ Tests/Mapsui.Tests/Rendering/RenderGetStrategyTests.cs
@@ -2,7 +2,6 @@
 using BruTile.Cache;
 using BruTile.Predefined;
 using Mapsui.Providers;
-using Mapsui.Rendering;
 using NUnit.Framework;
 using System.Globalization;
 using Mapsui.Geometries;


Continue fleshing out feats generator unit tests

--- Tests/Unit/Generators/Abilities/FeatsGeneratorTests.cs
+++ Tests/Unit/Generators/Abilities/FeatsGeneratorTests.cs
@@ -32,6 +32,8 @@
         private List<FeatSelection> featSelections;
         private Mock<IDice> mockDice;
         private BaseAttack baseAttack;
+        private List<String> overwrittenStrengthFeats;
+        private List<String> cumulativeStrengthFeats;

         [SetUp]
         public void Setup()
@@ -49,9 +51,13 @@
             featSelections = new List<FeatSelection>();
             baseAttack = new BaseAttack();
             stats[StatConstants.Intelligence] = new Stat();
+            overwrittenStrengthFeats = new List<String>();
+            cumulativeStrengthFeats = new List<String>();

             mockFeatsSelector.Setup(s => s.SelectAll()).Returns(featSelections);
             mockDice.Setup(d => d.Roll(1).d(It.IsAny<Int32>())).Returns(1);
+            mockCollectionsSelector.Setup(s => s.SelectFrom("FeatGroups", "Overwritten Strengths")).Returns(overwrittenStrengthFeats);
+            mockCollectionsSelector.Setup(s => s.SelectFrom("FeatGroups", "Cumulative Strengths")).Returns(cumulativeStrengthFeats);
         }

         [Test]
@@ -84,13 +90,16 @@
             race.BaseRace = "base race-format";
             var racialFeats = new[] { "feat 1", "feat 2", "feat 3" };
             mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.BaseRace)).Returns(racialFeats);
-            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatStrengths", race.BaseRace)).Returns(new[] { "feat 1", "feat 3" });
-            mockCollectionsSelector.Setup(s => s.SelectFrom("baseraceformatFeatStrengths", "feat 1")).Returns(new[] { "+9266" });
-            mockCollectionsSelector.Setup(s => s.SelectFrom("baseraceformatFeatStrengths", "feat 3")).Returns(new[] { "90210 ft." });
-
-            var feats = featsGenerator.GenerateWith(characterClass, race, stats, skills, baseAttack);
-            Assert.That(feats.First().SpecificApplication, Is.EqualTo("+9266"));
-            Assert.That(feats.Last().SpecificApplication, Is.EqualTo("90210 ft."));
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatWithStrengths", race.BaseRace)).Returns(new[] { "feat 1", "feat 3" });
+
+            var featStrengths = new Dictionary<String, Int32>();
+            featStrengths["feat 1"] = 9266;
+            featStrengths["feat 3"] = 90210;
+            mockAdjustmentsSelector.Setup(s => s.SelectFrom("baseraceformatFeatStrengths")).Returns(featStrengths);
+
+            var feats = featsGenerator.GenerateWith(characterClass, race, stats, skills, baseAttack);
+            Assert.That(feats.First().SpecificApplication, Is.EqualTo("9266"));
+            Assert.That(feats.Last().SpecificApplication, Is.EqualTo("90210"));
             Assert.That(feats.Where(f => !String.IsNullOrEmpty(f.SpecificApplication)), Is.EqualTo(2));
             Assert.That(feats.Where(f => String.IsNullOrEmpty(f.SpecificApplication)).Single().Name, Is.EqualTo("feat 2"));
             Assert.That(feats.Count(), Is.EqualTo(3));
@@ -102,8 +111,12 @@
             race.BaseRace = "base race-format";
             var racialFeats = new[] { "feat 1", "feat 2", "feat 3" };
             mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.BaseRace)).Returns(racialFeats);
-            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatStrengths", race.BaseRace)).Returns(Enumerable.Empty<String>());
-            mockCollectionsSelector.Setup(s => s.SelectFrom("baseraceformatFeatStrengths", It.IsAny<String>())).Returns(new[] { "strength" });
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatWithStrengths", race.BaseRace)).Returns(Enumerable.Empty<String>());
+
+            var featStrengths = new Dictionary<String, Int32>();
+            featStrengths["feat 1"] = 9266;
+            featStrengths["feat 3"] = 90210;
+            mockAdjustmentsSelector.Setup(s => s.SelectFrom("baseraceformatFeatStrengths")).Returns(featStrengths);

             var feats = featsGenerator.GenerateWith(characterClass, race, stats, skills, baseAttack);
             Assert.That(feats.All(f => String.IsNullOrEmpty(f.SpecificApplication)), Is.True);
@@ -139,13 +152,16 @@
             race.Metarace = "metarace-fo rmat";
             var racialFeats = new[] { "feat 1", "feat 2", "feat 3" };
             mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.Metarace)).Returns(racialFeats);
-            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatStrengths", race.Metarace)).Returns(new[] { "feat 1", "feat 3" });
-            mockCollectionsSelector.Setup(s => s.SelectFrom("metaraceformatFeatStrengths", "feat 1")).Returns(new[] { "+9266" });
-            mockCollectionsSelector.Setup(s => s.SelectFrom("metaraceformatFeatStrengths", "feat 3")).Returns(new[] { "90210 ft." });
-
-            var feats = featsGenerator.GenerateWith(characterClass, race, stats, skills, baseAttack);
-            Assert.That(feats.First().SpecificApplication, Is.EqualTo("+9266"));
-            Assert.That(feats.Last().SpecificApplication, Is.EqualTo("90210 ft."));
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatWithStrengths", race.Metarace)).Returns(new[] { "feat 1", "feat 3" });
+
+            var featStrengths = new Dictionary<String, Int32>();
+            featStrengths["feat 1"] = 9266;
+            featStrengths["feat 3"] = 90210;
+            mockAdjustmentsSelector.Setup(s => s.SelectFrom("metaraceformatFeatStrengths")).Returns(featStrengths);
+
+            var feats = featsGenerator.GenerateWith(characterClass, race, stats, skills, baseAttack);
+            Assert.That(feats.First().SpecificApplication, Is.EqualTo("9266"));
+            Assert.That(feats.Last().SpecificApplication, Is.EqualTo("90210"));
             Assert.That(feats.Where(f => !String.IsNullOrEmpty(f.SpecificApplication)), Is.EqualTo(2));
             Assert.That(feats.Where(f => String.IsNullOrEmpty(f.SpecificApplication)).Single().Name, Is.EqualTo("feat 2"));
             Assert.That(feats.Count(), Is.EqualTo(3));
@@ -157,8 +173,12 @@
             race.Metarace = "metarace-fo rmat";
             var racialFeats = new[] { "feat 1", "feat 2", "feat 3" };
             mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.Metarace)).Returns(racialFeats);
-            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatStrengths", race.Metarace)).Returns(Enumerable.Empty<String>());
-            mockCollectionsSelector.Setup(s => s.SelectFrom("metaraceformatFeatStrengths", It.IsAny<String>())).Returns(new[] { "strength" });
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatWithStrengths", race.Metarace)).Returns(Enumerable.Empty<String>());
+
+            var featStrengths = new Dictionary<String, Int32>();
+            featStrengths["feat 1"] = 9266;
+            featStrengths["feat 3"] = 90210;
+            mockAdjustmentsSelector.Setup(s => s.SelectFrom("baseraceformatFeatStrengths")).Returns(featStrengths);

             var feats = featsGenerator.GenerateWith(characterClass, race, stats, skills, baseAttack);
             Assert.That(feats.All(f => String.IsNullOrEmpty(f.SpecificApplication)), Is.True);
@@ -167,24 +187,94 @@
         [Test]
         public void OnlyKeepStrongestFeat()
         {
-            Assert.Fail();
+            race.BaseRace = "base race";
+            race.Metarace = "metarace";
+            var racialFeats = new[] { "feat 1" };
+            overwrittenStrengthFeats.Add("feat 1");
+
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.Metarace)).Returns(racialFeats);
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.BaseRace)).Returns(racialFeats);
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatWithStrengths", race.Metarace)).Returns(new[] { "feat 1" });
+
+            var baseRaceFeatStrengths = new Dictionary<String, Int32>();
+            baseRaceFeatStrengths["feat 1"] = 90;
+            mockAdjustmentsSelector.Setup(s => s.SelectFrom("baseraceFeatStrengths")).Returns(baseRaceFeatStrengths);
+
+            var metaraceFeatStrengths = new Dictionary<String, Int32>();
+            metaraceFeatStrengths["feat 1"] = 60;
+            mockAdjustmentsSelector.Setup(s => s.SelectFrom("metaraceFeatStrengths")).Returns(metaraceFeatStrengths);
+
+            var feats = featsGenerator.GenerateWith(characterClass, race, stats, skills, baseAttack);
+            var onlyFeat = feats.Single();
+
+            Assert.That(onlyFeat.Name, Is.EqualTo("feat 1"));
+            Assert.That(onlyFeat.SpecificApplication, Is.EqualTo("90 ft"));
+        }
+
+        [Test]
+        public void AddStrengthsOfBothFeats()
+        {
+            race.BaseRace = "base race";
+            race.Metarace = "metarace";
+            var racialFeats = new[] { "feat 1" };
+            cumulativeStrengthFeats.Add("feat 1");
+
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.Metarace)).Returns(racialFeats);
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.BaseRace)).Returns(racialFeats);
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatWithStrengths", race.Metarace)).Returns(new[] { "feat 1" });
+
+            var baseRaceFeatStrengths = new Dictionary<String, Int32>();
+            baseRaceFeatStrengths["feat 1"] = 90;
+            mockAdjustmentsSelector.Setup(s => s.SelectFrom("baseraceFeatStrengths")).Returns(baseRaceFeatStrengths);
+
+            var metaraceFeatStrengths = new Dictionary<String, Int32>();
+            metaraceFeatStrengths["feat 1"] = 60;
+            mockAdjustmentsSelector.Setup(s => s.SelectFrom("metaraceFeatStrengths")).Returns(metaraceFeatStrengths);
+
+            var feats = featsGenerator.GenerateWith(characterClass, race, stats, skills, baseAttack);
+            var onlyFeat = feats.Single();
+
+            Assert.That(onlyFeat.Name, Is.EqualTo("feat 1"));
+            Assert.That(onlyFeat.SpecificApplication, Is.EqualTo("150"));
         }

         [Test]
         public void KeepBothFeats()
         {
-            Assert.Fail();
-        }
-
-        [Test]
-        public void AddStrengthsOfBothFeats()
-        {
-            Assert.Fail();
+            race.BaseRace = "base race";
+            race.Metarace = "metarace";
+            var racialFeats = new[] { "feat 1" };
+
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.Metarace)).Returns(racialFeats);
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.BaseRace)).Returns(racialFeats);
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeatWithStrengths", race.Metarace)).Returns(new[] { "feat 1" });
+
+            var baseRaceFeatStrengths = new Dictionary<String, Int32>();
+            baseRaceFeatStrengths["feat 1"] = 90;
+            mockAdjustmentsSelector.Setup(s => s.SelectFrom("baseraceFeatStrengths")).Returns(baseRaceFeatStrengths);
+
+            var metaraceFeatStrengths = new Dictionary<String, Int32>();
+            metaraceFeatStrengths["feat 1"] = 60;
+            mockAdjustmentsSelector.Setup(s => s.SelectFrom("metaraceFeatStrengths")).Returns(metaraceFeatStrengths);
+
+            var feats = featsGenerator.GenerateWith(characterClass, race, stats, skills, baseAttack);
+            var firstFeat = feats.First();
+            var lastFeat = feats.Last();
+
+            Assert.That(firstFeat.Name, Is.EqualTo("feat 1"));
+            Assert.That(firstFeat.SpecificApplication, Is.EqualTo("60"));
+            Assert.That(lastFeat.Name, Is.EqualTo("feat 1"));
+            Assert.That(lastFeat.SpecificApplication, Is.EqualTo("90"));
+            Assert.That(feats.Count(), Is.EqualTo(2));
         }

         [Test]
         public void MeetMonsterHitDiceRequirementsForMetaracialFeats()
         {
+            race.Metarace = "metarace";
+            var racialFeats = new[] { "feat 1" };
+
+            mockCollectionsSelector.Setup(s => s.SelectFrom("RacialFeats", race.Metarace)).Returns(racialFeats);
             Assert.Fail();
         }


Null check for ActiveDocument

Null check for ActiveDocument

--- VSPerformanceTracker/VSInterface/BrowseToUrlQueryer.cs
+++ VSPerformanceTracker/VSInterface/BrowseToUrlQueryer.cs
@@ -19,15 +19,21 @@
             var url = GetBrowseToUrl() ?? "/";
             if (url.StartsWith("~/"))
                 url = url.TrimPrefix("~");
+
             return url;
         }

         private string GetBrowseToUrl()
         {
-            var item = _dte.ActiveDocument.ProjectItem;
-            var browseToUrlProperty = item.Properties
-                .Cast<Property>()
-                .FirstOrDefault(p => p.Name.EndsWith("BrowseToURL", StringComparison.InvariantCulture));
+            Property browseToUrlProperty = null;
+            if (_dte.ActiveDocument != null)
+            {
+                var item = _dte.ActiveDocument.ProjectItem;
+                browseToUrlProperty = item.Properties
+                    .OfType<Property>()
+                    .FirstOrDefault(p => p.Name.EndsWith("BrowseToURL", StringComparison.InvariantCulture));
+            }
+
             return browseToUrlProperty == null
                 ? null
                 : (string)browseToUrlProperty.Value;


Introduced return value variable

Introduced return value variable

--- VendingMachine/VendingMachine.Core/RefundCalculator.cs
+++ VendingMachine/VendingMachine.Core/RefundCalculator.cs
@@ -6,16 +6,19 @@
     {
         public IDictionary<Coin, int> CalculateRefund(int priceInCents, int paidInCents)
         {
+            var refund = new Dictionary<Coin, int>()
+            {
+                {Coin.Nickel, 0},
+                {Coin.Dime, 0},
+                {Coin.Quarter, 0}
+            };
+
             var refundValue = paidInCents - priceInCents;

             if (refundValue <= 0)
             {
-                return new Dictionary<Coin, int>()
-                {
-                    {Coin.Nickel, 0},
-                    {Coin.Dime, 0},
-                    {Coin.Quarter, 0}
-                };
+
+                return refund;
             }

             var nickels = refundValue / Coin.Nickel.Value();


TechnicalクラスがItemHolderクラスを継承するよう変更

TechnicalクラスがItemHolderクラスを継承するよう変更

--- MusicXMLUtils/Structure/Note/Notations/Technical/Technical.cs
+++ MusicXMLUtils/Structure/Note/Notations/Technical/Technical.cs
@@ -36,7 +36,7 @@
     [DebuggerStepThrough]
     [DesignerCategory("code")]
     [XmlType("technical")]
-    public class Technical
+    public class Technical : ItemHolder<ItemsChoiceType3>
     {
         [XmlElement("arrow", typeof(Arrow))]
         [XmlElement("bend", typeof(Bend))]
@@ -63,10 +63,10 @@
         [XmlElement("triple-tongue", typeof(EmptyPlacement))]
         [XmlElement("up-bow", typeof(EmptyPlacement))]
         [XmlChoiceIdentifier("ItemsElementName")]
-        public object[] Items { get; set; }
+        public override object[] Items { get; set; }

         [XmlElement("ItemsElementName")]
         [XmlIgnore]
-        public ItemsChoiceType3[] ItemsElementName { get; set; }
+        public override ItemsChoiceType3[] ItemsElementName { get; set; }
     }
 }


updatescheck check removed, it will remain non-functioning until 3.0, closes #38

--- NadekoBot.Core/Modules/Administration/Services/SelfService.cs
+++ NadekoBot.Core/Modules/Administration/Services/SelfService.cs
@@ -44,7 +44,7 @@
         private readonly IDataCache _cache;
         private readonly IImageCache _imgs;
         private readonly IHttpClientFactory _httpFactory;
-        private readonly Timer _updateTimer;
+        //private readonly Timer _updateTimer;

         public SelfService(DiscordSocketClient client, NadekoBot bot, CommandHandler cmdHandler, DbService db,
             IBotConfigProvider bc, ILocalization localization, NadekoStrings strings, IBotCredentials creds,
@@ -68,31 +68,32 @@
             {
                 sub.Subscribe(_creds.RedisKey() + "_reload_images",
                     delegate { _imgs.Reload(); }, CommandFlags.FireAndForget);
-                _updateTimer = new Timer(async _ =>
-                {
-                    try
-                    {
-                        var ch = ownerChannels?.Values.FirstOrDefault();
-
-                        if (ch == null) // no owner channels
-                            return;
-
-                        var cfo = _bc.BotConfig.CheckForUpdates;
-                        if (cfo == UpdateCheckType.None)
-                            return;
-
-                        string data;
-                        if ((cfo == UpdateCheckType.Commit && (data = await GetNewCommit().ConfigureAwait(false)) != null)
-                            || (cfo == UpdateCheckType.Release && (data = await GetNewRelease().ConfigureAwait(false)) != null))
-                        {
-                            await ch.SendConfirmAsync("New Bot Update", data).ConfigureAwait(false);
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                        _log.Warn(ex);
-                    }
-                }, null, TimeSpan.FromHours(8), TimeSpan.FromHours(8));
+
+                //_updateTimer = new Timer(async _ =>
+                //{
+                //    try
+                //    {
+                //        var ch = ownerChannels?.Values.FirstOrDefault();
+
+                //        if (ch == null) // no owner channels
+                //            return;
+
+                //        var cfo = _bc.BotConfig.CheckForUpdates;
+                //        if (cfo == UpdateCheckType.None)
+                //            return;
+
+                //        string data;
+                //        if ((cfo == UpdateCheckType.Commit && (data = await GetNewCommit().ConfigureAwait(false)) != null)
+                //            || (cfo == UpdateCheckType.Release && (data = await GetNewRelease().ConfigureAwait(false)) != null))
+                //        {
+                //            await ch.SendConfirmAsync("New Bot Update", data).ConfigureAwait(false);
+                //        }
+                //    }
+                //    catch (Exception ex)
+                //    {
+                //        _log.Warn(ex);
+                //    }
+                //}, null, TimeSpan.FromHours(8), TimeSpan.FromHours(8));
             }
             sub.Subscribe(_creds.RedisKey() + "_reload_bot_config",
                 delegate { _bc.Reload(); }, CommandFlags.FireAndForget);
@@ -217,10 +218,10 @@
                 uow.SaveChanges();
             }

-            if (type == UpdateCheckType.None)
-            {
-                _updateTimer.Change(Timeout.Infinite, Timeout.Infinite);
-            }
+            //if (type == UpdateCheckType.None)
+            //{
+            //    _updateTimer.Change(Timeout.Infinite, Timeout.Infinite);
+            //}
         }

         private Timer TimerFromStartupCommand(StartupCommand x)


removed unneeded funtions

removed unneeded funtions

--- OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -944,7 +944,7 @@
         /// <param name="end_y">North Point</param>
         /// <param name="attempting_user_id">UUID of user who is trying to subdivide</param>
         /// <returns>Returns true if successful</returns>
-        private void subdivide(int start_x, int start_y, int end_x, int end_y, UUID attempting_user_id)
+        public void Subdivide(int start_x, int start_y, int end_x, int end_y, UUID attempting_user_id)
         {
             //First, lets loop through the points and make sure they are all in the same peice of land
             //Get the land object at start
@@ -1037,7 +1037,7 @@
         /// <param name="end_y">end y of selection area</param>
         /// <param name="attempting_user_id">UUID of the avatar trying to join the land objects</param>
         /// <returns>Returns true if successful</returns>
-        private void join(int start_x, int start_y, int end_x, int end_y, UUID attempting_user_id)
+        public void Join(int start_x, int start_y, int end_x, int end_y, UUID attempting_user_id)
         {
             int index = 0;
             int maxindex = -1;
@@ -1098,17 +1098,6 @@
             masterLandObject.SendLandUpdateToAvatarsOverMe();
             m_scene.ForEachClient(SendParcelOverlay);
         }
-
-        public void Join(int start_x, int start_y, int end_x, int end_y, UUID attempting_user_id)
-        {
-            join(start_x, start_y, end_x, end_y, attempting_user_id);
-        }
-
-        public void Subdivide(int start_x, int start_y, int end_x, int end_y, UUID attempting_user_id)
-        {
-            subdivide(start_x, start_y, end_x, end_y, attempting_user_id);
-        }
-
         #endregion

         #region Parcel Updating
@@ -1334,12 +1323,12 @@

         public void ClientOnParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client)
         {
-            subdivide(west, south, east, north, remote_client.AgentId);
+            Subdivide(west, south, east, north, remote_client.AgentId);
         }

         public void ClientOnParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client)
         {
-            join(west, south, east, north, remote_client.AgentId);
+            Join(west, south, east, north, remote_client.AgentId);
         }

         public void ClientOnParcelSelectObjects(int local_id, int request_type,


Change land overlay to send group owned status properly

--- OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -1013,6 +1013,10 @@
                         {
                             //Owner Flag
                             tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_OWNED_BY_REQUESTER);
+                        }
+                        else if (currentParcelBlock.LandData.IsGroupOwned && remote_client.IsGroupMember(currentParcelBlock.LandData.GroupID))
+                        {
+                            tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_OWNED_BY_GROUP);
                         }
                         else if (currentParcelBlock.LandData.SalePrice > 0 &&
                                  (currentParcelBlock.LandData.AuthBuyerID == UUID.Zero ||


forgot to pass signin message ID (fixes tests)

--- source/Core/Authentication/AuthenticationController.cs
+++ source/Core/Authentication/AuthenticationController.cs
@@ -116,7 +116,7 @@
             if (model == null)
             {
                 Logger.Error("no data submitted");
-                return await RenderLoginPage(signInMessage, Messages.InvalidUsernameOrPassword);
+                return await RenderLoginPage(signInMessage, signin, Messages.InvalidUsernameOrPassword);
             }

             // the browser will only send 'true' if ther user has checked the checkbox
@@ -221,14 +221,14 @@
             if (user == null)
             {
                 Logger.Error("no identity from external identity provider");
-                return await RenderLoginPage(signInMessage, Messages.NoMatchingExternalAccount);
+                return await RenderLoginPage(signInMessage, signInId, Messages.NoMatchingExternalAccount);
             }

             var externalIdentity = MapToExternalIdentity(user.Claims);
             if (externalIdentity == null)
             {
                 Logger.Error("no subject or unique identifier claims from external identity provider");
-                return await RenderLoginPage(signInMessage, Messages.NoMatchingExternalAccount);
+                return await RenderLoginPage(signInMessage, signInId, Messages.NoMatchingExternalAccount);
             }

             Logger.InfoFormat("external user provider: {0}, provider ID: {1}", externalIdentity.Provider, externalIdentity.ProviderId);
@@ -237,13 +237,13 @@
             if (authResult == null)
             {
                 Logger.Warn("user service failed to authenticate external identity");
-                return await RenderLoginPage(signInMessage, Messages.NoMatchingExternalAccount);
+                return await RenderLoginPage(signInMessage, signInId, Messages.NoMatchingExternalAccount);
             }

             if (authResult.IsError)
             {
                 Logger.WarnFormat("user service returned error message: {0}", authResult.ErrorMessage);
-                return await RenderLoginPage(signInMessage, authResult.ErrorMessage);
+                return await RenderLoginPage(signInMessage, signInId, authResult.ErrorMessage);
             }

             return SignInAndRedirect(signInMessage, signInId, authResult);
@@ -318,13 +318,13 @@
                 if (result == null)
                 {
                     Logger.Warn("user service failed to authenticate external identity");
-                    return await RenderLoginPage(signInMessage, Messages.NoMatchingExternalAccount);
+                    return await RenderLoginPage(signInMessage, signInId, Messages.NoMatchingExternalAccount);
                 }

                 if (result.IsError)
                 {
                     Logger.WarnFormat("user service returned error message: {0}", result.ErrorMessage);
-                    return await RenderLoginPage(signInMessage, result.ErrorMessage);
+                    return await RenderLoginPage(signInMessage, signInId, result.ErrorMessage);
                 }
             }


Added DirectoryInfo.ForceDeleteIfExists().

--- source/OpenMagic/Extensions/DirectoryInfoExtensions.cs
+++ source/OpenMagic/Extensions/DirectoryInfoExtensions.cs
@@ -28,6 +28,20 @@
         }

         /// <summary>
+        ///     Forcibly deletes a directory if it exists.
+        /// </summary>
+        /// <param name="directory">
+        ///     The directory to delete.
+        /// </param>
+        public static void ForceDeleteIfExists(this DirectoryInfo directory)
+        {
+            if (directory.Exists)
+            {
+                directory.ForceDelete();
+            }
+        }
+
+        /// <summary>
         ///     Set file <paramref name="attributes" /> to each file in <paramref name="directory" />.
         /// </summary>
         /// <param name="directory">


Masked PIT again - Now only keyboard and PS2 is unmasked

--- source2/Kernel/System/Hardware/Core/Cosmos.Core/PIC.cs
+++ source2/Kernel/System/Hardware/Core/Cosmos.Core/PIC.cs
@@ -41,7 +41,7 @@
             //Init(Master, 0x20, 4, 0xFD | 0x08);
             //Init(Slave, 0x28, 2, 0xFF);
           //for now enable keyboard, mouse(ps2) and PIT
-            Remap(0x20, 0xF8 | 0x08, 0x28, 0xEF);
+            Remap(0x20, 0xF9 | 0x08, 0x28, 0xEF);

         }


Add the ability to clear the project references from the cache

--- src/Buildalyzer.Workspaces/AnalyzerResultExtensions.cs
+++ src/Buildalyzer.Workspaces/AnalyzerResultExtensions.cs
@@ -56,7 +56,6 @@
             {
                 throw new ArgumentNullException(nameof(workspace));
             }
-
             // Get or create an ID for this project
             ProjectId projectId = ProjectId.CreateFromSerialized(analyzerResult.ProjectGuid);

@@ -247,5 +246,10 @@
                     throw new InvalidOperationException("Could not determine supported language from project path");
             }
         }
+
+        public static void ClearCacheReferences()
+        {
+            _projectReferences = new ConcurrentDictionary<ProjectId, string[]>();
+        }
     }
 }


add debug info to failed test

add debug info to failed test

--- src/Cassandra.IntegrationTests/Core/ConnectionTests.cs
+++ src/Cassandra.IntegrationTests/Core/ConnectionTests.cs
@@ -309,7 +309,8 @@
                 }
                 Assert.True(taskList.All(t =>
                     t.Status == TaskStatus.RanToCompletion ||
-                    (t.Exception != null && t.Exception.InnerException is ReadTimeoutException)), "Not all task completed");
+                    (t.Exception != null && t.Exception.InnerException is ReadTimeoutException)),
+                    string.Join(Environment.NewLine, taskList.Select(t => t.Exception?.ToString() ?? string.Empty)));
             }
         }


Xamarin.iOS quickstart: add comment & URL for info on conflict handling

--- quickstart/xamarin.iOS/ZUMOAPPNAME/QSTodoService.cs
+++ quickstart/xamarin.iOS/ZUMOAPPNAME/QSTodoService.cs
@@ -8,133 +8,136 @@

 namespace ZUMOAPPNAME
 {
-	public class QSTodoService : DelegatingHandler
-	{
-		static QSTodoService instance = new QSTodoService ();
+    public class QSTodoService : DelegatingHandler
+    {
+        static QSTodoService instance = new QSTodoService ();

-		const string applicationURL = @"ZUMOAPPURL";
-		const string applicationKey = @"ZUMOAPPKEY";
+        const string applicationURL = @"ZUMOAPPURL";
+        const string applicationKey = @"ZUMOAPPKEY";

-		private MobileServiceClient client;
-		private IMobileServiceSyncTable<ToDoItem> todoTable;
-		private int busyCount = 0;
+        private MobileServiceClient client;
+        private IMobileServiceSyncTable<ToDoItem> todoTable;
+        private int busyCount = 0;

-		public event Action<bool> BusyUpdate;
+        public event Action<bool> BusyUpdate;

-		private QSTodoService ()
-		{
-			CurrentPlatform.Init ();
-			SQLitePCL.CurrentPlatform.Init();
+        private QSTodoService ()
+        {
+            CurrentPlatform.Init ();
+            SQLitePCL.CurrentPlatform.Init();

-			// Initialize the Mobile Service client with your URL and key
-			client = new MobileServiceClient (applicationURL, applicationKey, this);
+            // Initialize the Mobile Service client with your URL and key
+            client = new MobileServiceClient (applicationURL, applicationKey, this);

-			// Create an MSTable instance to allow us to work with the TodoItem table
-			todoTable = client.GetSyncTable <ToDoItem> ();
-		}
+            // Create an MSTable instance to allow us to work with the TodoItem table
+            todoTable = client.GetSyncTable <ToDoItem> ();
+        }

-		public static QSTodoService DefaultService {
-			get {
-				return instance;
-			}
-		}
+        public static QSTodoService DefaultService {
+            get {
+                return instance;
+            }
+        }

-		public List<ToDoItem> Items { get; private set;}
+        public List<ToDoItem> Items { get; private set;}

-		public async Task InitializeStoreAsync()
-		{
-			string path = "localstore.db";
-			var store = new MobileServiceSQLiteStore(path);
-			store.DefineTable<ToDoItem>();
-			await client.SyncContext.InitializeAsync(store);
-		}
+        public async Task InitializeStoreAsync()
+        {
+            string path = "localstore.db";
+            var store = new MobileServiceSQLiteStore(path);
+            store.DefineTable<ToDoItem>();

-		public async Task SyncAsync()
-		{
-			try
-			{
-				await client.SyncContext.PushAsync();
-				await todoTable.PullAsync("todoItems", todoTable.CreateQuery());
-			}
+            // Uses the default conflict handler, which fails on conflict
+            // To use a different conflict handler, pass a parameter to InitializeAsync. For more details, see http://go.microsoft.com/fwlink/?LinkId=521416
+            await client.SyncContext.InitializeAsync(store);
+        }

-			catch (MobileServiceInvalidOperationException e)
-			{
-				Console.Error.WriteLine(@"Sync Failed: {0}", e.Message);
-			}
-		}
+        public async Task SyncAsync()
+        {
+            try
+            {
+                await client.SyncContext.PushAsync();
+                await todoTable.PullAsync("todoItems", todoTable.CreateQuery());
+            }

-		public async Task<List<ToDoItem>> RefreshDataAsync ()
-		{
-			try {
-				// update the local store
-				await SyncAsync();
+            catch (MobileServiceInvalidOperationException e)
+            {
+                Console.Error.WriteLine(@"Sync Failed: {0}", e.Message);
+            }
+        }

-				// This code refreshes the entries in the list view by querying the local TodoItems table.
-				// The query excludes completed TodoItems
-				Items = await todoTable
-					.Where (todoItem => todoItem.Complete == false).ToListAsync ();
+        public async Task<List<ToDoItem>> RefreshDataAsync ()
+        {
+            try {
+                // update the local store
+                await SyncAsync();

-			} catch (MobileServiceInvalidOperationException e) {
-				Console.Error.WriteLine (@"ERROR {0}", e.Message);
-				return null;
-			}
+                // This code refreshes the entries in the list view by querying the local TodoItems table.
+                // The query excludes completed TodoItems
+                Items = await todoTable
+                    .Where (todoItem => todoItem.Complete == false).ToListAsync ();

-			return Items;
-		}
+            } catch (MobileServiceInvalidOperationException e) {
+                Console.Error.WriteLine (@"ERROR {0}", e.Message);
+                return null;
+            }

-		public async Task InsertTodoItemAsync (ToDoItem todoItem)
-		{
-			try {
-				// This code inserts a new TodoItem into the database. When the operation completes
-				// and Mobile Services has assigned an Id, the item is added to the CollectionView
-				await todoTable.InsertAsync (todoItem);
-				Items.Add (todoItem);
+            return Items;
+        }

-			} catch (MobileServiceInvalidOperationException e) {
-				Console.Error.WriteLine (@"ERROR {0}", e.Message);
-			}
-		}
+        public async Task InsertTodoItemAsync (ToDoItem todoItem)
+        {
+            try {
+                // This code inserts a new TodoItem into the database. When the operation completes
+                // and Mobile Services has assigned an Id, the item is added to the CollectionView
+                await todoTable.InsertAsync (todoItem);
+                Items.Add (todoItem);

-		public async Task CompleteItemAsync (ToDoItem item)
-		{
-			try {
-				// This code takes a freshly completed TodoItem and updates the database. When the MobileService
-				// responds, the item is removed from the list
-				item.Complete = true;
-				await todoTable.UpdateAsync (item);
-				Items.Remove (item);
+            } catch (MobileServiceInvalidOperationException e) {
+                Console.Error.WriteLine (@"ERROR {0}", e.Message);
+            }
+        }

-			} catch (MobileServiceInvalidOperationException e) {
-				Console.Error.WriteLine (@"ERROR {0}", e.Message);
-			}
-		}
+        public async Task CompleteItemAsync (ToDoItem item)
+        {
+            try {
+                // This code takes a freshly completed TodoItem and updates the database. When the MobileService
+                // responds, the item is removed from the list
+                item.Complete = true;
+                await todoTable.UpdateAsync (item);
+                Items.Remove (item);

-		private void Busy (bool busy)
-		{
-			// assumes always executes on UI thread
-			if (busy) {
-				if (busyCount++ == 0 && BusyUpdate != null)
-					BusyUpdate (true);
+            } catch (MobileServiceInvalidOperationException e) {
+                Console.Error.WriteLine (@"ERROR {0}", e.Message);
+            }
+        }

-			} else {
-				if (--busyCount == 0 && BusyUpdate != null)
-					BusyUpdate (false);
+        private void Busy (bool busy)
+        {
+            // assumes always executes on UI thread
+            if (busy) {
+                if (busyCount++ == 0 && BusyUpdate != null)
+                    BusyUpdate (true);

-			}
-		}
+            } else {
+                if (--busyCount == 0 && BusyUpdate != null)
+                    BusyUpdate (false);

-		#region implemented abstract members of HttpMessageHandler
+            }
+        }

-		protected override async Task<System.Net.Http.HttpResponseMessage> SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
-		{
-			Busy (true);
-			var response = await base.SendAsync (request, cancellationToken);
+        #region implemented abstract members of HttpMessageHandler

-			Busy (false);
-			return response;
-		}
+        protected override async Task<System.Net.Http.HttpResponseMessage> SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
+        {
+            Busy (true);
+            var response = await base.SendAsync (request, cancellationToken);

-		#endregion
-	}
+            Busy (false);
+            return response;
+        }
+
+        #endregion
+    }
 }


Removed a method that doesn't belong in PPWCode. We consider this a bug fix, not a new mark version.

--- dotnet/Util/OddsAndEnds/trunk/I/Extensions/MathExtensions.cs
+++ dotnet/Util/OddsAndEnds/trunk/I/Extensions/MathExtensions.cs
@@ -25,12 +25,6 @@
 {
     public static class MathExtensions
     {
-        [Pure]
-        public static decimal PensioBRound(this decimal d)
-        {
-            return Math.Truncate(d * 10000m) / 10000m;
-        }
-
         [Pure]
         public static bool IsConsecutiveSequence<T>(
             this IEnumerable<T> lst,


Added regions

Added regions


Fix Box2DTest tests to not use the Director of the Node instead of MainWindowDirector.

--- tests/tests/classes/tests/Box2DTest/Box2DTest.cs
+++ tests/tests/classes/tests/Box2DTest/Box2DTest.cs
@@ -84,39 +84,42 @@
         private CCSpriteBatchNode _batch;

         public Box2DTestLayer()
-        {
+        {
+			//Set up sprite
+			// Use batch node. Faster
+			_batch = new CCSpriteBatchNode("Images/blocks", 100);
+			m_pSpriteTexture = _batch.Texture;
+			AddChild(_batch, 0, kTagParentNode);
+		}
+
+		public override void OnEnter()
+		{
+			base.OnEnter();

 			var listener = new CCEventListenerTouchAllAtOnce();
 			listener.OnTouchesEnded = onTouchesEnded;

-            EventDispatcher.AddEventListener(listener, this);
-
-            CCSize s = CCApplication.SharedApplication.MainWindowDirector.WindowSizeInPoints;
-            // init physics
-            initPhysics();
-            // create reset button
-            createResetButton();
-
-            //Set up sprite
-            // Use batch node. Faster
-            _batch = new CCSpriteBatchNode("Images/blocks", 100);
-            m_pSpriteTexture = _batch.Texture;
-            AddChild(_batch, 0, kTagParentNode);
-
-            addNewSpriteAtPosition(new CCPoint(s.Width / 2, s.Height / 2));
-
-            CCLabelTtf label = new CCLabelTtf("Tap screen", "MarkerFelt", 32);
-            AddChild(label, 0);
-            label.Color = new CCColor3B(0, 0, 255);
-            label.Position = new CCPoint(s.Width / 2, s.Height - 50);
-
-            Schedule ();
-        }
-
+			EventDispatcher.AddEventListener(listener, this);
+
+			CCSize s = Director.WindowSizeInPoints;
+			// init physics
+			initPhysics();
+			// create reset button
+			createResetButton();
+
+			addNewSpriteAtPosition(new CCPoint(s.Width / 2, s.Height / 2));
+
+			CCLabelTtf label = new CCLabelTtf("Tap screen", "MarkerFelt", 32);
+			AddChild(label, 0);
+			label.Color = new CCColor3B(0, 0, 255);
+			label.Position = new CCPoint(s.Width / 2, s.Height - 50);
+
+			Schedule ();
+		}

         private void initPhysics()
         {
-            CCSize s = CCApplication.SharedApplication.MainWindowDirector.WindowSizeInPoints;
+            CCSize s = Director.WindowSizeInPoints;

             var gravity = new b2Vec2(0.0f, -10.0f);
             _world = new b2World(gravity);
@@ -188,7 +191,7 @@

             CCMenu menu = new CCMenu(res);

-            CCSize s = CCApplication.SharedApplication.MainWindowDirector.WindowSizeInPoints;
+            CCSize s = Director.WindowSizeInPoints;

             menu.Position = new CCPoint(s.Width / 2, 30);
             AddChild(menu, -1);
@@ -199,7 +202,7 @@
             CCScene s = new Box2DTestScene();
             var child = new Box2DTestLayer();
             s.AddChild(child);
-            CCApplication.SharedApplication.MainWindowDirector.ReplaceScene(s);
+            Director.ReplaceScene(s);
         }

         /*


Fix missing reference

Fix missing reference

--- SMS/Droid/SmsTask.cs
+++ SMS/Droid/SmsTask.cs
@@ -17,6 +17,7 @@
 using Android.Content;
 using Android.Net;
 using MvvmCross.Droid.Platform;
+using MvvmCross.Platform.Droid.Platform;

 namespace Cheesebaron.MvxPlugins.SMS
 {


Update GetHeadEmployee method call

Update GetHeadEmployee method call

--- R7.University.DivisionDirectory/ViewDivisionDirectory.ascx.cs
+++ R7.University.DivisionDirectory/ViewDivisionDirectory.ascx.cs
@@ -322,7 +322,7 @@
                     linkDocument.Visible = false;

                 // contact person (head employee)
-                var contactPerson = DivisionDirectoryController.GetHeadEmployee (division.DivisionID);
+                var contactPerson = DivisionDirectoryController.GetHeadEmployee (division.DivisionID, division.HeadPositionID);
                 if (contactPerson != null)
                 {
                     linkContactPerson.Text = contactPerson.AbbrName;


#108 - Make name unique

#108 - Make name unique

--- SoraBot/SoraBot.Data/Extensions/ModelBuilder/ClanRelations.cs
+++ SoraBot/SoraBot.Data/Extensions/ModelBuilder/ClanRelations.cs
@@ -14,6 +14,10 @@
             mb.Entity<Clan>()
                 .Property(p => p.AvatarUrl)
                 .IsRequired(false);
+
+            // Make name unique
+            mb.Entity<Clan>()
+                .HasAlternateKey(k => k.Name);

             mb.Entity<Clan>()
                 .HasOne(u => u.Owner)


Fix resource release

Fix resource release

--- Source/HelixToolkit.SharpDX.Shared/Core/BoneSkinRenderCore.cs
+++ Source/HelixToolkit.SharpDX.Shared/Core/BoneSkinRenderCore.cs
@@ -20,7 +20,7 @@
         {
             if(base.OnAttach(host, technique))
             {
-                boneMatricesVar = Effect.GetVariableByName("SkinMatrices").AsMatrix();
+                boneMatricesVar = Collect(Effect.GetVariableByName("SkinMatrices").AsMatrix());
                 return true;
             }
             else


Added a few scenario tests that demonstrate how Many and enumerables in general are unstable Iterators.

--- Src/AutoFixtureDocumentationTest/Multiple/General/Scenario.cs
+++ Src/AutoFixtureDocumentationTest/Multiple/General/Scenario.cs
@@ -17,7 +17,7 @@
             var fixture = new Fixture()
                 .Customize(new MultipleCustomization());
             // Exercise system
-            var integers =
+            var integers =
                 fixture.CreateAnonymous<IEnumerable<int>>();
             // Verify outcome
             Assert.True(integers.Any());
@@ -54,7 +54,7 @@
             // Fixture setup
             var fixture = new Fixture().Customize(new MultipleCustomization());
             // Exercise system
-            var collection =
+            var collection =
                 fixture.CreateAnonymous<Collection<int>>();
             // Verify outcome
             Assert.True(collection.Any());
@@ -73,5 +73,24 @@
             Assert.Equal(fixture.RepeatCount, integers.Count());
             // Teardown
         }
+
+        [Fact]
+        public void ManyIsUniqueByDefault()
+        {
+            var fixture = new Fixture();
+            var expected =
+                fixture.CreateMany<string>();
+            Assert.False(expected.SequenceEqual(expected));
+        }
+
+        [Fact]
+        public void EnumerablesAreUniqueByDefault()
+        {
+            var fixture = new Fixture()
+                .Customize(new MultipleCustomization());
+            var expected =
+                fixture.CreateAnonymous<IEnumerable<string>>();
+            Assert.False(expected.SequenceEqual(expected));
+        }
     }
 }


Disable another test that seems to be failing due to DevDiv 1095079 (changeset 1390292)

--- Src/Compilers/Core/VBCSCompilerTests/CompilerServerApiTest.cs
+++ Src/Compilers/Core/VBCSCompilerTests/CompilerServerApiTest.cs
@@ -349,7 +349,7 @@
             Assert.True((DateTime.Now - listener.LastProcessedTime.Value) > keepAlive);
         }

-        [Fact]
+        [Fact(Skip = "DevDiv 1095079"), WorkItem(1095079)]
         public async Task FirstClientCanOverrideDefaultTimeout()
         {
             var cts = new CancellationTokenSource();


Fix a typo error that caused bug 1081066. The fix is to remove identifiers in scope from conflicts tracker after fully visiting catch clause syntax. (changeset 1382753)

--- Src/Workspaces/CSharp/Portable/Rename/LocalConflictVisitor.cs
+++ Src/Workspaces/CSharp/Portable/Rename/LocalConflictVisitor.cs
@@ -106,7 +106,7 @@

             tracker.AddIdentifiers(tokens);
             Visit(node.Block);
-            tracker.AddIdentifiers(tokens);
+            tracker.RemoveIdentifiers(tokens);
         }

         public override void VisitSimpleLambdaExpression(SimpleLambdaExpressionSyntax node)


Protect against the counter getting off target.

--- Tharga.Influx-Capacitor.Collector/Handlers/CollectorEngine.cs
+++ Tharga.Influx-Capacitor.Collector/Handlers/CollectorEngine.cs
@@ -23,6 +23,7 @@
         private StopwatchHighPrecision _sw;
         private DateTime? _timestamp;
         private long _counter;
+        private int _missCounter;

         public CollectorEngine(IPerformanceCounterGroup performanceCounterGroup, ISendBusiness sendBusiness, ITagLoader tagLoader)
         {
@@ -68,19 +69,32 @@

                     elapseOffset = new TimeSpan(elapsedTotal).TotalSeconds - _performanceCounterGroup.SecondsInterval * _counter;

+                    if (_missCounter > 6)
+                    {
+                        //Reset everything and start over.
+                        OnCollectRegisterCounterValuesEvent(new CollectRegisterCounterValuesEventArgs(_name, string.Format("Missed {0} counts. Resetting and start over.", _missCounter), OutputLevel.Warning));
+
+                        _timestamp = null;
+                        _counter = 0;
+                        _missCounter = 0;
+                    }
+
                     if (elapseOffset > 1)
                     {
-                        //_counter = _counter + 1 + (int)elapseOffset;
-                        _counter = _counter + (int)elapseOffset;
+                        _missCounter++;
+                        _counter = _counter + 1 + (int)elapseOffset;
                         OnCollectRegisterCounterValuesEvent(new CollectRegisterCounterValuesEventArgs(_name, string.Format("Dropping {0} steps.", (int)elapseOffset), OutputLevel.Warning));
                         return -2;
                     }

                     if (elapseOffset < -1)
                     {
+                        _missCounter++;
                         OnCollectRegisterCounterValuesEvent(new CollectRegisterCounterValuesEventArgs(_name, string.Format("Jumping 1 step. ({0})", (int)elapseOffset), OutputLevel.Warning));
                         return -3;
                     }
+
+                    _missCounter = 0;

                     //Adjust interval
                     var next = 1000 * (_performanceCounterGroup.SecondsInterval - elapseOffset);


commentar

commentar

--- src/ConveyorBelt.Tooling/Scheduling/MasterScheduler.cs
+++ src/ConveyorBelt.Tooling/Scheduling/MasterScheduler.cs
@@ -53,7 +53,7 @@
                     continue;
                 }

-                var source = _sourceConfiguration.RefreshSource(sauce);
+                var source = _sourceConfiguration.RefreshSource(sauce); // by this time source could be old

                 try
                 {


Fixed BorderTests.

Fixed BorderTests.

--- Windows/Perspex.Direct2D1.RenderTests/Controls/BorderTests.cs
+++ Windows/Perspex.Direct2D1.RenderTests/Controls/BorderTests.cs
@@ -162,6 +162,8 @@
                     {
                         Text = "Foo",
                         Background = Brushes.Red,
+                        FontFamily = "Segoe UI",
+                        FontSize = 12,
                         HorizontalAlignment = HorizontalAlignment.Center,
                     }
                 }
@@ -187,6 +189,8 @@
                     {
                         Text = "Foo",
                         Background = Brushes.Red,
+                        FontFamily = "Segoe UI",
+                        FontSize = 12,
                         VerticalAlignment = VerticalAlignment.Center,
                     }
                 }
@@ -212,6 +216,8 @@
                     {
                         Text = "Foo",
                         Background = Brushes.Red,
+                        FontFamily = "Segoe UI",
+                        FontSize = 12,
                         HorizontalAlignment = HorizontalAlignment.Stretch,
                     }
                 }
@@ -237,6 +243,8 @@
                     {
                         Text = "Foo",
                         Background = Brushes.Red,
+                        FontFamily = "Segoe UI",
+                        FontSize = 12,
                         VerticalAlignment = VerticalAlignment.Stretch,
                     }
                 }
@@ -262,6 +270,8 @@
                     {
                         Text = "Foo",
                         Background = Brushes.Red,
+                        FontFamily = "Segoe UI",
+                        FontSize = 12,
                         HorizontalAlignment = HorizontalAlignment.Left,
                     }
                 }
@@ -287,6 +297,8 @@
                     {
                         Text = "Foo",
                         Background = Brushes.Red,
+                        FontFamily = "Segoe UI",
+                        FontSize = 12,
                         HorizontalAlignment = HorizontalAlignment.Right,
                     }
                 }
@@ -312,6 +324,8 @@
                     {
                         Text = "Foo",
                         Background = Brushes.Red,
+                        FontFamily = "Segoe UI",
+                        FontSize = 12,
                         VerticalAlignment = VerticalAlignment.Top,
                     }
                 }
@@ -337,6 +351,8 @@
                     {
                         Text = "Foo",
                         Background = Brushes.Red,
+                        FontFamily = "Segoe UI",
+                        FontSize = 12,
                         VerticalAlignment = VerticalAlignment.Bottom,
                     }
                 }


Teste 2

Teste 2

--- src/EP.IdentityIsolation.API/App_Start/Startup.Auth.cs
+++ src/EP.IdentityIsolation.API/App_Start/Startup.Auth.cs
@@ -26,8 +26,7 @@
             // Configure the db context and user manager to use a single instance per request
             //app.CreatePerOwinContext(() => DependencyResolver.Current.GetService<ApplicationUserManager>());
             //app.CreatePerOwinContext(() => DependencyResolver.Current.GetService<ApplicationSignInManager>());
-
-
+
             // Enable the application to use a cookie to store information for the signed in user
             // and to use a cookie to temporarily store information about a user logging in with a third party login provider
             app.UseCookieAuthentication(new CookieAuthenticationOptions());


moving test

moving test

--- src/Grace.Dynamic/Impl/LinqToDynamicMethodConverter.cs
+++ src/Grace.Dynamic/Impl/LinqToDynamicMethodConverter.cs
@@ -105,7 +105,6 @@
                     request.ILGenerator.DeclareLocal(parameter.Type);
                 }

-                throw new Exception("Got here");

                 foreach (var expression in extraExpressions)
                 {
@@ -119,6 +118,8 @@
                 {
                     return false;
                 }
+
+                throw new Exception("Got here");

                 request.ILGenerator.Emit(OpCodes.Ret);


Lucene.Net.Core.Store.NearSpansUnordered refactor: renamed private/protected fields camelCase

--- src/Lucene.Net.Core/Search/Spans/NearSpansUnordered.cs
+++ src/Lucene.Net.Core/Search/Spans/NearSpansUnordered.cs
@@ -34,31 +34,31 @@
     /// </summary>
     public class NearSpansUnordered : Spans
     {
-        private SpanNearQuery Query;
-
-        private IList<SpansCell> Ordered = new List<SpansCell>(); // spans in query order
+        private SpanNearQuery query;
+
+        private IList<SpansCell> ordered = new List<SpansCell>(); // spans in query order
         private Spans[] subSpans;
-        private int Slop; // from query
-
-        private SpansCell First; // linked list of spans
-        private SpansCell Last; // sorted by doc only
-
-        private int TotalLength; // sum of current lengths
-
-        private CellQueue Queue; // sorted queue of spans
-        private SpansCell Max; // max element in queue
-
-        private bool More = true; // true iff not done
-        private bool FirstTime = true; // true before first next()
+        private int slop; // from query
+
+        private SpansCell first; // linked list of spans
+        private SpansCell last; // sorted by doc only
+
+        private int totalLength; // sum of current lengths
+
+        private CellQueue queue; // sorted queue of spans
+        private SpansCell max; // max element in queue
+
+        private bool more = true; // true iff not done
+        private bool firstTime = true; // true before first next()

         private class CellQueue : PriorityQueue<SpansCell>
         {
-            private readonly NearSpansUnordered OuterInstance;
+            private readonly NearSpansUnordered outerInstance;

             public CellQueue(NearSpansUnordered outerInstance, int size)
                 : base(size)
             {
-                this.OuterInstance = outerInstance;
+                this.outerInstance = outerInstance;
             }

             protected internal override bool LessThan(SpansCell spans1, SpansCell spans2)
@@ -106,19 +106,19 @@
             {
                 if (length != -1)
                 {
-                    outerInstance.TotalLength -= length; // subtract old length
+                    outerInstance.totalLength -= length; // subtract old length
                 }
                 if (condition)
                 {
                     length = End - Start;
-                    outerInstance.TotalLength += length; // add new length
-
-                    if (outerInstance.Max == null || Doc > outerInstance.Max.Doc || (Doc == outerInstance.Max.Doc) && (End > outerInstance.Max.End))
+                    outerInstance.totalLength += length; // add new length
+
+                    if (outerInstance.max == null || Doc > outerInstance.max.Doc || (Doc == outerInstance.max.Doc) && (End > outerInstance.max.End))
                     {
-                        outerInstance.Max = this;
+                        outerInstance.max = this;
                     }
                 }
-                outerInstance.More = condition;
+                outerInstance.more = condition;
                 return condition;
             }

@@ -168,16 +168,16 @@

         public NearSpansUnordered(SpanNearQuery query, AtomicReaderContext context, IBits acceptDocs, IDictionary<Term, TermContext> termContexts)
         {
-            this.Query = query;
-            this.Slop = query.Slop;
+            this.query = query;
+            this.slop = query.Slop;

             SpanQuery[] clauses = query.Clauses;
-            Queue = new CellQueue(this, clauses.Length);
+            queue = new CellQueue(this, clauses.Length);
             subSpans = new Spans[clauses.Length];
             for (int i = 0; i < clauses.Length; i++)
             {
                 SpansCell cell = new SpansCell(this, clauses[i].GetSpans(context, acceptDocs, termContexts), i);
-                Ordered.Add(cell);
+                ordered.Add(cell);
                 subSpans[i] = cell.spans;
             }
         }
@@ -192,29 +192,29 @@

         public override bool Next()
         {
-            if (FirstTime)
+            if (firstTime)
             {
                 InitList(true);
                 ListToQueue(); // initialize queue
-                FirstTime = false;
-            }
-            else if (More)
+                firstTime = false;
+            }
+            else if (more)
             {
                 if (Min.Next()) // trigger further scanning
                 {
-                    Queue.UpdateTop(); // maintain queue
+                    queue.UpdateTop(); // maintain queue
                 }
                 else
                 {
-                    More = false;
-                }
-            }
-
-            while (More)
+                    more = false;
+                }
+            }
+
+            while (more)
             {
                 bool queueStale = false;

-                if (Min.Doc != Max.Doc) // maintain list
+                if (Min.Doc != max.Doc) // maintain list
                 {
                     QueueToList();
                     queueStale = true;
@@ -222,14 +222,14 @@

                 // skip to doc w/ all clauses

-                while (More && First.Doc < Last.Doc)
-                {
-                    More = First.SkipTo(Last.Doc); // skip first upto last
+                while (more && first.Doc < last.Doc)
+                {
+                    more = first.SkipTo(last.Doc); // skip first upto last
                     FirstToLast(); // and move it to the end
                     queueStale = true;
                 }

-                if (!More)
+                if (!more)
                 {
                     return false;
                 }
@@ -247,10 +247,10 @@
                     return true;
                 }

-                More = Min.Next();
-                if (More)
-                {
-                    Queue.UpdateTop(); // maintain queue
+                more = Min.Next();
+                if (more)
+                {
+                    queue.UpdateTop(); // maintain queue
                 }
             }
             return false; // no more matches
@@ -258,39 +258,39 @@

         public override bool SkipTo(int target)
         {
-            if (FirstTime) // initialize
+            if (firstTime) // initialize
             {
                 InitList(false);
-                for (SpansCell cell = First; More && cell != null; cell = cell.next)
-                {
-                    More = cell.SkipTo(target); // skip all
-                }
-                if (More)
+                for (SpansCell cell = first; more && cell != null; cell = cell.next)
+                {
+                    more = cell.SkipTo(target); // skip all
+                }
+                if (more)
                 {
                     ListToQueue();
                 }
-                FirstTime = false;
+                firstTime = false;
             } // normal case
             else
             {
-                while (More && Min.Doc < target) // skip as needed
+                while (more && Min.Doc < target) // skip as needed
                 {
                     if (Min.SkipTo(target))
                     {
-                        Queue.UpdateTop();
+                        queue.UpdateTop();
                     }
                     else
                     {
-                        More = false;
+                        more = false;
                     }
                 }
             }
-            return More && (AtMatch || Next());
+            return more && (AtMatch || Next());
         }

         private SpansCell Min
         {
-            get { return Queue.Top; }
+            get { return queue.Top; }
         }

         public override int Doc
@@ -311,7 +311,7 @@
         public override int End

         {
-            get { return Max.End; }
+            get { return max.End; }
         }

         public override ICollection<byte[]> Payload
@@ -319,7 +319,7 @@
             get
             {
                 var matchPayload = new HashSet<byte[]>();
-                for (var cell = First; cell != null; cell = cell.next)
+                for (var cell = first; cell != null; cell = cell.next)
                 {
                     if (cell.IsPayloadAvailable)
                     {
@@ -361,19 +361,19 @@

         public override string ToString()
         {
-            return this.GetType().Name + "(" + Query.ToString() + ")@" + (FirstTime ? "START" : (More ? (Doc + ":" + Start + "-" + End) : "END"));
+            return this.GetType().Name + "(" + query.ToString() + ")@" + (firstTime ? "START" : (more ? (Doc + ":" + Start + "-" + End) : "END"));
         }

         private void InitList(bool next)
         {
-            for (int i = 0; More && i < Ordered.Count; i++)
-            {
-                SpansCell cell = Ordered[i];
+            for (int i = 0; more && i < ordered.Count; i++)
+            {
+                SpansCell cell = ordered[i];
                 if (next)
                 {
-                    More = cell.Next(); // move to first entry
-                }
-                if (More)
+                    more = cell.Next(); // move to first entry
+                }
+                if (more)
                 {
                     AddToList(cell); // add to list
                 }
@@ -382,47 +382,47 @@

         private void AddToList(SpansCell cell)
         {
-            if (Last != null) // add next to end of list
-            {
-                Last.next = cell;
+            if (last != null) // add next to end of list
+            {
+                last.next = cell;
             }
             else
             {
-                First = cell;
-            }
-            Last = cell;
+                first = cell;
+            }
+            last = cell;
             cell.next = null;
         }

         private void FirstToLast()
         {
-            Last.next = First; // move first to end of list
-            Last = First;
-            First = First.next;
-            Last.next = null;
+            last.next = first; // move first to end of list
+            last = first;
+            first = first.next;
+            last.next = null;
         }

         private void QueueToList()
         {
-            Last = First = null;
-            while (Queue.Top != null)
-            {
-                AddToList(Queue.Pop());
+            last = first = null;
+            while (queue.Top != null)
+            {
+                AddToList(queue.Pop());
             }
         }

         private void ListToQueue()
         {
-            Queue.Clear(); // rebuild queue
-            for (SpansCell cell = First; cell != null; cell = cell.next)
-            {
-                Queue.Add(cell); // add to queue from list
+            queue.Clear(); // rebuild queue
+            for (SpansCell cell = first; cell != null; cell = cell.next)
+            {
+                queue.Add(cell); // add to queue from list
             }
         }

         private bool AtMatch
         {
-            get { return (Min.Doc == Max.Doc) && ((Max.End - Min.Start - TotalLength) <= Slop); }
+            get { return (Min.Doc == max.Doc) && ((max.End - Min.Start - totalLength) <= slop); }
         }
     }
 }


Don't hardcoded localhost for redis - It breaks the *nix clients

--- src/Microsoft.AspNetCore.SignalR.Redis/RedisOptions.cs
+++ src/Microsoft.AspNetCore.SignalR.Redis/RedisOptions.cs
@@ -3,6 +3,7 @@

 using System;
 using System.IO;
+using System.Net;
 using StackExchange.Redis;

 namespace Microsoft.AspNetCore.SignalR.Redis
@@ -21,7 +22,8 @@
                 // REVIEW: Should we do this?
                 if (Options.EndPoints.Count == 0)
                 {
-                    Options.EndPoints.Add("localhost");
+                    Options.EndPoints.Add(IPAddress.Loopback, 0);
+                    Options.SetDefaultPorts();
                 }
                 return ConnectionMultiplexer.Connect(Options, log);
             }


GBT changes for PoS coins

GBT changes for PoS coins

--- src/MiningCore/Blockchain/Bitcoin/BitcoinJobManager.cs
+++ src/MiningCore/Blockchain/Bitcoin/BitcoinJobManager.cs
@@ -654,14 +654,24 @@
             if (!isPoS)
             {
                 // bitcoincashd returns a different address than what was passed in
-                if(!validateAddressResponse.Address.StartsWith("bitcoincash:"))
+                if (!validateAddressResponse.Address.StartsWith("bitcoincash:"))
                     poolAddressDestination = AddressToDestination(validateAddressResponse.Address);
                 else
                     poolAddressDestination = AddressToDestination(poolConfig.Address);
             }

             else
+            {
                 poolAddressDestination = new PubKey(validateAddressResponse.PubKey);
+
+                getBlockTemplateParams = new object[]
+                {
+                    new
+                    {
+                        mode = "template"
+                    }
+                };
+            }

             // chain detection
             if (!hasLegacyDaemon)


Switched the exception to an NUnitEngineException

--- src/NUnitEngine/nunit.engine/Internal/SettingsStore.cs
+++ src/NUnitEngine/nunit.engine/Internal/SettingsStore.cs
@@ -89,8 +89,8 @@
             }
             catch (Exception ex)
             {
-                string msg = string.Format("Error loading settings {0}.", _settingsFile);
-                throw new ApplicationException(msg, ex);
+                string msg = string.Format("Error loading settings {0}. {1}", _settingsFile, ex.Message);
+                throw new NUnitEngineException(msg);
             }
         }


Fixed substring

Fixed substring

--- src/Nancy/Routing/Trie/Nodes/CaptureNodeWithLiteral.cs
+++ src/Nancy/Routing/Trie/Nodes/CaptureNodeWithLiteral.cs
@@ -41,7 +41,7 @@
       if (segment.StartsWith(this.preLiteral) && segment.EndsWith(this.postLiteral))
       {
         match = new SegmentMatch(true);
-        match.CapturedParameters.Add(this.parameterName, segment.Substring(this.preLiteral.Length, segment.Length - this.postLiteral.Length));
+        match.CapturedParameters.Add(this.parameterName, segment.Substring(this.preLiteral.Length, segment.Length - this.postLiteral.Length - this.preLiteral.Length));
       }
       return match;
     }


Cloud configuration values set to 'null' now override Web.config as an actual null and don't fall back.

--- src/NuGetGallery/Configuration/ConfigurationService.cs
+++ src/NuGetGallery/Configuration/ConfigurationService.cs
@@ -133,7 +133,15 @@
             }

             string cloudValue = GetCloudSetting(settingName);
-            return String.IsNullOrEmpty(cloudValue) ? value : cloudValue;
+            if (string.IsNullOrEmpty(cloudValue))
+            {
+                return value;
+            }
+            else if (cloudValue == "null")
+            {
+                return null;
+            }
+            return cloudValue;
         }

         public bool _notInCloud = false;


C# 7.2

C# 7.2

--- src/OmniSharp.MSBuild/ProjectFile/PropertyConverter.cs
+++ src/OmniSharp.MSBuild/ProjectFile/PropertyConverter.cs
@@ -46,6 +46,7 @@
                 case "6": return LanguageVersion.CSharp6;
                 case "7": return LanguageVersion.CSharp7;
                 case "7.1": return LanguageVersion.CSharp7_1;
+                case "7.2": return LanguageVersion.CSharp7_2;
                 default: return LanguageVersion.Default;
             }
         }


Consider heightmap for generated vertices

--- src/OpenSage.Game/Terrain/Roads/StraightRoadSegment.cs
+++ src/OpenSage.Game/Terrain/Roads/StraightRoadSegment.cs
@@ -34,7 +34,6 @@
         {
             const float heightBias = 1f;

-            // TODO consider elevation
             const float createNewVerticesHeightDeltaThreshold = 0.002f;
             const float textureAtlasRoadCenter = 1f / 6f;

@@ -77,15 +76,17 @@
                 var position = startPosition + direction * currentDistance;
                 var positionToBorder = Vector3.Lerp(startToCorner, endToCorner, currentDistance / distance);

-                //var actualHeight = heightMap.GetHeight(position.X, position.Y);
-                //var interpolatedHeight = MathUtility.Lerp(previousPoint.Z, endPosition.Z, (currentDistance - previousPointDistance) / distance);
+                var actualHeight = heightMap.GetHeight(position.X, position.Y);
+                var interpolatedHeight = MathUtility.Lerp(previousPoint.Z, endPosition.Z, (currentDistance - previousPointDistance) / distance);

-                //if (Math.Abs(actualHeight - interpolatedHeight) > createNewVerticesHeightDeltaThreshold)
-                //{
+                if (Math.Abs(actualHeight - interpolatedHeight) > createNewVerticesHeightDeltaThreshold)
+                {
+                    // TODO figure out correct algorith
+                    position.Z = actualHeight;
                     AddVertexPair(position, positionToBorder, currentDistance);
                     previousPoint = position;
                     previousPointDistance = currentDistance;
-                //}
+                }
             }

             AddVertexPair(endPosition, endToCorner, distance);


#20728: Optimizing query.

#20728: Optimizing query.

--- src/Orchard.Web/Modules/Orchard.Comments/Migrations.cs
+++ src/Orchard.Web/Modules/Orchard.Comments/Migrations.cs
@@ -181,7 +181,7 @@
                );

             // populate the CommentsPartRecord.CommentsCount property
-            foreach (var commentsPart in _contentManager.Query<CommentsPart>().List()) {
+            foreach (var commentsPart in _contentManager.Query<CommentsPart, CommentsPartRecord>().List()) {
                 _commentService.ProcessCommentsCount(commentsPart.Id);
             }


formatting

formatting

--- src/Quartz.Server/Quartz/Server/QuartzServerFactory.cs
+++ src/Quartz.Server/Quartz/Server/QuartzServerFactory.cs
@@ -34,11 +34,9 @@
 		public static IQuartzServer CreateServer()
 		{
 			var typeName = Configuration.ServerImplementationType;
-
-			var t = Type.GetType(typeName, true);
-
+			var type = Type.GetType(typeName, true);
 			_logger.Debug("Creating new instance of server type '" + typeName + "'");
-			var retValue = (IQuartzServer) Activator.CreateInstance(t);
+			var retValue = (IQuartzServer) Activator.CreateInstance(type);
 			_logger.Debug("Instance successfully created");
 			return retValue;
 		}