The type of the keys for the attributes collection in Hpricot.XmlDeclaration and Hpricot.DocumentType is MutableString, not String

--- src/Hpricot.cs
+++ src/Hpricot.cs
@@ -226,22 +226,22 @@

             [RubyMethod("public_id")]
             public static Object GetPublicId(DocumentType/*!*/ self) {
-                return (self._data.attr as Hash)["public_id"];
+                return (self._data.attr as Hash)[MutableString.Create("public_id")];
             }

             [RubyMethod("public_id=")]
             public static void SetPublicId(DocumentType/*!*/ self, Object/*!*/ publicId) {
-                (self._data.attr as Hash)["public_id"] = publicId;
+                (self._data.attr as Hash)[MutableString.Create("public_id")] = publicId;
             }

             [RubyMethod("system_id")]
             public static Object GetSystemId(DocumentType/*!*/ self) {
-                return (self._data.attr as Hash)["system_id"];
+                return (self._data.attr as Hash)[MutableString.Create("system_id")];
             }

             [RubyMethod("system_id=")]
             public static void SetSystemId(DocumentType/*!*/ self, Object/*!*/ systemId) {
-                (self._data.attr as Hash)["system_id"] = systemId;
+                (self._data.attr as Hash)[MutableString.Create("system_id")] = systemId;
             }
         }

@@ -437,32 +437,32 @@

             [RubyMethod("encoding")]
             public static Object GetEncoding(XmlDeclaration/*!*/ self) {
-                return (self._data.attr as Hash)["encoding"];
+                return (self._data.attr as Hash)[MutableString.Create("encoding")];
             }

             [RubyMethod("encoding=")]
             public static void SetEncoding(XmlDeclaration/*!*/ self, Object/*!*/ encoding) {
-                (self._data.attr as Hash)["encoding"] = encoding;
+                (self._data.attr as Hash)[MutableString.Create("encoding")] = encoding;
             }

             [RubyMethod("standalone")]
             public static Object GetStandalone(XmlDeclaration/*!*/ self) {
-                return (self._data.attr as Hash)["standalone"];
+                return (self._data.attr as Hash)[MutableString.Create("standalone")];
             }

             [RubyMethod("standalone=")]
             public static void SetStandalone(XmlDeclaration/*!*/ self, Object/*!*/ standalone) {
-                (self._data.attr as Hash)["standalone"] = standalone;
+                (self._data.attr as Hash)[MutableString.Create("standalone")] = standalone;
             }

             [RubyMethod("version")]
             public static Object GetVersion(XmlDeclaration/*!*/ self) {
-                return (self._data.attr as Hash)["version"];
+                return (self._data.attr as Hash)[MutableString.Create("version")];
             }

             [RubyMethod("version=")]
             public static void SetVersion(XmlDeclaration/*!*/ self, Object/*!*/ version) {
-                (self._data.attr as Hash)["version"] = version;
+                (self._data.attr as Hash)[MutableString.Create("version")] = version;
             }
         }


Wired up tab tap gestures to update pages when user taps on tab titles

--- src/TabStrip.FormsPlugin.Abstractions/TabStripTopBarControl.xaml.cs
+++ src/TabStrip.FormsPlugin.Abstractions/TabStripTopBarControl.xaml.cs
@@ -1,4 +1,5 @@
-using Xamarin.Forms;
+using System;
+using Xamarin.Forms;
 using Xamarin.Forms.Xaml;

 namespace TabStrip.FormsPlugin.Abstractions
@@ -22,11 +23,10 @@
                 {
                     Text = context.Tabs[index].Name
                 };
-
-                // TODO - there is an issue with the tap gesture not picking up
+
                 var tapGestureRecognizer = new TapGestureRecognizer();
-                tapGestureRecognizer.SetBinding(TapGestureRecognizer.CommandProperty, new Binding("SlideToTab"));
-                tapGestureRecognizer.CommandParameter = index;
+                tapGestureRecognizer.Command = context.SlideToTab;
+                tapGestureRecognizer.CommandParameter = Convert.ToString(index);
                 label.GestureRecognizers.Add(tapGestureRecognizer);

                 grid.Children.Add(label, index, 0);


Update Xamarin.Android quickstart to sync after local edits

--- xamarin.android/ZUMOAPPNAME/ToDoActivity.cs
+++ xamarin.android/ZUMOAPPNAME/ToDoActivity.cs
@@ -20,10 +20,10 @@
         //Mobile Service Client reference
         private MobileServiceClient client;

-        //Mobile Service Table used to access data
+        //Mobile Service sync table used to access data
         private IMobileServiceSyncTable<ToDoItem> toDoTable;

-        //Adapter to sync the items list with the view
+        //Adapter to map the items list to the view
         private ToDoItemAdapter adapter;

         //EditText containing the "New ToDo" text
@@ -49,7 +49,7 @@
                 client = new MobileServiceClient (applicationURL, applicationKey);
                 await InitLocalStoreAsync();

-                // Get the Mobile Service Table instance to use
+                // Get the Mobile Service sync table instance to use
                 toDoTable = client.GetSyncTable <ToDoItem> ();

                 textNewToDo = FindViewById<EditText> (Resource.Id.textNewToDo);
@@ -60,7 +60,7 @@
                 listViewToDo.Adapter = adapter;

                 // Load the items from the Mobile Service
-                await RefreshItemsFromTableAsync ();
+                OnRefreshItemsSelected ();

             } catch (Java.Net.MalformedURLException) {
                 CreateAndShowDialog (new Exception ("There was an error creating the Mobile Service. Verify the URL"), "Error");
@@ -99,26 +99,32 @@
         {
             if (item.ItemId == Resource.Id.menu_refresh) {
                 item.SetEnabled(false);
+
                 OnRefreshItemsSelected ();
+
                 item.SetEnabled(true);
             }
             return true;
+        }
+
+        private async Task SyncAsync()
+        {
+            await client.SyncContext.PushAsync();
+            await toDoTable.PullAsync("allTodoItems", toDoTable.CreateQuery()); // query ID is used for incremental sync
         }

         // Called when the refresh menu option is selected
         private async void OnRefreshItemsSelected ()
         {
-            await client.SyncContext.PushAsync();
-            await toDoTable.PullAsync("allTodoItems", toDoTable.CreateQuery());
-            await RefreshItemsFromTableAsync();
-        }
-
-        //Refresh the list with the items in the Mobile Service Table
+            await SyncAsync(); // get changes from the mobile service
+            await RefreshItemsFromTableAsync(); // refresh view using local database
+        }
+
+        //Refresh the list with the items in the local database
         private async Task RefreshItemsFromTableAsync ()
         {
             try {
-                // Get the items that weren't marked as completed and add them in the
-                // adapter
+                // Get the items that weren't marked as completed and add them in the adapter
                 var list = await toDoTable.Where (item => item.Complete == false).ToListAsync ();

                 adapter.Clear ();
@@ -140,7 +146,9 @@
             // Set the item as completed and update it in the table
             item.Complete = true;
             try {
-                await toDoTable.UpdateAsync (item);
+                await toDoTable.UpdateAsync(item); // update the new item in the local database
+                await SyncAsync(); // send changes to the mobile service
+
                 if (item.Complete)
                     adapter.Remove (item);

@@ -163,8 +171,8 @@
             };

             try {
-                // Insert the new item
-                await toDoTable.InsertAsync (item);
+                await toDoTable.InsertAsync(item); // insert the new item into the local database
+                await SyncAsync(); // send changes to the mobile service

                 if (!item.Complete) {
                     adapter.Add (item);


Fixed disappearing segments

Fixed disappearing segments

--- Node_Editor/Utilities/RTEditorGUI.cs
+++ Node_Editor/Utilities/RTEditorGUI.cs
@@ -393,6 +393,8 @@
 			Vector2 curPoint = startPos;
 			Vector2 nextPoint = curPoint;

+			Vector2 curEnd = curPoint;
+
 			bool previousClipped = false, currentClipped = false;

 			for (int segCnt = 1; segCnt <= segmentCount; segCnt++)
@@ -402,22 +404,44 @@

 				if (SegmentRectIntersection(clippingRect, ref curPoint, ref nextPoint, ref currentClipped))
 				{
-					DrawLineSegment (curPoint, new Vector2 (nextPoint.y-curPoint.y, curPoint.x-nextPoint.x).normalized * width/2);
-				}
-
-				if(previousClipped && currentClipped)
-				{
-					GL.End ();
-					GL.Begin (GL.TRIANGLE_STRIP);
-					nextPoint = nextPointOriginal;
+					curEnd = nextPoint;
+
+					if(currentClipped)
+					{
+						if(previousClipped)
+						{
+							GL.End ();
+							GL.Begin (GL.TRIANGLE_STRIP);
+							DrawLineSegment (curPoint, new Vector2 (nextPointOriginal.y-curPoint.y, curPoint.x-nextPointOriginal.x).normalized * width/2);
+							DrawLineSegment (nextPoint, new Vector2 (nextPoint.y-curPoint.y, curPoint.x-nextPoint.x).normalized * width/4);
+							nextPoint = nextPointOriginal;
+						}
+						else
+						{
+							DrawLineSegment (curPoint, new Vector2 (nextPoint.y-curPoint.y, curPoint.x-nextPoint.x).normalized * width/2);
+							DrawLineSegment (nextPoint, new Vector2 (nextPoint.y-curPoint.y, curPoint.x-nextPoint.x).normalized * width/4);
+							nextPoint = nextPointOriginal;
+							GL.End ();
+							GL.Begin (GL.TRIANGLE_STRIP);
+						}
+					}
+					else
+					{
+						if(previousClipped)
+						{
+							GL.End ();
+							GL.Begin (GL.TRIANGLE_STRIP);
+						}
+
+						DrawLineSegment (curPoint, new Vector2 (nextPoint.y-curPoint.y, curPoint.x-nextPoint.x).normalized * width/2);
+					}
 				}

 				curPoint = nextPoint;
 				previousClipped = currentClipped;
 			}

-			if (SegmentRectIntersection(clippingRect, ref curPoint, ref nextPoint, ref currentClipped))
-				DrawLineSegment (curPoint, new Vector2 (endTan.y, -endTan.x).normalized * width/2);
+			DrawLineSegment(curEnd, new Vector2(endTan.y, -endTan.x).normalized * width / 2);

 			GL.End ();
 			GL.Color (Color.white);


Fix GetStories unit test

Fix GetStories unit test

--- PivotalTrackerTests/Services/PivotalTrackerTestClass.cs
+++ PivotalTrackerTests/Services/PivotalTrackerTestClass.cs
@@ -109,26 +109,23 @@
             Assert.NotNull(project);
         }

-        [Fact(Skip="Incomplete")]
+        [Fact]
         private void Test_Get_Project_Stories()
         {
             _tracker = new TestPivotalTracker(_fakeHttpService.Object);
-            var returnProject = new PivotalStory { Id = 1, Name = "Project 1" };
-            var response = CreateResponse(returnProject);
-            _fakeHttpService.Setup(x => x.GetAsync(It.IsAny<string>())).Returns(Task.FromResult(response));
-
-            var project = _tracker.GetProjectStories(1);
-
-            Assert.NotNull(project);
-        }
-
-        //[Fact]
-        //public void TestGetProjectStories()
-        //{
-        //    var projectStories = pt.GetProjectStories(_testProjectId);
-
-        //    Assert.IsNotNull(projectStories);
-        //}
+            var returnStories = new List<PivotalStory>
+            {
+                new PivotalStory { Id = 1, Name = "Story 1" },
+                new PivotalStory { Id = 2, Name = "Story 2" },
+                new PivotalStory { Id = 3, Name = "Story 3" },
+            };
+            var response = CreateResponse(returnStories);
+            _fakeHttpService.Setup(x => x.GetAsync(It.IsAny<string>())).Returns(Task.FromResult(response));
+
+            var stories = _tracker.GetProjectStories(1);
+
+            Assert.NotNull(stories);
+        }

         //[Fact]
         //public void TestCreateProjectStoryWithFullCtor()


Geolocation refer to trial flag

Geolocation refer to trial flag

--- Project/uwpmm/uwpmm.WindowsPhone/Pages/MainPage.xaml.cs
+++ Project/uwpmm/uwpmm.WindowsPhone/Pages/MainPage.xaml.cs
@@ -1455,6 +1455,8 @@

         private void InitializeAppSettingPanel()
         {
+            var limited = (App.Current as App).IsFunctionLimited;
+
             var image_settings = new SettingSection(SystemUtil.GetStringResource("SettingSection_Image"));

             AppSettings.Children.Add(image_settings);
@@ -1464,15 +1466,27 @@
                 () => { return ApplicationSettings.GetInstance().IsPostviewTransferEnabled; },
                 enabled => { ApplicationSettings.GetInstance().IsPostviewTransferEnabled = enabled; })));

-            geoSetting = new AppSettingData<bool>(SystemUtil.GetStringResource("AddGeotag"), SystemUtil.GetStringResource("AddGeotag_guide"),
-                () => { return ApplicationSettings.GetInstance().GeotagEnabled; },
+            var geoGuide = limited ? "TrialMessage" : "AddGeotag_guide";
+            geoSetting = new AppSettingData<bool>(SystemUtil.GetStringResource("AddGeotag"), SystemUtil.GetStringResource(geoGuide),
+                () =>
+                {
+                    if (limited) { return false; }
+                    else { return ApplicationSettings.GetInstance().GeotagEnabled; }
+                },
                 enabled =>
                 {
                     ApplicationSettings.GetInstance().GeotagEnabled = enabled;
                     if (enabled) { EnableGeolocator(); }
                     else { DisableGeolocator(); }
                 });
-            image_settings.Add(new ToggleSetting(geoSetting));
+            var geoToggle = new ToggleSetting(geoSetting);
+
+            if (limited)
+            {
+                ApplicationSettings.GetInstance().GeotagEnabled = false;
+                geoSetting.IsActive = false;
+            }
+            image_settings.Add(geoToggle);

             var display_settings = new SettingSection(SystemUtil.GetStringResource("SettingSection_Display"));


Update BindAttribute.cs

Update BindAttribute.cs

--- Runtime/Attributes/BindAttribute.cs
+++ Runtime/Attributes/BindAttribute.cs
@@ -10,5 +10,10 @@
 		{
 			this.id = id;
 		}
+
+		public BindAttribute()
+		{
+
+		}
 	}
 }


fixes test

fixes test

--- src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
+++ src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
@@ -45,6 +45,8 @@

         private ContentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository, out DataTypeDefinitionRepository dtdRepository, CacheHelper cacheHelper = null)
         {
+            cacheHelper = cacheHelper ?? CacheHelper;
+
             TemplateRepository tr;
             var ctRepository = CreateRepository(unitOfWork, out contentTypeRepository, out tr);
             dtdRepository = new DataTypeDefinitionRepository(unitOfWork, cacheHelper, Logger, SqlSyntax, contentTypeRepository);


Use pattern switch

Use pattern switch

--- src/Workspaces/Core/Portable/Shared/Extensions/ISymbolExtensions.cs
+++ src/Workspaces/Core/Portable/Shared/Extensions/ISymbolExtensions.cs
@@ -865,29 +865,18 @@

         public static ITypeSymbol GetSymbolType(this ISymbol symbol)
         {
-            if (symbol is ILocalSymbol localSymbol)
-            {
-                return localSymbol.Type;
-            }
-
-            if (symbol is IFieldSymbol fieldSymbol)
-            {
-                return fieldSymbol.Type;
-            }
-
-            if (symbol is IPropertySymbol propertySymbol)
-            {
-                return propertySymbol.Type;
-            }
-
-            if (symbol is IParameterSymbol parameterSymbol)
-            {
-                return parameterSymbol.Type;
-            }
-
-            if (symbol is IAliasSymbol aliasSymbol)
-            {
-                return aliasSymbol.Target as ITypeSymbol;
+            switch (symbol)
+            {
+                case ILocalSymbol localSymbol:
+                    return localSymbol.Type;
+                case IFieldSymbol fieldSymbol:
+                    return fieldSymbol.Type;
+                case IPropertySymbol propertySymbol:
+                    return propertySymbol.Type;
+                case IParameterSymbol parameterSymbol:
+                    return parameterSymbol.Type;
+                case IAliasSymbol aliasSymbol:
+                    return aliasSymbol.Target as ITypeSymbol;
             }

             return symbol as ITypeSymbol;


Added flags for DateTime converter in Qt/Qyoto frontend

--- Selene.Qyoto/Selene.Qyoto.Midend/DateTimeEdit.cs
+++ Selene.Qyoto/Selene.Qyoto.Midend/DateTimeEdit.cs
@@ -23,7 +23,14 @@

         protected override QObject Construct ()
         {
-            return new QDateTimeEdit();
+            var Ret = new QDateTimeEdit();
+
+            string Format = Original.GetFlag<string>();
+
+            if(Format != null)
+                Ret.DisplayFormat = Format;
+
+            return Ret;
         }

         protected override string SignalForType (ControlType Type)


Implement Task in TaskToTestFactories test class

When walling off the FEATURE_APPDOMAIN stuff, we appear to have been a bit
overzealous.  Even if it's not AppDomainIsolated, this test Task must
implement ITask.

--- src/XMakeBuildEngine/UnitTests/BackEnd/AssemblyTaskFactory_Tests.cs
+++ src/XMakeBuildEngine/UnitTests/BackEnd/AssemblyTaskFactory_Tests.cs
@@ -725,6 +725,8 @@
         public class TaskToTestFactories
 #if FEATURE_APPDOMAIN
             : AppDomainIsolatedTask
+#else
+            : Task
 #endif
         {
             /// <summary>
@@ -748,11 +750,7 @@
             /// <summary>
             /// Execute the test
             /// </summary>
-#if FEATURE_APPDOMAIN
             public override bool Execute()
-#else
-            public bool Execute()
-#endif
             {
                 return true;
             }


removed bus dispose - this shouldn't happen on app end

--- Sfa.Demo.Nsb.Web/Sfa.Demo.Nsb.Web/Global.asax.cs
+++ Sfa.Demo.Nsb.Web/Sfa.Demo.Nsb.Web/Global.asax.cs
@@ -72,7 +72,7 @@

         protected void Application_End()
         {
-            _bus?.Dispose();
+            //_bus?.Dispose();
         }
     }
 }


Bugfix

Bugfix

--- Sand.Controls/SandWidgetGridCell.cs
+++ Sand.Controls/SandWidgetGridCell.cs
@@ -90,7 +90,8 @@
         {
             if( widget != null )
             {
-                if( this.Widget != null )
+                if( ( this.Widget != null ) &&
+                    ( this.Widget != widget ) ) //-- Setting the already set widget again in order to center it is permitted
                     throw new InvalidOperationException( "The cell is already occupied!" );

                 if( shouldWidgetBeCentered )


Allow unattended creating of single binding certificaties

--- letsencrypt-win-simple/Plugins/TargetPlugins/IISBinding.cs
+++ letsencrypt-win-simple/Plugins/TargetPlugins/IISBinding.cs
@@ -11,7 +11,14 @@
     {
         string IHasName.Name => nameof(IISBinding);
         string IHasName.Description => "Single binding of an IIS site";
-        Target ITargetPlugin.Default(Options options) => null;
+
+        Target ITargetPlugin.Default(Options options)
+        {
+            var hostName = options.TryGetRequiredOption(nameof(options.ManualHost), options.ManualHost);
+            return GetBindings(options, false).
+                    Where(x => x.Host == hostName).
+                    FirstOrDefault();
+        }

         Target ITargetPlugin.Aquire(Options options, InputService input)
         {


Update in Database object

Update in Database object

--- main/dbms_gui_02/dbms_gui_02/dbms_objects_data/Database.cs
+++ main/dbms_gui_02/dbms_gui_02/dbms_objects_data/Database.cs
@@ -8,7 +8,9 @@
 {
     public sealed class Database
     {
-        public List<Table> tables;
+        public static List<Table> tables;
+        public static Dictionary<string, Table> dictionary;
+

         private static readonly object obj = new object();
         private static Database instance = null;
@@ -38,6 +40,7 @@
         private Database()
         {
             tables = new List<Table>();
+            dictionary = new Dictionary<string, Table>();
         }

         /// <summary>
@@ -61,6 +64,31 @@
             }
             return true;
         }
+
+
+        public bool AddTable(string name, string[] columns, Type[] types)
+        {
+            if (string.IsNullOrEmpty(name))
+            {
+                return false;
+            }
+
+            Table table = new Table();
+            if (!table.CreateTable(columns, types))
+            {
+                return false;
+            }
+            try
+            {
+                dictionary.Add(name, table);
+            }
+            catch(Exception e)
+            {
+                Console.WriteLine(e.Message);
+                return false;
+            }
+            return true;
+        }

     }
 }


fix deserialization of enums with custom attributes

--- Octokit/Http/SimpleJsonSerializer.cs
+++ Octokit/Http/SimpleJsonSerializer.cs
@@ -80,17 +80,15 @@
             {
                 var type = p.GetType();
                 var name = Enum.GetName(type, p);
-#if NETFX_CORE
-                var attr = type.GetTypeInfo().GetCustomAttribute<ParameterAttribute>();
-#else
-                var attr =  type.GetField(name)
+
+                var attr = type.GetRuntimeField(name)
                     .GetCustomAttributes(false)
                     .OfType<ParameterAttribute>()
                     .SingleOrDefault();
-#endif
+
                 if (attr != null)
                     return attr.Value;
-
+
                 return p.ToString().ToLowerInvariant();
             }

@@ -105,6 +103,17 @@
                 {
                     if (ReflectionUtils.GetTypeInfo(type).IsEnum)
                     {
+                        //first try to get all custom attributes
+                        var fields = type.GetRuntimeFields();
+                        foreach (var field in fields)
+                        {
+                            var attribute = (ParameterAttribute)field.GetCustomAttribute(typeof(ParameterAttribute));
+                            if (attribute != null)
+                            {
+                                if (attribute.Value.Equals(value))
+                                    return field.GetValue(null);
+                            }
+                        }
                         // remove '-' from values coming in to be able to enum utf-8
                         stringValue = RemoveHyphenAndUnderscore(stringValue);
                         return Enum.Parse(type, stringValue, ignoreCase: true);


Fixed rectangle animation

Fixed rectangle animation

Thanks gurjot95 and Wibble199

--- Project-Aurora/Project-Aurora/EffectsEngine/Animations/AnimationFilledGradientRectangle.cs
+++ Project-Aurora/Project-Aurora/EffectsEngine/Animations/AnimationFilledGradientRectangle.cs
@@ -34,7 +34,7 @@
         {
             RectangleF _scaledDimension = new RectangleF(_dimension.X * scale, _dimension.Y * scale, _dimension.Width * scale, _dimension.Height * scale);

-            PointF rotatePoint = new PointF(_scaledDimension.X + (_scaledDimension.Width / 2.0f), _scaledDimension.Y + (_scaledDimension.Height / 2.0f));
+            PointF rotatePoint = new PointF(_scaledDimension.X, _scaledDimension.Y);

             EffectBrush _newbrush = new EffectBrush(_gradientBrush);
             _newbrush.start = new PointF(_newbrush.start.X * scale, _newbrush.start.Y * scale);
@@ -42,6 +42,7 @@

             Matrix rotationMatrix = new Matrix();
             rotationMatrix.RotateAt(-_angle, rotatePoint, MatrixOrder.Append);
+            rotationMatrix.Translate(-_scaledDimension.Width / 2f, -_scaledDimension.Height / 2f);

             Matrix originalMatrix = g.Transform;
             g.Transform = rotationMatrix;


Fix benchmark for arraylist iterator

Fix benchmark for arraylist iterator

--- Source/Tests/Iterator.Performance.Tests/NotConst/ArrayList_Iterator_Vs_Enumerator_Tests.cs
+++ Source/Tests/Iterator.Performance.Tests/NotConst/ArrayList_Iterator_Vs_Enumerator_Tests.cs
@@ -28,7 +28,7 @@
         [Benchmark]
         public void ArrayList_Integer_Iterator()
         {
-            var it = _arrayListInts.ConstBegin();
+            var it = _arrayListInts.Begin();
             while (it++) { }
         }

@@ -41,7 +41,7 @@
         [Benchmark]
         public void ArrayList_String_Iterator()
         {
-            var it = _arrayListStrings.ConstBegin();
+            var it = _arrayListStrings.Begin();
             while (it++) { }
         }


(TFS CS 6926)

(TFS CS 6926)

--- Signum.Web.Extensions.Sample/Code/MusicClient.cs
+++ Signum.Web.Extensions.Sample/Code/MusicClient.cs
@@ -24,7 +24,7 @@
                     new EntitySettings<AlbumDN>(EntityType.NotSaving) { PartialViewName = e => ViewPrefix + "Album" },
                     new EntitySettings<AmericanMusicAwardDN>(EntityType.Default) { PartialViewName = e => ViewPrefix + "AmericanMusicAward" },
                     new EntitySettings<ArtistDN>(EntityType.Default) { PartialViewName = e => ViewPrefix + "Artist" },
-                    new EntitySettings<AwardDN>(EntityType.Default) { PartialViewName = e => ViewPrefix + "Award" },
+                    //new EntitySettings<AwardDN>(EntityType.Default) { PartialViewName = e => ViewPrefix + "Award" },
                     new EntitySettings<BandDN>(EntityType.Default) { PartialViewName = e => ViewPrefix + "Band" },
                     new EntitySettings<GrammyAwardDN>(EntityType.Default) { PartialViewName = e => ViewPrefix + "GrammyAward" },
                     new EntitySettings<LabelDN>(EntityType.Default) { PartialViewName = e => ViewPrefix + "Label" },


Fixed log4net error in mailerservice.

Fixed log4net error in mailerservice.

--- Mail/ConsoleMailerService.cs
+++ Mail/ConsoleMailerService.cs
@@ -25,7 +25,7 @@
         {
             _mailService = mailService;
             _repo = repo;
-            //log4net.Config.XmlConfigurator.Configure();
+            //log4net.Config.XmlConfigurator.Configure();
             Logger.Info("MailService startet.");
         }


finished movement even more

finished movement even more

--- SolarSmuggler/Assets/Scripts/PlayerController.cs
+++ SolarSmuggler/Assets/Scripts/PlayerController.cs
@@ -489,6 +489,20 @@
                 PlayerGrid[(int)posOffset.x, (int)posOffset.y].distance = dist + 1;
             }
         }
+        else if (posOffset.x <= MAX_MOVE * 2 &&
+                posOffset.y <= MAX_MOVE * 2)
+        {
+            GridSquare newSpace = new GridSquare
+            {
+                coordinates = new Vector3(x, 0f, z),
+                hidden = false,
+                cargo = false,
+                distance = 20,
+                destination = false
+            };
+
+            PlayerGrid[(int)posOffset.x, (int)posOffset.y] = newSpace;
+        }
     }

     void Pathfind(Vector3 curSpace)
@@ -505,10 +519,10 @@
         int loX = (int)posOffset.x - 1;

         // Clamp to bounds. Yeah, this leads to duplicate checks.
-        if (hiY > MAX_MOVE * 2) hiY--;
-        if (hiX > MAX_MOVE * 2) hiX--;
-        if (loY < 0) loY++;
-        if (loX < 0) loX++;
+        if (hiY > MAX_MOVE * 2) hiY = MAX_MOVE * 2;
+        if (hiX > MAX_MOVE * 2) hiX = MAX_MOVE * 2;
+        if (loY < 0) loY = 0;
+        if (loX < 0) loX = 0;

         if (PlayerGrid[(int)posOffset.x, (int)posOffset.y].distance > 1.4f)
         {
@@ -539,9 +553,9 @@
             curSpace.coordinates = transform.position;
             Vector3 curDir = Vector3.zero;
             float curDur = 0f;
-            Vector3 yBuffer = new Vector3(0f, 0.3f, 0f);
             RaycastHit hit;
-            if (!Physics.SphereCast(transform.position + yBuffer, 0.5f, finalSquare.coordinates - transform.position, out hit, Vector3.Distance(finalSquare.coordinates, transform.position)))
+            if (!Physics.SphereCast(transform.position, 0.5f, finalSquare.coordinates - transform.position,
+                                    out hit, Vector3.Distance(finalSquare.coordinates, transform.position), 255, QueryTriggerInteraction.Ignore))
             {
                 curDir = finalSquare.coordinates - curSpace.coordinates;
                 curDur = Vector3.Distance(finalSquare.coordinates, curSpace.coordinates) * 0.2f;
@@ -641,7 +655,11 @@

     void RotatePlayer(float yRotationNeeded, ArrayList spaceAndDur)
     {
-        iTween.RotateAdd(gameObject, iTween.Hash("y", yRotationNeeded, "time", 0.2f, "oncomplete", "TranslatePlayer", "oncompletetarget", gameObject, "oncompleteparams", spaceAndDur));
+        iTween.RotateAdd(gameObject, iTween.Hash("y", yRotationNeeded,
+                                                 "time", 0.2f,
+                                                 "oncomplete", "TranslatePlayer",
+                                                 "oncompletetarget", gameObject,
+                                                 "oncompleteparams", spaceAndDur));
     }

     void TranslatePlayer(ArrayList spaceAndDur)


Return added disposable from `DisposeWith`

--- SolidworksAddinFramework/DisposableExtensions.cs
+++ SolidworksAddinFramework/DisposableExtensions.cs
@@ -12,9 +12,11 @@
             return new CompositeDisposable(d);
         }

-        public static void DisposeWith(this IDisposable disposable, CompositeDisposable container)
+        public static T DisposeWith<T>(this T disposable, CompositeDisposable container)
+            where T : IDisposable
         {
             container.Add(disposable);
+            return disposable;
         }
     }
 }


update hotspots to send generic death message (#3275)

* update hotspots to send generic death message

* spacing

--- Source/ACE.Server/WorldObjects/Creature_Death.cs
+++ Source/ACE.Server/WorldObjects/Creature_Death.cs
@@ -55,24 +55,24 @@
         }

-        public DeathMessage GetDeathMessage(DamageHistoryInfo lastDamager, DamageType damageType, bool criticalHit = false)
-        {
+        public DeathMessage GetDeathMessage(DamageHistoryInfo lastDamagerInfo, DamageType damageType, bool criticalHit = false)
+        {
+            var lastDamager = lastDamagerInfo.TryGetAttacker();
+
+            if (lastDamagerInfo == null || lastDamagerInfo.Guid == Guid || lastDamager is Hotspot)
+                return Strings.General[1];
+
             var deathMessage = Strings.GetDeathMessage(damageType, criticalHit);

-            if (lastDamager == null || lastDamager.Guid == Guid)
-                return Strings.General[1];
-
             // if killed by a player, send them a message
-            if (lastDamager.IsPlayer)
+            if (lastDamagerInfo.IsPlayer)
             {
                 if (criticalHit && this is Player)
                     deathMessage = Strings.PKCritical[0];

                 var killerMsg = string.Format(deathMessage.Killer, Name);

-                var playerKiller = lastDamager.TryGetAttacker() as Player;
-
-                if (playerKiller != null)
+                if (lastDamager is Player playerKiller)
                     playerKiller.Session.Network.EnqueueSend(new GameEventKillerNotification(playerKiller.Session, killerMsg));
             }
             return deathMessage;


@Annotation

@Annotation

--- Source/Devsense.PHP.Parser/Syntax/PHPDocBlock.cs
+++ Source/Devsense.PHP.Parser/Syntax/PHPDocBlock.cs
@@ -79,7 +79,7 @@
             static Element()
             {
                 // initilize dictionary of known tags and their factories:
-                s_elementFactories = new Dictionary<string, Func<string, string, Element>>(20, StringComparer.OrdinalIgnoreCase);
+                s_elementFactories = new Dictionary<string, Func<string, string, Element>>(36, StringComparer.OrdinalIgnoreCase);
                 var types = typeof(PHPDocBlock).GetTypeInfo().DeclaredNestedTypes.Where(t => t.IsNestedPublic && !t.IsAbstract);
                 var eltype = typeof(Element).GetTypeInfo();
                 foreach (var t in types)
@@ -669,6 +669,34 @@
         }

         /// <summary>
+        /// Annotates an annotation class.
+        /// </summary>
+        public sealed class AnnotationTag : SingleLineTag
+        {
+            public const string Name = "@Annotation";
+
+            public AnnotationTag(string tagName, string/*!*/line)
+                : base(tagName, line)
+            {
+
+            }
+
+            public override string ToString()
+            {
+                return Name;
+            }
+
+            internal override bool IsEmpty
+            {
+                get
+                {
+                    // "@Annotation" itself is significant, even without additional text
+                    return false;
+                }
+            }
+        }
+
+        /// <summary>
         /// Documents the location of an external saved example file.
         /// </summary>
         public sealed class ExampleTag : SingleLineTag


Fix the issue - adding chapters to download queue.

--- MangaRipper/Helper/Common.cs
+++ MangaRipper/Helper/Common.cs
@@ -68,7 +68,8 @@
                 _logger.Error(ex);
             }

-            return result;
+            // Queue should not be a null
+            return result ?? new BindingList<DownloadChapterTask>();
         }

         public static IEnumerable<Chapter> CloneIChapterCollection(IEnumerable<Chapter> chapters)


WMS bugfix: parsing error occurred when Capabilities did not contained (the optional) GetfeatureInfo section

--- Mapsui.Desktop/Wms/Client.cs
+++ Mapsui.Desktop/Wms/Client.cs
@@ -434,6 +434,9 @@
             ParseGetMapRequest(xnGetMap);

             XmlNode xnGetFeatureInfo = xmlRequestNode.SelectSingleNode("sm:GetFeatureInfo", nsmgr);
+            if (xnGetFeatureInfo == null)
+                return;
+
             ParseGetFeatureInfo(xnGetFeatureInfo);
         }


Build fix.

Build fix.

--- Samples/Testing/SampleHistoryTesting/MainWindow.xaml.cs
+++ Samples/Testing/SampleHistoryTesting/MainWindow.xaml.cs
@@ -308,7 +308,7 @@
 					YahooCandlesProgress,
 					YahooCandlesParameterGrid,
 					// candles
-					new EmulationInfo {UseCandleTimeFrame = timeFrame, HistorySource = d => new YahooHistorySource(_exchangeInfoProvider).GetCandles(security, timeFrame, d.Date, d.Date), CurveColor = Colors.DarkBlue, StrategyName = LocalizedStrings.YahooCandles},
+					new EmulationInfo {UseCandleTimeFrame = timeFrame, HistorySource = d => new YahooHistorySource(_nativeIdStorage, _exchangeInfoProvider).GetCandles(security, timeFrame, d.Date, d.Date), CurveColor = Colors.DarkBlue, StrategyName = LocalizedStrings.YahooCandles},
 					YahooCandlesChart,
 					YahooCandlesEquity,
 					YahooCandlesPosition),


Two fixes.  #1 Fix out of memory issue when there are large amounts of existing pictures on the device.  #2 Fix for DisposeObjectException in ParseResults() due to an invalid call on response.RequestMessage

--- SecuritySystemUWP/SecuritySystemUWP/Storage/OneDrive.cs
+++ SecuritySystemUWP/SecuritySystemUWP/Storage/OneDrive.cs
@@ -17,7 +17,17 @@
 {
     public class OneDrive : IStorage
     {
+        // Maximum number of retries for server-side error recovery
         private const int MaxTries = 3;
+        // Maximum number of pictures to upload per upload try
+        // On RPI2, here are the perf results
+        // # of Pictures    |   GetFilesAsync() Memory Consumption (MB)  |   UploadPictures() Time (seconds)
+        // 10               |   86MB                                    |   11
+        // 100              |   92MB                                    |   81
+        // 300              |   95MB                                    |   262
+        // 1000             |   176MB                                   |   840
+        // per results above decided to go with 100 pictures
+        private const int MaxPictureUpload = 100;
         private int numberUploaded = 0;
         private DateTime lastUploadTime = DateTime.MinValue;
         private OneDriveConnector oneDriveConnector;
@@ -59,7 +69,7 @@
                     StorageFolder cacheFolder = KnownFolders.PicturesLibrary;
                     cacheFolder = await cacheFolder.GetFolderAsync(AppSettings.FolderName);
                     var result = cacheFolder.CreateFileQueryWithOptions(querySubfolders);
-                    var files = await result.GetFilesAsync();
+                    var files = await result.GetFilesAsync(0, MaxPictureUpload);

                     foreach (StorageFile file in files)
                     {
@@ -257,7 +267,6 @@
             {
                 successStatus = false;
                 events.Add(response.StatusCode.ToString(), response.ReasonPhrase);
-                events.Add("Original Request", response.RequestMessage.ToString());
                 if (response.StatusCode == HttpStatusCode.Unauthorized)
                 {
                     events.Add("Recovery Attempt", "AuthorizeWithRefreshToken()");


Fixed: modifiers was not added nor removed

Also fixed a bug in which the current keystate list don't get cleared.

--- Sharpex.GameLibrary/Framework/Input/Devices/Keyboard.cs
+++ Sharpex.GameLibrary/Framework/Input/Devices/Keyboard.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Windows.Forms;
+using SharpexGL.Framework.Debug.Logging;
 using SharpexGL.Framework.Game;
 using SharpexGL.Framework.Game.Timing;
 using SharpexGL.Framework.Rendering;
@@ -44,6 +45,7 @@
                 {
                     _lastkeystate.Add(current.Key, current.Value);
                 }
+                _keystate.Clear();
             }
         }

@@ -126,6 +128,13 @@
         {
             if (!IsEnabled) return;
             SetKeyState((Keys)e.KeyCode, false);
+
+            if (e.Modifiers == System.Windows.Forms.Keys.None)
+            {
+                SetKeyState(Keys.Alt, false);
+                SetKeyState(Keys.Control, false);
+                SetKeyState(Keys.Shift, false);
+            }
         }

         /// <summary>
@@ -137,6 +146,7 @@
         {
             if (!IsEnabled) return;
             SetKeyState((Keys)e.KeyCode, true);
+            SetKeyState((Keys) e.Modifiers, true);
         }

         /// <summary>


Remove zk connection check that apparently expects connection to be immediate

--- SolrNet.Cloud/ZooKeeperClient/SolrCloudStateProvider.cs
+++ SolrNet.Cloud/ZooKeeperClient/SolrCloudStateProvider.cs
@@ -94,8 +94,6 @@
                 if (!isInitialized)
                 {
                     await UpdateAsync().ConfigureAwait(false);
-                    if (zooKeeper.getState() != ZooKeeper.States.CONNECTED && zooKeeper.getState() != ZooKeeper.States.CONNECTEDREADONLY)
-                        throw new Exceptions.SolrNetCloudConnectionException($"Cannot connect to the Zookeeper instance {zooKeeperConnection}. Current state: {zooKeeper.getState()} ");

                     isInitialized = true;
                 }


short args check

short args check

--- SoundsRecord/win32/SoundsRecord/SoundsRecord/Program.cs
+++ SoundsRecord/win32/SoundsRecord/SoundsRecord/Program.cs
@@ -13,7 +13,7 @@
     {
         static int Main(string[] args)
         {
-            if (args.Length == 0 || args[0] == "-h" || args[0] == "--help")
+            if (args.Length < 2)
             {
                 System.Console.WriteLine("Usage:");
                 System.Console.WriteLine("    SoundsRecord.exe <time/seconds> <output/wav>");


Fix diff api

Fix diff api

--- Source/BitBucket.REST.API/Clients/PullRequestsClient.cs
+++ Source/BitBucket.REST.API/Clients/PullRequestsClient.cs
@@ -40,8 +40,8 @@
         {
             var url = ApiUrls.PullRequestDiff(owner, repositoryName, id);
             var request = new BitbucketRestRequest(url, Method.GET);
-            var response = await RestClient.ExecuteTaskAsync<string>(request);
-            return response.Data;
+            var response = await RestClient.ExecuteTaskAsync(request);
+            return response.Content;
         }

         public async Task<IteratorBasedPage<Commit>> GetPullRequestCommits(string repositoryName, long id)


GSF.TimeSeries: Updated debug host to manage auto-launched console with a ChildProcessManager so that debug console will be terminated even on an aborted session.

--- Source/Libraries/GSF.TimeSeries/DebugHostBase.cs
+++ Source/Libraries/GSF.TimeSeries/DebugHostBase.cs
@@ -26,8 +26,12 @@
 using System;
 using System.Diagnostics;
 using System.Windows.Forms;
+using GSF.Diagnostics;
 using GSF.IO;
 using GSF.Reflection;
+
+// Process start command parameters only applicable from manual debug run
+#pragma warning disable SG0001 // Potential command injection with Process.Start

 namespace GSF.TimeSeries
 {
@@ -40,7 +44,7 @@

         // Fields
         private string m_productName;
-        private Process m_remoteConsole;
+        private ChildProcessManager m_processManager;

         /// <summary>
         /// Reference to instance of <see cref="ServiceHostBase"/>.
@@ -66,13 +70,7 @@
         /// <summary>
         /// Gets the executable name of the service client that can remotely access the time-series framework service.
         /// </summary>
-        protected virtual string ServiceClientName
-        {
-            get
-            {
-                return null;
-            }
-        }
+        protected virtual string ServiceClientName => null;

         #endregion

@@ -87,7 +85,10 @@
             string serviceClientName = ServiceClientName;

             if (!string.IsNullOrWhiteSpace(serviceClientName))
-                m_remoteConsole = Process.Start(FilePath.GetAbsolutePath(serviceClientName));
+            {
+                m_processManager = new ChildProcessManager();
+                m_processManager.AddProcess(Process.Start(FilePath.GetAbsolutePath(serviceClientName)));
+            }
         }

         /// <summary>
@@ -96,8 +97,7 @@
         protected virtual void DebugHostUnloading()
         {
             // Close remote console session
-            if (m_remoteConsole != null && !m_remoteConsole.HasExited)
-                m_remoteConsole.Kill();
+            m_processManager?.Dispose();
         }

         private void DebugHost_Load(object sender, EventArgs e)


Checkbox- made the checkbox parent of the text label

This way the 2 will go together when moving the checkbox in the editor.

--- Source/Engine/AGS.Engine/Game/Factories/AGSUIFactory.cs
+++ Source/Engine/AGS.Engine/Game/Factories/AGSUIFactory.cs
@@ -359,10 +359,6 @@
             checkedHovered = validateAnimation(id, checkedHovered, hoverCheckedDefault, width, height);
             TypedParameter idParam = new TypedParameter(typeof(string), id);
             ICheckBox checkbox = _resolver.Container.Resolve<ICheckBox>(idParam);
-            if (!string.IsNullOrEmpty(text))
-            {
-                checkbox.TextLabel = GetLabel($"{id}_Label", text, 100f, 20f, x + width + 5f, y, parent, config, addToUi);
-            }
             if (!isCheckButton)
             {
                 checkbox.SkinTags.Add(AGSSkin.CheckBoxTag);
@@ -376,6 +372,12 @@
             checkbox.X = x;
             checkbox.Y = y;
             setParent(checkbox, parent);
+
+            if (!string.IsNullOrEmpty(text))
+            {
+                checkbox.TextLabel = GetLabel($"{id}_Label", text, 100f, 20f, width + 5f, height / 2f, checkbox, config, addToUi);
+                checkbox.TextLabel.Pivot = (0f, 0.5f);
+            }

             checkbox.Skin?.Apply(checkbox);
             checkbox.NotCheckedAnimation.StartAnimation(checkbox, checkbox.TextLabel, checkbox, checkbox);


Refactored ReadController to remove reference to ApiResult

--- Source/OpenIIoT.Core/Model/API/ReadController.cs
+++ Source/OpenIIoT.Core/Model/API/ReadController.cs
@@ -66,11 +66,7 @@
         [HttpGet]
         public HttpResponseMessage Read(string fqn, bool fromSource)
         {
-            ApiResult<List<Item>> retVal = new ApiResult<List<Item>>(Request);
-            retVal.ReturnValue = new List<Item>();
-
-            retVal.LogRequest(logger.Info);
-
+            // TODO: Fix this so all url encodings are translated
             fqn = fqn.Replace("%25", "%");

             Item foundItem = manager.GetManager<IModelManager>().FindItem(fqn);
@@ -80,10 +76,7 @@
                 foundItem.ReadFromSource();
             }

-            retVal.ReturnValue.Add(foundItem);
-
-            retVal.LogResult(logger);
-            return retVal.CreateResponse(JsonFormatter(new List<string>(new string[] { "FQN", "Timestamp", "Quality", "Value", "Children" }), ContractResolverType.OptIn));
+            return Request.CreateResponse(HttpStatusCode.OK, foundItem.Value, JsonFormatter(new List<string>(new string[] { "FQN", "Timestamp", "Quality", "Value", "Children" }), ContractResolverType.OptIn));
         }

         #endregion Public Methods


Update FormulaParser.cs

Update FormulaParser.cs

Add support for array formulae in arguments.
Ex: =SomeFunction({1,2}, {3,

--- Source/ExcelDna.IntelliSense/UIMonitor/FormulaParser.cs
+++ Source/ExcelDna.IntelliSense/UIMonitor/FormulaParser.cs
@@ -17,19 +17,32 @@
         internal static bool TryGetFormulaInfo(string formulaPrefix, out string functionName, out int currentArgIndex)
         {
             Debug.Assert(formulaPrefix != null);
-
+
+            // Hide the strings, in order to ignore the commas, parenthesis and curly brackets which might be inside.
+            // Ex: =SomeFunction("a", "b,c(d,{e,f,
+            // In the example above, the function is SomeFunction, and the index is 2
+
+            // If editing a string, then close the double-quotes
             if (formulaPrefix.Count(c => c == '\"') % 2 != 0)
             {
                 formulaPrefix = string.Concat(formulaPrefix, '\"');
             }

-            formulaPrefix = Regex.Replace(formulaPrefix, "(\"[^\"]*\")|(\\([^\\(\\)]*\\))| ", string.Empty);
+            // Remove the strings.
+            // Note: in Excel, in order to put a double-quotes in a string, one has to double the double-quotes.
+            // For instance, "a""b" for a"b. Since we only want to hide the strings in order to count the commas,
+            // the regex below still applies.
+            formulaPrefix = Regex.Replace(formulaPrefix, "(\"[^\"]*\")", string.Empty);
+
+            // Remove sub-formulae
+            formulaPrefix = Regex.Replace(formulaPrefix, "(\\([^\\(\\)]*\\))| ", string.Empty);

             while (Regex.IsMatch(formulaPrefix, "\\([^\\(\\)]*\\)"))
             {
                 formulaPrefix = Regex.Replace(formulaPrefix, "\\([^\\(\\)]*\\)", string.Empty);
             }

+            // Find the function name and the argument index
             int lastOpeningParenthesis = formulaPrefix.LastIndexOf("(", formulaPrefix.Length - 1, StringComparison.Ordinal);

             if (lastOpeningParenthesis > -1)
@@ -38,7 +51,24 @@
                 if (match.Success)
                 {
                     functionName = match.Groups[functionNameGroupName].Value;
-                    currentArgIndex = formulaPrefix.Substring(lastOpeningParenthesis, formulaPrefix.Length - lastOpeningParenthesis).Count(c => c == ListSeparator);
+
+                    string argumentsPart = formulaPrefix.Substring(lastOpeningParenthesis, formulaPrefix.Length - lastOpeningParenthesis);
+
+                    // Hide array formulae
+                    // Ex: =SomeFunction("a", {"a", "b", "c"
+                    // In the example above the index is 2
+
+                    // If editing an array, then close the curly bracket.
+                    // Since we already removed the strings, there won't be any curly brackets within a string.
+                    if (argumentsPart.Count(c => c == '{') > argumentsPart.Count(c => c == '}'))
+                    {
+                        argumentsPart = string.Concat(argumentsPart, '}');
+                    }
+
+                    // Remove the arrays.
+                    argumentsPart = Regex.Replace(argumentsPart, "(\\{[^\\}]*\\})", string.Empty);
+
+                    currentArgIndex = argumentsPart.Count(c => c == ListSeparator);
                     return true;
                 }
             }


Increment build number

Increment build number

--- Source/SnowyImageCopy/Properties/AssemblyInfo.cs
+++ Source/SnowyImageCopy/Properties/AssemblyInfo.cs
@@ -52,8 +52,8 @@
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("2.2.2.0")]
-[assembly: AssemblyFileVersion("2.2.2.0")]
+[assembly: AssemblyVersion("2.2.3.0")]
+[assembly: AssemblyFileVersion("2.2.3.0")]

 // For unit test
 [assembly: InternalsVisibleTo("SnowyImageCopy.Test")]


[DisplaytTemplateHelper] Now attempting to flush the entire web app's BLOB cache after generating some Display Template html files. - This step is super easy to forget and forgetting it can lead to much frustration when trying the re-deploy Display Templates that are associated to Result Types. - Not sure that SPException is the right exception type to catch here.

--- Source/GSoft.Dynamite/Branding/DisplayTemplateHelper.cs
+++ Source/GSoft.Dynamite/Branding/DisplayTemplateHelper.cs
@@ -3,6 +3,7 @@
 using System.Diagnostics.CodeAnalysis;
 using GSoft.Dynamite.Logging;
 using Microsoft.SharePoint;
+using Microsoft.SharePoint.Publishing;

 namespace GSoft.Dynamite.Branding
 {
@@ -91,6 +92,23 @@
                 htmlFile.Update();
                 htmlFile.Publish("Publish JS File Generation");
             }
+
+            if (htmlFiles.Count > 0)
+            {
+                // Flush the blob cache accross the entire web application (otherwise the old
+                // version of the Display Template will stay stuck in the cache, especially when
+                // your Display Templates are associated with Result Types)
+                try
+                {
+                    // WARNING: You need security_admin SQL server role and the db_owner role on the web app's content DB
+                    // in order to successfully flush the web app's BLOB cache.
+                    PublishingCache.FlushBlobCache(htmlFiles[0].ParentFolder.ParentWeb.Site.WebApplication);
+                }
+                catch (SPException exception)
+                {
+                    this.logger.Error("DisplayTemplateHelper.GenerateJavascriptFile: Failed to flush the BLOB cache accross the web app. You need You need security_admin SQL server role and the db_owner role on the web app's content DB. Caught and swallowed exception: {0}", exception);
+                }
+            }
         }
     }
 }


Add documentation

Add documentation

--- Funnier/ImageViewController.cs
+++ Funnier/ImageViewController.cs
@@ -135,19 +135,7 @@
                     toolbar.Hidden = !hidden;
                 });
         }
-
-        public override void ViewWillUnload ()
-        {
-            base.ViewWillUnload ();
-            Debug.WriteLine("ViewWillUnload");
-        }
-
-        public override void ViewWillDisappear (bool animated)
-        {
-            base.ViewWillDisappear (animated);
-            Debug.WriteLine("ViewWillDisappear");
-        }
-
+
         public override void ViewDidUnload ()
         {
             base.ViewDidUnload ();
@@ -170,6 +158,10 @@

         public override void WillRotate (UIInterfaceOrientation toInterfaceOrientation, double duration)
         {
+            // We want to tell the scrollView what its new size will be after rotating and
+            // we have to take the toolbar size into account.  Right now our height is smaller because it is reduced by the
+            // size of the toolbar, so add the toolbar height to the current height.  The current width will need to shrink
+            // by the size of the toolbar.  Since this is a rotation, we're swapping width and height.
             var newSize = new SizeF(View.Bounds.Height + toolbarHeight, View.Bounds.Width - toolbarHeight);

             Debug.WriteLine("Before rotate {0}", scrollView.Frame);


And fix break in "show bot" from commit 9c65207

--- OpenSim/Tools/pCampBot/BotManager.cs
+++ OpenSim/Tools/pCampBot/BotManager.cs
@@ -650,7 +650,7 @@
             MainConsole.Instance.Output("Settings");

             ConsoleDisplayList statusCdl = new ConsoleDisplayList();
-            statusCdl.AddRow("Behaviours", string.Join(", ", bot.Behaviours.ConvertAll<string>(b => b.Name)));
+            statusCdl.AddRow("Behaviours", string.Join(", ", bot.Behaviours.ConvertAll<string>(b => b.Name).ToArray()));
             GridClient botClient = bot.Client;
             statusCdl.AddRow("SEND_AGENT_UPDATES", botClient.Settings.SEND_AGENT_UPDATES);


Unreachable code fix

Unreachable code fix

--- Opserver.Core/Data/Dashboard/Node.cs
+++ Opserver.Core/Data/Dashboard/Node.cs
@@ -76,7 +76,7 @@
             return HardwareType.Physical;

             // TODO: Detect network gear in a reliable way
-            return HardwareType.Unknown;
+            //return HardwareType.Unknown;
         }

         public string ManagementUrl { get; internal set; }


No longer need that bit of code now that I understand events better.

--- yafsrc/YAF.Controls/Pager.cs
+++ yafsrc/YAF.Controls/Pager.cs
@@ -103,7 +103,6 @@
 var gotoForumSuppressClick = false;

 openGotoPageClick = function(e) {{
-	gotoForumSuppressClick = true;
   return false;
 }};

@@ -116,14 +115,10 @@
 gotoForm.fadeIn( 'slow', function() {{
 	jQuery('#{0}').bind('click', openGotoPageClick);
 	jQuery(document).bind('click', function(e) {{
-		if ( !gotoForumSuppressClick )
-		{{
-			jQuery('#{0}').hide();
-			var fn = arguments.callee;
-			jQuery(document).unbind('click', fn);
-			jQuery('#{0}').unbind('click', openGotoPageClick);
-		}}
-		gotoForumSuppressClick = false;
+		jQuery('#{0}').hide();
+		var fn = arguments.callee;
+		jQuery(document).unbind('click', fn);
+		jQuery('#{0}').unbind('click', openGotoPageClick);
 	}});
   jQuery('#{1}').focus();
 }});


Remove unused constant.

Remove unused constant.

--- GitTfs/Commands/InitOptions.cs
+++ GitTfs/Commands/InitOptions.cs
@@ -9,7 +9,7 @@
     public class InitOptions
     {
         private const string default_autocrlf = "false";
-        private const string default_ignorecase = "false";
+
         public InitOptions() { GitInitAutoCrlf = default_autocrlf; }

         public OptionSet OptionSet
@@ -24,7 +24,7 @@
                         v => GitInitShared = v == null ? (object)true : (object)v },
                     { "autocrlf=", "Normalize line endings (default: " + default_autocrlf + ")",
                         v => GitInitAutoCrlf = ValidateCrlfValue(v) },
-                    { "ignorecase=", "Ignore case in file paths (default: " + default_ignorecase + ")",
+                    { "ignorecase=", "Ignore case in file paths (default: system default)",
                         v => GitInitIgnoreCase = ValidateIgnoreCaseValue(v) },
                     {"bare", "clone the TFS repository in a bare git repository", v => IsBare = v != null},
                 };


Implemented Solution.LoadProjectItem

Implemented Solution.LoadProjectItem

--- SkyEditor.Core/Projects/Solution.cs
+++ SkyEditor.Core/Projects/Solution.cs
@@ -48,9 +48,9 @@
             this.HasUnsavedChanges = true;
         }

-        protected override Task<IOnDisk> LoadProjectItem(ItemValue item)
-        {
-            throw new NotImplementedException();
+        protected override async Task<IOnDisk> LoadProjectItem(ItemValue item)
+        {
+            return await ProjectBase.OpenProjectFile<Project>(item.Filename, CurrentPluginManager);
         }

         /// <summary>


title lenght correct

title lenght correct

--- SnookerAcadWebApp/Models/Article.cs
+++ SnookerAcadWebApp/Models/Article.cs
@@ -23,7 +23,7 @@
         }

         [Required]
-        [StringLength(50)]
+        [StringLength(255)]
         public string Title { get; set; }

         [Required]


Fixed Syntax error

Fixed Syntax error

--- src/Program.cs
+++ src/Program.cs
@@ -21,7 +21,7 @@
                     DayOfYear = DateTime.Now.DayOfYear -1;
                     try
                     {
-                        new WebClient().DownloadFile("http://map2.vis.earthdata.nasa.gov/imagegen/index.php?TIME="+DateTime.Now.Year+""+DayOfYear+"&extent=-5.8232421875,49.599609375,2.6142578125,54.345703125&epsg=4326&layers=MODIS_Terra_CorrectedReflectance_TrueColor,sedac_bound&format=image/jpeg&width="+ResX+"&height=+ResY, "./Today_" + DayOfYear + ".jpg");
+                        new WebClient().DownloadFile("http://map2.vis.earthdata.nasa.gov/imagegen/index.php?TIME="+DateTime.Now.Year+""+DayOfYear+"&extent=-5.8232421875,49.599609375,2.6142578125,54.345703125&epsg=4326&layers=MODIS_Terra_CorrectedReflectance_TrueColor,sedac_bound&format=image/jpeg&width="+ResX+"&height="+ResY, "./Today_" + DayOfYear + ".jpg");
                         Console.WriteLine("Got the file!");
                         Process process = new Process();
                         // Configure the process using the StartInfo properties.


Remove empty else

Remove empty else

--- src/Program.cs
+++ src/Program.cs
@@ -236,9 +236,6 @@
                 }
                 throw error;
             }
-            else
-            {
-            }

             var nrs =
                 from nr in query.Elements("NuGetReference")


Fixed SimpleNote DeletePermanently (you can only send DELETE request for notes with deleted=true)

--> references #68

--- Source/Plugins/SimpleNotePlugin/SimpleNoteConnection.cs
+++ Source/Plugins/SimpleNotePlugin/SimpleNoteConnection.cs
@@ -158,9 +158,14 @@
 				if (remote != null)
 				{
 					if (_config.PermanentlyDeleteNotes)
+					{
+						SimpleNoteAPI.DeleteNote(web, note);
 						SimpleNoteAPI.DeleteNotePermanently(web, note);
+					}
 					else
+					{
 						SimpleNoteAPI.DeleteNote(web, note);
+					}

 					_data.AddDeletedNote(note.ID, note.LocalVersion);
 				}


Delete key doesn't send EOF

Delete key doesn't send EOF

--- Source/System.Management/Pash/Implementation/getline.cs
+++ Source/System.Management/Pash/Implementation/getline.cs
@@ -164,7 +164,7 @@
                 new Handler (ConsoleKey.DownArrow,  CmdHistoryNext),
                 new Handler (ConsoleKey.Enter,      CmdDone),
                 new Handler (ConsoleKey.Backspace,  CmdBackspace),
-                new Handler (ConsoleKey.Delete,     CmdDeleteChar),
+                new Handler (ConsoleKey.Delete,     CmdSafeDeleteChar),
                 new Handler (ConsoleKey.Tab,        CmdTabOrComplete),

                 // Emacs keys
@@ -485,13 +485,18 @@
         void CmdDeleteChar ()
         {
             // If there is no input, this behaves like EOF
-            if (text.Length == 0){
+            if (text.Length == 0)
+            {
                 done = true;
                 text = null;
-                Console.WriteLine ();
+                Console.WriteLine();
                 return;
             }
-
+            CmdSafeDeleteChar();
+        }
+
+        void CmdSafeDeleteChar()
+        {
             if (cursor == text.Length)
                 return;
             text.Remove (cursor, 1);


Fixed : FindIndexOf() in ByteProvider when byteToFind is null or Lenght = 0

--- Sources/WpfHexaEditor.Shared/Core/Bytes/ByteProvider.cs
+++ Sources/WpfHexaEditor.Shared/Core/Bytes/ByteProvider.cs
@@ -1311,6 +1311,9 @@
         /// </summary>
         public IEnumerable<long> FindIndexOf(byte[] bytesTofind, long startPosition = 0)
         {
+            //Validation
+            if (bytesTofind is null || bytesTofind.Length == 0) yield break;
+
             //start position checkup
             if (startPosition > Length) startPosition = Length;
             else if (startPosition < 0) startPosition = 0;


Make CiceroTests more robust on server

Make CiceroTests more robust on server

--- Spa/NakedObjects.Spa.Selenium.Test/tests/CiceroTests.cs
+++ Spa/NakedObjects.Spa.Selenium.Test/tests/CiceroTests.cs
@@ -819,12 +819,9 @@
             EnterCommand("show num");
             WaitForOutput("Product Number: BK-R68R-52");
             EnterCommand("sh product");
-            WaitForOutputStarting("Product Number: BK-R68R-52");
-            var actual = WaitForCss(".output").Text;
+            WaitForOutput("Product Number: BK-R68R-52\r\nProduct Model: Road-450\r\nProduct Category: Bikes\r\nProduct Subcategory: Road Bikes\r\nProduct Line: R \r\nProduct Inventory: 2 items\r\nProduct Reviews: empty");
             //Note that spacing of Road-450 and  Line: R is different to how it appears on screen!
             //Name: Road-450 Red, 52
-            var expected = "Product Number: BK-R68R-52\r\nProduct Model: Road-450\r\nProduct Category: Bikes\r\nProduct Subcategory: Road Bikes\r\nProduct Line: R \r\nProduct Inventory: 2 items\r\nProduct Reviews: empty";
-            Assert.AreEqual(expected, actual);

             //No argument
             EnterCommand("sh ");
@@ -1435,7 +1432,7 @@
             base.CleanUpTest();
         }
     }
-
+    //[TestClass]
     public class CiceroTestsChrome : CiceroTests {
         [ClassInitialize]
         public new static void InitialiseClass(TestContext context) {


Fix GLoad

Fix GLoad

--- Source/GhToSofistik/Classes/Load.cs
+++ Source/GhToSofistik/Classes/Load.cs
@@ -45,10 +45,10 @@
             id_count++;

             if (type == "G")
-                return "LC NO " + id + " TYPE P"
-                                     + " DLX " + force.X.ToString("F0")
-                                     + " DLY " + force.Y.ToString("F0")
-                                     + " DLZ " + force.Z.ToString("F0");
+                return "LC NO " + id + " TYPE P\nBEAM FROM 1 TO 999999 TYPE PXX,PYY,PZZ"
+                                     + " PA " + force.X.ToString("F0")
+                                     + " , "  + force.Y.ToString("F0")
+                                     + " , "  + force.Z.ToString("F0");
             else if (type == "P")
                 return "LC NO " + id + " TYPE L\nNODE NO " + node.id
                                      + " TYPE PP"
@@ -58,9 +58,9 @@
             else if (type == "E")
                 return "LC NO " + id + " TYPE L\nBEAM " + beam.id
                                      + " TYPE " + ((orientation == 1) ? "PXX,PYY,PZZ" : "PX,PY,PZ")
-                                     + " PA " + force.X.ToString("F0")
-                                     + ","    + force.Y.ToString("F0")
-                                     + ","    + force.Z.ToString("F0");
+                                     + " PA "   + force.X.ToString("F0")
+                                     + ","      + force.Y.ToString("F0")
+                                     + ","      + force.Z.ToString("F0");
             return "";
         }
     }


Issue 200 removed height and width in page edit mode

--- Source/Glass.Mapper.Sc/GlassHtml.cs
+++ Source/Glass.Mapper.Sc/GlassHtml.cs
@@ -672,11 +672,19 @@

             if (IsInEditingMode && isEditable)
             {
+
+
                 var url = new UrlString();
                 foreach (var pair in attrs)
                 {
                     url.Parameters.Add(pair.Key, pair.Value);
                 }
+                if (!outputHeightWidth)
+                {
+                    url.Parameters.Add("width", "-1");
+                    url.Parameters.Add("height", "-1");
+                }
+
                 return Editable(model, field, url.Query);
             }
             else


Introduce variables to avoid multiple type casting

--- Src/AutoFixture.xUnit.net/CustomizeAttributeComparer.cs
+++ Src/AutoFixture.xUnit.net/CustomizeAttributeComparer.cs
@@ -6,12 +6,15 @@
     {
         public override int Compare(CustomizeAttribute x, CustomizeAttribute y)
         {
-            if (x is FrozenAttribute && !(y is FrozenAttribute))
+            var xfrozen = x is FrozenAttribute;
+            var yfrozen = y is FrozenAttribute;
+
+            if (xfrozen && !yfrozen)
             {
                 return 1;
             }

-            if (y is FrozenAttribute && !(x is FrozenAttribute))
+            if (yfrozen && !xfrozen)
             {
                 return -1;
             }


Fix WPA build (closes issue #43)

Fix WPA build (closes issue #43)

--- Source/Internal/fsTypeExtensions.cs
+++ Source/Internal/fsTypeExtensions.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using FullSerializer.Internal;

 namespace FullSerializer {
     public static class fsTypeExtensions {


Avoid ArgumentException when deleting users without email or phone number

--- StackRedis.AspNet.Identity/RedisUserStore.IUserStore.cs
+++ StackRedis.AspNet.Identity/RedisUserStore.IUserStore.cs
@@ -94,8 +94,14 @@
             // Sets
             transaction.KeyDeleteAsync(UserLoginSetKey);
             transaction.KeyDeleteAsync(UserClaimSetKey);
-            transaction.SetRemoveAsync(UserConfirmedEmailSetKey, user.Email);
-            transaction.SetRemoveAsync(UserConfirmedPhoneNumberSetKey, user.PhoneNumber);
+            if (null != user.Email)
+            {
+                transaction.SetRemoveAsync(UserConfirmedEmailSetKey, user.Email);
+            }
+            if (null != user.PhoneNumber)
+            {
+                transaction.SetRemoveAsync(UserConfirmedPhoneNumberSetKey, user.PhoneNumber);
+            }
             transaction.SetRemoveAsync(UserClaimSetKey, userId);
             transaction.SetRemoveAsync(UserLockSetKey, userId);


refactor.

refactor.

--- MineField/MineSweeperTest.cs
+++ MineField/MineSweeperTest.cs
@@ -59,26 +59,34 @@
             var lines = input.Split(new [] {'\n'});

             int[] header = lines[0].Split(new[] {' '}).Select(int.Parse).ToArray();
-            var dx = header[0];
-            var dy = header[1];
+            var fieldX = header[0];
+            var fieldY = header[1];

-            char[,] grid = new char[dx,dy];
-            for (var i = 0; i < dx; ++i)
+            char[,] grid = new char[fieldX,fieldY];
+            for (var i = 0; i < fieldX; ++i)
             {
-                for (var j = 0; j < dy; ++j)
+                for (var j = 0; j < fieldY; ++j)
                 {
                     grid[i, j] = lines[i + 1][j];
                 }
             }
-
-

             return new MineField(grid);
         }

         public string Display()
         {
-            return m_HasMine[0,0] != '*' ? "0\n" : "*\n";
+            string result = "";
+            for (var i = 0; i < m_HasMine.GetLength(0); ++i)
+            {
+                for (var j = 0; j < m_HasMine.GetLength(1); ++j)
+                {
+                    result += m_HasMine[i, j] != '*' ? '0' : '*';
+                }
+                result += "\n";
+            }
+
+            return result;
         }
     }
 }


removed unused method

removed unused method

--- TIKSN.Core/Finance/ForeignExchange/Bank/BankOfCanada.cs
+++ TIKSN.Core/Finance/ForeignExchange/Bank/BankOfCanada.cs
@@ -131,13 +131,6 @@
             }
         }

-        private static DateTimeOffset ParseDateExactForBankTimeZone(string dateTime)
-        {
-            var parsedDateLocal = DateTimeOffset.ParseExact(dateTime, "yyyy-MM-dd", CultureInfo.InvariantCulture);
-            var tzOffset = bankTimeZone.GetUtcOffset(parsedDateLocal.DateTime);
-            return new DateTimeOffset(parsedDateLocal.DateTime, tzOffset);
-        }
-
         private async Task<List<Tuple<string, DateTime, decimal>>> FetchRawDataAsync(string restUrl, CancellationToken cancellationToken)
         {
             using (var httpClient = new HttpClient())


-Fixed App Certificate by removing anon type

--- Src/Newtonsoft.Json/Utilities/ReflectionUtils.cs
+++ Src/Newtonsoft.Json/Utilities/ReflectionUtils.cs
@@ -657,23 +657,26 @@
       // update: I think this is fixed in .NET 3.5 SP1 - leave this in for now...
       List<MemberInfo> distinctMembers = new List<MemberInfo>(targetMembers.Count);

-      var groupedMembers = targetMembers.GroupBy(m => m.Name).Select(g => new { Count = g.Count(), Members = g.Cast<MemberInfo>() });
-      foreach (var groupedMember in groupedMembers)
-      {
-        if (groupedMember.Count == 1)
+      foreach (var groupedMember in targetMembers.GroupBy(m => m.Name))
+      {
+        int count = groupedMember.Count();
+        IList<MemberInfo> members = groupedMember.ToList();
+
+        if (count == 1)
         {
-          distinctMembers.Add(groupedMember.Members.First());
+          distinctMembers.Add(members.First());
         }
         else
         {
-          var members = groupedMember.Members.Where(m => !IsOverridenGenericMember(m, bindingAttr) || m.Name == "Item");
-
-          distinctMembers.AddRange(members);
+          var resolvedMembers = members.Where(m => !IsOverridenGenericMember(m, bindingAttr) || m.Name == "Item");
+
+          distinctMembers.AddRange(resolvedMembers);
         }
       }

       return distinctMembers;
     }
+

     private static bool IsOverridenGenericMember(MemberInfo memberInfo, BindingFlags bindingAttr)
     {


if then additional Parser test

if then additional Parser test

--- Src/RubySharp.Core.Tests/Compiler/ParserTests.cs
+++ Src/RubySharp.Core.Tests/Compiler/ParserTests.cs
@@ -251,6 +251,19 @@
         }

         [TestMethod]
+        public void ParseSimpleIfCommandWithThenOneLineAndOtherLine()
+        {
+            Parser parser = new Parser("if 1 then a=1\nb=2 end");
+            var expected = new IfCommand(new ConstantExpression(1), new CompositeCommand(new ICommand[] { new AssignCommand("a", new ConstantExpression(1)), new AssignCommand("b", new ConstantExpression(2)) }));
+            var result = parser.ParseCommand();
+
+            Assert.IsNotNull(result);
+            Assert.AreEqual(expected, result);
+
+            Assert.IsNull(parser.ParseCommand());
+        }
+
+        [TestMethod]
         public void ParseIfCommandWithCompositeThenCommand()
         {
             Parser parser = new Parser("if 1\n a=1\n b=2\nend");


Exclude mscorlib assembly from stacktrace

--- StackExchange.Profiling/MiniProfiler.Settings.cs
+++ StackExchange.Profiling/MiniProfiler.Settings.cs
@@ -107,6 +107,7 @@
                     "System.Data.Linq",
                     "System.Web",
                     "System.Web.Mvc",
+                    "mscorlib",
                 };

                 // for normal usage, this will return a System.Diagnostics.Stopwatch to collect times - unit tests can explicitly set how much time elapses


Added `ParseLiteral()`.

Added `ParseLiteral()`.

--- Pegasus/Compiler/GenerateCodePass.cs
+++ Pegasus/Compiler/GenerateCodePass.cs
@@ -75,6 +75,28 @@
                 this.code.WriteLine("}");

                 base.WalkGrammar(grammar);
+
+                this.code.WriteLineNoTabs("");
+                this.code.WriteLine("private ParseResult<string> ParseLiteral(string literal, ref Cursor cursor)");
+                this.code.WriteLine("{");
+                this.code.Indent++;
+                this.code.WriteLine("if (cursor.Location + literal.Length <= cursor.Subject.Length)");
+                this.code.WriteLine("{");
+                this.code.Indent++;
+                this.code.WriteLine("var substr = cursor.Subject.Substring(cursor.Location, literal.Length);");
+                this.code.WriteLine("if (substr == literal)");
+                this.code.WriteLine("{");
+                this.code.Indent++;
+                this.code.WriteLine("var result = new ParseResult<string>(substr.Length, substr);");
+                this.code.WriteLine("cursor = cursor.Advance(result);");
+                this.code.WriteLine("return result;");
+                this.code.Indent--;
+                this.code.WriteLine("}");
+                this.code.Indent--;
+                this.code.WriteLine("}");
+                this.code.WriteLine("return null;");
+                this.code.Indent--;
+                this.code.WriteLine("}");

                 this.code.Indent--;
                 this.code.WriteLine("}");


Type fixed.

Type fixed.

--- StackExchange.Redis.DataTypes.Samples/Program.cs
+++ StackExchange.Redis.DataTypes.Samples/Program.cs
@@ -12,7 +12,7 @@
 	{
 		static void Main(string[] args)
 		{
-			// Create connectionMultiplexer. Creating connectionMultiplexer is costy so it is recommended to store and reuse it.
+			// Create connectionMultiplexer. Creating connectionMultiplexer is costly so it is recommended to store and reuse it.
 			var connectionMultiplexer = ConnectionMultiplexer.Connect("localhost,abortConnect=false"); // replace localhost with your redis db address

 			// You can either create a RedisType by using RedisTypeFactory or by instantiating the desired type directly.


Fix project name in assembly info

Fix project name in assembly info

--- TOTD.Mailer.Templates/Properties/AssemblyInfo.cs
+++ TOTD.Mailer.Templates/Properties/AssemblyInfo.cs
@@ -4,7 +4,7 @@
 // General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
-[assembly: AssemblyTitle("TOTD.Mailer.Html")]
+[assembly: AssemblyTitle("TOTD.Mailer.Templates")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyCulture("")]


Fix test

Fix test

--- Test/NOF2.Selenium.Test/DevelopmentStoryTests.cs
+++ Test/NOF2.Selenium.Test/DevelopmentStoryTests.cs
@@ -544,7 +544,7 @@
             dialog.GetTextField("Special Offer Id").Enter("15");
             var rnd = new Random().Next(720, 999);
             dialog.GetTextField("Product Id").Enter(rnd.ToString());
-            var sop = dialog.ClickOKToViewObject().AssertTitleIs($"SpecialOfferProduct: 10-{rnd}");
+            var sop = dialog.ClickOKToViewObject().AssertTitleIs($"SpecialOfferProduct: 15-{rnd}");
             var prodTitle = sop.GetProperty("Product").GetReference().GetTitle();
             AccessInstanceWithTitle("SpecialOffer--15", "Half-Price Pedal Sale")
                 .OpenActions().GetActionWithoutDialog("Products Covered").ClickToViewList()


fixed a bug where null dial in information would make query on the region property always fail (#40)

Thanks for the null check!

--- UCWASDK/UCWASDK/Models/PhoneDialInInformation.cs
+++ UCWASDK/UCWASDK/Models/PhoneDialInInformation.cs
@@ -35,7 +35,7 @@
         internal InternalEmbedded Embedded { get; set; }

         [JsonIgnore]
-        public DialInRegion[] DialInRegion { get { return Embedded.dialInRegion; } }
+        public DialInRegion[] DialInRegion { get { return Embedded?.dialInRegion; } }

         internal class InternalEmbedded
         {


more review stuff

more review stuff


roundstart update based on gamemode and initial alert level system


Added --offlinemode command line argument


fixing typos in comments

fixing typos in comments

--- src/Features/Core/Portable/QualifyMemberAccess/AbstractQualifyMemberAccessDiagnosticAnalyzer.cs
+++ src/Features/Core/Portable/QualifyMemberAccess/AbstractQualifyMemberAccessDiagnosticAnalyzer.cs
@@ -38,10 +38,10 @@
         protected abstract string GetLanguageName();

         /// <summary>
-        /// Reports on whether the specified member is suitable for qualification. Some member access expressions cannot be qualififed;
+        /// Reports on whether the specified member is suitable for qualification. Some member access expressions cannot be qualified;
         /// for instance if they begin with <c>base.</c>, <c>MyBase.</c>, or <c>MyClass.</c>.
         /// </summary>
-        /// <returns>True if the member access can be qualfied; otherwise, False.</returns>
+        /// <returns>True if the member access can be qualified; otherwise, False.</returns>
         protected abstract bool CanMemberAccessBeQualified(SyntaxNode node);

         protected abstract bool IsAlreadyQualifiedMemberAccess(SyntaxNode node);


Added default diagnostics config

Added default diagnostics config

--- src/Libraries/Thinktecture.IdentityServer.Core.Repositories/ConfigurationDatabaseInitializer.cs
+++ src/Libraries/Thinktecture.IdentityServer.Core.Repositories/ConfigurationDatabaseInitializer.cs
@@ -20,6 +20,7 @@
             context.WSTrust.Add(CreateDefaultWSTrustConfiguration());
             context.FederationMetadata.Add(CreateDefaultFederationMetadataConfiguration());
             context.OAuth2.Add(CreateDefaultOAuth2Configuration());
+            context.Diagnostics.Add(CreateDefaultDiagnosticsConfiguration());

             // test data
             CreateTestRelyingParties().ForEach(rp => context.RelyingParties.Add(rp));
@@ -93,6 +94,14 @@
                 Enabled = true
             };
         }
+
+        private DiagnosticsConfiguration CreateDefaultDiagnosticsConfiguration()
+        {
+            return new DiagnosticsConfiguration
+            {
+                EnableFederationMessageTracing = false
+            };
+        }
         #endregion

         #region Test Data


deal with wrongly null terminated strings in custom attributes blob

--- Mono.Cecil/AssemblyReader.cs
+++ Mono.Cecil/AssemblyReader.cs
@@ -2920,7 +2920,12 @@
 			}

 			var length = (int) ReadCompressedUInt32 ();
-			var @string = Encoding.UTF8.GetString (this.buffer, position, length);
+			if (length == 0)
+				return string.Empty;
+
+			var @string = Encoding.UTF8.GetString (buffer, position,
+				buffer [position + length - 1] == 0 ? length - 1 : length);
+
 			position += length;
 			return @string;
 		}


Propagate changes from Value to the underlying slider in FloatElement. Fixes #3601.

--- MonoTouch.Dialog/Elements.cs
+++ MonoTouch.Dialog/Elements.cs
@@ -493,6 +493,8 @@
 				slider.ValueChanged += delegate {
 					Value = slider.Value;
 				};
+			} else {
+				slider.Value = Value;
 			}

 			cell.ContentView.AddSubview (slider);


Implement Peer.GetMachineId()

Implement Peer.GetMachineId()

--- src/Connection.cs
+++ src/Connection.cs
@@ -418,10 +418,20 @@
 			//TODO: Ping and Introspect need to be abstracted and moved somewhere more appropriate once message filter infrastructure is complete

 			//FIXME: these special cases are slightly broken for the case where the member but not the interface is specified in the message
-			if (method_call.Interface == "org.freedesktop.DBus.Peer" && method_call.Member == "Ping") {
-				Message reply = MessageHelper.ConstructReply (method_call);
-				Send (reply);
-				return;
+			if (method_call.Interface == "org.freedesktop.DBus.Peer") {
+				switch (method_call.Member) {
+					case "Ping":
+						Send (MessageHelper.ConstructReply (method_call));
+						return;
+					case "GetMachineId":
+						if (MachineId != UUID.Zero) {
+							Send (MessageHelper.ConstructReply (method_call, MachineId.ToString ()));
+							return;
+						} else {
+							// Might want to send back an error here?
+						}
+						break;
+				}
 			}

 			if (method_call.Interface == "org.freedesktop.DBus.Introspectable" && method_call.Member == "Introspect") {
@@ -540,6 +550,51 @@
 		{
 		}

+		// Maybe we should use XDG/basedir or check an env var for this?
+		const string machineUuidFilename = @"/var/lib/dbus/machine-id";
+		static UUID? machineId = null;
+		private static object idReadLock = new object ();
+		static UUID MachineId
+		{
+			get {
+				lock (idReadLock) {
+					if (machineId != null)
+						return (UUID)machineId;
+					try {
+						machineId = ReadMachineId (machineUuidFilename);
+					} catch {
+						machineId = UUID.Zero;
+					}
+					return (UUID)machineId;
+				}
+			}
+		}
+
+		static UUID ReadMachineId (string fname)
+		{
+			using (FileStream fs = File.OpenRead (fname)) {
+				// Length is typically 33 (32 for the UUID, plus a linefeed)
+				//if (fs.Length < 32)
+				//	return UUID.Zero;
+
+				byte[] data = new byte[32];
+
+				int pos = 0;
+				while (pos < data.Length) {
+					int read = fs.Read (data, pos, data.Length - pos);
+					if (read == 0)
+						break;
+					pos += read;
+				}
+
+				if (pos != data.Length)
+					//return UUID.Zero;
+					throw new Exception ("Insufficient data while reading GUID string");
+
+				return UUID.Parse (System.Text.Encoding.ASCII.GetString (data));
+			}
+		}
+
 		static Connection ()
 		{
 			if (BitConverter.IsLittleEndian)


更新Demo，避免在某些特殊情况下MessageHandler日志记录过程异常

更新Demo，避免在某些特殊情况下MessageHandler日志记录过程异常

--- src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Message.cs
+++ src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Message.cs
@@ -29,6 +29,8 @@

 ----------------------------------------------------------------*/

+using Senparc.CO2NET.Extensions;
+using Senparc.CO2NET.Trace;
 using Senparc.NeuChar.Entities;
 using Senparc.Weixin.WxOpen.Entities;

@@ -68,8 +70,6 @@
         }

-
-
         #endregion

     }


pedigree scrolling offset fix

pedigree scrolling offset fix

--- ARKBreedingStats/Pedigree/PedigreeControl.cs
+++ ARKBreedingStats/Pedigree/PedigreeControl.cs
@@ -294,12 +294,13 @@
             lbPedigreeEmpty.Visible = false;

             // scroll offsets
+            splitContainer1.Panel2.AutoScrollPosition = Point.Empty; // if not reset there are still offset issues sometimes. Maybe just remove all the offset handling when resetting anyway?
             int autoScrollPositionX = splitContainer1.Panel2.AutoScrollPosition.X;
             int autoScrollPositionY = splitContainer1.Panel2.AutoScrollPosition.Y;

             if (_pedigreeViewMode == PedigreeViewMode.Classic)
             {
-                PedigreeCreation.CreateDetailedView(_selectedCreature, _lines, _pedigreeControls, AutoScrollPosition.X, AutoScrollPosition.Y, _enabledColorRegions);
+                PedigreeCreation.CreateDetailedView(_selectedCreature, _lines, _pedigreeControls, autoScrollPositionX, autoScrollPositionY, _enabledColorRegions);
                 _yBottomOfPedigree = 170;
             }
             else


By default return a text inputtype

By default return a text inputtype

--- AngleSharp/DOM/Factories/InputTypeFactory.cs
+++ AngleSharp/DOM/Factories/InputTypeFactory.cs
@@ -41,7 +41,7 @@
         /// Returns a InputType provider for the element.
         /// </summary>
         /// <param name="type">The type of the input element.</param>
-        /// <returns>The InputType provider or null, if the type is unknown.</returns>
+        /// <returns>The InputType provider or text, if the type is unknown.</returns>
         public static BaseInputType Create(String type)
         {
             BaseInputType instance;
@@ -49,7 +49,7 @@
             if (values.TryGetValue(type, out instance))
                 return instance;

-            return null;
+            return values[Keywords.Text];
         }
     }
 }


make key input larger

make key input larger

--- source/WebHost/Areas/Admin/Views/Key/SymmetricKey.cshtml
+++ source/WebHost/Areas/Admin/Views/Key/SymmetricKey.cshtml
@@ -18,7 +18,7 @@

         Value (base64)
-        <input id="value" class="input-xlarge" data-bind="value: value, valueUpdate: 'keyup', enable: isNew" />
+        <input id="value" class="input-xxlarge" data-bind="value: value, valueUpdate: 'keyup', enable: isNew" />
         <button type="button" class="btn" data-bind="click: createKey, enable: isNew">create</button>


Fix crash when cave is the "first" level generated.

--- Trunk/GameEngine/Level/Generator/SimpleCaveGenerator.cs
+++ Trunk/GameEngine/Level/Generator/SimpleCaveGenerator.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using libtcodWrapper;
 using Magecrawl.GameEngine.Interfaces;
 using Magecrawl.Utilities;
@@ -97,7 +98,9 @@

             GenerateUpDownStairs(map, incommingStairs);

-            GenerateMonstersAndChests(map, incommingStairs.Position);
+            Point stairsUpPosition = map.MapObjects.Where(x => x.Type == MapObjectType.StairsUp).First().Position;
+
+            GenerateMonstersAndChests(map, stairsUpPosition);

             return map;
         }


added property

added property

--- Pollerino/Pollerino/Models/Option.cs
+++ Pollerino/Pollerino/Models/Option.cs
@@ -9,6 +9,8 @@
     {
         public int OptionId { get; set; }
         public string OptionText { get; set; }
+        public bool WasChecked { get; set; }
+
         public virtual IEnumerable<Vote> Votes{get; set;}

         public int PollId { get; set; }


Add one unit test

Add one unit test


Tracking the decorator issue.

Tracking the decorator issue.

--- test/Autofac.Test/Features/LightweightAdapters/LightweightAdapterRegistrationExtensionsTests.cs
+++ test/Autofac.Test/Features/LightweightAdapters/LightweightAdapterRegistrationExtensionsTests.cs
@@ -96,7 +96,7 @@
                 _container = builder.Build();
             }

-            [Fact(Skip = "Issue #529")]
+            [Fact(Skip = "Issue #529 => #880")]
             public void InstanceWithDefaultImplementationIsDecorated()
             {
                 var decorator = _container.Resolve<IService>();


Added support for loading non-convex mesh colliders (#183)

--- UnityGLTF/Assets/UnityGLTF/Scripts/GLTFSceneImporter.cs
+++ UnityGLTF/Assets/UnityGLTF/Scripts/GLTFSceneImporter.cs
@@ -29,7 +29,8 @@
         {
             None,
             Box,
-            Mesh
+            Mesh,
+            MeshConvex
         }

         /// <summary>
@@ -1000,11 +1001,14 @@
                         boxCollider.center = curMesh.bounds.center;
                         boxCollider.size = curMesh.bounds.size;
                         break;
-
                     case ColliderType.Mesh:
                         var meshCollider = primitiveObj.AddComponent<MeshCollider>();
                         meshCollider.sharedMesh = curMesh;
-                        meshCollider.convex = true;
+                        break;
+                    case ColliderType.MeshConvex:
+                        var meshConvexCollider = primitiveObj.AddComponent<MeshCollider>();
+                        meshConvexCollider.sharedMesh = curMesh;
+                        meshConvexCollider.convex = true;
                         break;
                 }


# UI Improvement for PSNP: - Edit Regional PSNP Plan Detail view

--- Web/Areas/PSNP/Views/RegionalPSNPPlanDetail/Edit.cshtml
+++ Web/Areas/PSNP/Views/RegionalPSNPPlanDetail/Edit.cshtml
@@ -8,42 +8,43 @@

 @{
     ViewBag.Title = Html.Translate("Index");
-    Layout = "~/Views/Shared/_MainLayout.cshtml";
+    Layout = "~/Views/Shared/NewTheme _MainLayout.cshtml";
+    //Layout = "~/Views/Shared/_MainLayout.cshtml";
+    ViewBag.PageTitle = "Edit Regional PSNP Plan Detail";
+    ViewBag.PageTitleDescription = "";
     var duration = 0;
     var RegionalPSNPPlanID = 0;
 }
-@section LeftBar
-{
-    @Html.Partial("_PSNPDetailLeftBar")
-
+@*@section LeftBar
+    {
+        @Html.Partial("_PSNPDetailLeftBar")
+
+    }*@
+@section Toolbar
+ {
+    @*@if(ViewBag.plan_user == ViewBag.current_user )
+        {
+    *@
+    @*
+
+    *@
+    @*}*@
+     @Html.Translate("Back to List")
+
 }
- @section Toolbar
- {
-     @*@if(ViewBag.plan_user == ViewBag.current_user )
-     {
-         *@
-
-
-     @*}*@
-
-
-}
-
+

 @if (ViewBag.psnpPlan != null)
 {
     duration = ViewBag.PsnpPlan.Duration;
     RegionalPSNPPlanID = ViewBag.PsnpPlan.RegionalPSNPPlanID;
-

-

-        @Html.Translate("Edit PSNP Plan"):
-        @ViewBag.PsnpPlan.Year
-         : Duration of Assistance [@ViewBag.PsnpPlan.Duration month]
-
-

-
-

 }
+else
+{
+duration=0;
+RegionalPSNPPlanID=0;
+}
+

-@(Html.Kendo().Grid<Cats.Models.PSNP.PSNPPlanDetailView>()
+
+

+

+

+
+             @Html.Translate("Edit PSNP Plan"): @ViewBag.PsnpPlan.Year
+              Duration of Assistance [@ViewBag.PsnpPlan.Duration month]
+

+        @*

+
+
+
*@
+

+             @Html.Translate("Save")
+             @Html.Translate("Cancel")
+             @Html.Translate("Reload")
+
+

+                <button type="button" class="btn green dropdown-toggle" data-toggle="dropdown">
+                     @Html.Translate("Reports")
+                </button>
+

+
@Html.Translate("Annual Plan")

+

+

+
+
+

+

+

+        @(Html.Kendo().Grid<Cats.Models.PSNP.PSNPPlanDetailView>()
     .Name("grid")
     .Columns(columns =>
     {
@@ -67,8 +98,8 @@
         columns.Bound(p => p.BeneficiaryCount).HtmlAttributes(new { align = "Right" }).Title(Html.Translate("No of Beneficiary"));
         columns.ForeignKey(p => p.SartingMonth, (IEnumerable)ViewData["Month"], "Id", "Name").Title(Html.Translate("Starting Month"));
         columns.Template(@<text></text>).ClientTemplate("<input type='checkbox' #= Contingency ? checked='checked':'' # class='chkbx' />").Title("Contingency");
-
-
+
+
         columns.Bound(p => p.FoodRatio).HtmlAttributes(new { align = "Right", @class = "FoodRatio" }).Title(Html.Translate("Food Ratio"));
         columns.Template(c => { }).Title("Cash Ratio").ClientTemplate("#=calculateCashRatio(data)# ").HtmlAttributes(new { align = "Right", @class = "CashRatio #=getRowStyle(data)#" });
         //  columns.Bound(p => p.CashRatio).HtmlAttributes(new { align = "Right", @class = "CashRatio #=getRowStyle(data)#" });
@@ -76,51 +107,55 @@

     })
-        .DataSource(dataSource => dataSource
-
-            .Ajax()
-            .Batch(true)
-            .Model(model => model.Id(p => p.RegionalPSNPPlanDetailID))
-            .Read(read => read.Action("GetListAjax", "RegionalPSNPPlanDetail").Data("filterInfo"))
-            .Create(update => update.Action("EditAjax", "RegionalPSNPPlanDetail"))
-            .Update(update => update.Action("EditAjax", "RegionalPSNPPlanDetail"))
-            .Destroy(update => update.Action("DeleteAjax", "RegionalPSNPPlanDetail"))
-            .Model(model =>
-            {
-                model.Field(p => p.ZoneName).Editable(false);
-                model.Field(p => p.WoredaName).Editable(false);
-                model.Field(p => p.CashRatio).Editable(false);
-                //model.Field(p => p.FDPName).Editable(false);
-                //if(ViewBag.plan_user != ViewBag.current_user )
-                //{
-                model.Field(p => p.BeneficiaryCount).Editable(true);
-                model.Field(p => p.StartingMonthName).Editable(true);
-                model.Field(p => p.FoodRatio).Editable(true);
-                //}
-            })
-             .Group(group =>
-             {
-                 group.Add(m => m.RegionName);
-                 group.Add(m => m.ZoneName);
-             })
-            )
-
-        .HtmlAttributes(new { style = "width:100%; height:450px;" })
-        .Editable(editable => editable.Mode(GridEditMode.InCell))
-            .Selectable(selectable => selectable
-                //.Mode(GridSelectionMode.Single)
-                    .Type(GridSelectionType.Cell)
-                    )
-       .Events(events => events.DataBound("onDataBound"))
-        .Sortable()
-        .Scrollable()
-        .Filterable()
-       .Groupable()
-       .Navigatable()
-
-
-    )
-
+
+
+        </script>


fix null reference exception

fix null reference exception

this happens when output format is geojson and address was not found

--- WebAPI.API/Commands/Spatial/CreateFeatureFromCommand.cs
+++ WebAPI.API/Commands/Spatial/CreateFeatureFromCommand.cs
@@ -1,22 +1,21 @@
-using System.Collections.Generic;
-using System.Linq;
-using GeoJSON.Net.Feature;
-using GeoJSON.Net.Geometry;
-using WebAPI.Common.Abstractions;
-using WebAPI.Domain;
-using WebAPI.Domain.ApiResponses;
-
-namespace WebAPI.API.Commands.Spatial
+namespace WebAPI.API.Commands.Spatial
 {
+    using System.Collections.Generic;
+    using System.Linq;
+    using Common.Abstractions;
+    using Domain;
+    using Domain.ApiResponses;
+    using GeoJSON.Net.Feature;
+    using GeoJSON.Net.Geometry;

     public class CreateFeatureFromCommand : Command<ResultContainer<Feature>>
     {
-        public object Container { get; set; }
-
         public CreateFeatureFromCommand(object container)
         {
             Container = container;
         }
+
+        public object Container { get; set; }

         public override string ToString()
         {
@@ -27,8 +26,8 @@
         {
             IGeometryObject geometry = null;
             Dictionary<string, object> attributes = null;
-            string message = null;
-            var status = 0;
+            string message;
+            int status;

             if (Container is ResultContainer<GeocodeAddressResult>)
             {
@@ -37,11 +36,11 @@
                 status = container.Status;

                 var result = container.Result;
-                attributes = GetProperties(result);

-                if (result.Location != null)
+                if (result?.Location != null)
                 {
                     geometry = new Point(new GeographicPosition(result.Location.Y, result.Location.X));
+                    attributes = GetProperties(result);
                 }
             }
             else if (Container is ResultContainer<RouteMilepostResult>)
@@ -51,11 +50,11 @@
                 status = container.Status;

                 var result = container.Result;
-                attributes = GetProperties(result);

-                if (result.Location != null)
+                if (result?.Location != null)
                 {
                     geometry = new Point(new GeographicPosition(result.Location.Y, result.Location.X));
+                    attributes = GetProperties(result);
                 }
             }
             else
@@ -64,25 +63,36 @@
                 return;
             }

+            if (geometry == null && attributes == null)
+            {
+                Result = new ResultContainer<Feature>
+                {
+                    Status = status,
+                    Message = message
+                };
+
+                return;
+            }
+
             var feature = new Feature(geometry, attributes);

             var geoJsonContainer = new ResultContainer<Feature>
-                {
-                    Result = feature,
-                    Status = status,
-                    Message = message
-                };
+            {
+                Result = feature,
+                Status = status,
+                Message = message
+            };

             Result = geoJsonContainer;
         }

         public static Dictionary<string, object> GetProperties<T>(T obj)
-        {
+        {
             var properties = typeof(T).GetProperties();

             var dictionary = properties.ToDictionary(prop => prop.Name, prop => prop.GetValue(obj, null));
-
-            return dictionary.Where(x => x.Value != null).ToDictionary(x=>x.Key, x=>x.Value);
+
+            return dictionary.Where(x => x.Value != null).ToDictionary(x => x.Key, x => x.Value);
         }
     }
-}+}


Added placeholder to the phone number field in edit profile form.

--- WomenMarket.App/Views/Shared/_EditProfilePartial.cshtml
+++ WomenMarket.App/Views/Shared/_EditProfilePartial.cshtml
@@ -44,7 +44,7 @@

             @Html.LabelFor(m => m.PhoneNumber, new { @class = "col-md-2 control-label" })

-                @Html.EditorFor(m => m.PhoneNumber, new { htmlAttributes = new { @class = "form-control" } })
+                @Html.EditorFor(m => m.PhoneNumber, new { htmlAttributes = new { @class = "form-control", placeholder = "0888610285" } })
                 @Html.ValidationMessageFor(model => model.PhoneNumber, "", new { @class = "text-danger" })


Fix typo

Fix typo

--- XFGoogleMapSample/XFGoogleMapSample/Variables_sample.cs
+++ XFGoogleMapSample/XFGoogleMapSample/Variables_sample.cs
@@ -11,6 +11,6 @@
 		public const string GOOGLE_MAPS_IOS_API_KEY = "your_google_maps_sdk_for_ios_api_key";

 		// https://msdn.microsoft.com/windows/uwp/maps-and-location/authentication-key
-		public const string BING_MAPS_UWP_API_KEY = "your_bing_maps_apikey");
+		public const string BING_MAPS_UWP_API_KEY = "your_bing_maps_apikey";
 	}
 }


Don't display world info if they haven't been calculated.

--- src/TabInfo.cs
+++ src/TabInfo.cs
@@ -98,10 +98,23 @@
              */
              var stringBuilder = new StringBuilder();

+            if (_gameData.WorldData.WorldCharacteristics == null || _gameData.WorldData.WorldCharacteristics.Count == 0)
+            {
+                Log.Error("[PrepareLanding] TabInfo.BuildWorldRecords: No Info");
+                return "No info";
+            }
+
+
             foreach (var characteristicData in _gameData.WorldData.WorldCharacteristics)
             {
                 var characteristicName = characteristicData.CharacteristicName;
                 stringBuilder.AppendLine(characteristicName);
+
+                if (characteristicData.WorldTilesCharacteristics.Count == 0)
+                {
+                    stringBuilder.AppendLine("\tNo Info [DisableWorldData enabled]");
+                    continue;
+                }

                 var lowestCharacteristicKvp = characteristicData.WorldTilesCharacteristics.First();
                 var vectorLongLat = Find.WorldGrid.LongLatOf(lowestCharacteristicKvp.Key);


Help text modified.

Help text modified.

--- Pushbullet.UI.Console/CLArguments.cs
+++ Pushbullet.UI.Console/CLArguments.cs
@@ -16,7 +16,7 @@

 		[Option('p', "type", HelpText =
-"Type of the push. Allowed values: note|link|address|list|file. When not specified, will be autodetected.")]
+"Type of the push. Allowed values: note, link, address, list, file. When not specified, will be autodetected.")]
 		public string Type { get; set; }