Fix not checking for empty name when creating or duplicating a mod

--- KAGTools/ViewModels/ModsViewModel.cs
+++ KAGTools/ViewModels/ModsViewModel.cs
@@ -114,7 +114,7 @@

         private void CreateMod(string name, Mod from = null)
         {
-            if (!FileHelper.IsValidPath(name))
+            if (string.IsNullOrWhiteSpace(name) || !FileHelper.IsValidPath(name))
             {
                 MessageBox.Show("Invalid name!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                 return;


added save/update dependent impl. to dep. controller

--- src/payroll/Controllers/DependentController.cs
+++ src/payroll/Controllers/DependentController.cs
@@ -51,12 +51,57 @@
         }

+
+        [HttpPost]
+        [ValidateAntiForgeryToken]
+        public async Task<ActionResult> SaveDependent(
+            [Bind("FirstName", "LastName", "Relationship")] Dependent dependent)
+        {
+            try
+            {
+                if (ModelState.IsValid)
+                {
+                    EmployeeDataContext.Dependents.Add(dependent);
+                    await EmployeeDataContext.SaveChangesAsync();
+                    return RedirectToAction("Dependents", "Employee",
+                        new { id = dependent.Employee.EmployeeID });
+                }
+            }
+            catch (DbUpdateException)
+            {
+                ModelState.AddModelError(string.Empty, "Could not add new dependent.");
+            }
+
+            return View(dependent);
+        }
+
+
         public async Task<ActionResult> EditDependent(int id)
         {
             Dependent dependent = await GetDependentAsync(id);
             if (dependent == null)
             {
                 return HttpNotFound();
+            }
+            return View(dependent);
+        }
+
+
+        public async Task<ActionResult> UpdateDependent(int id,
+            [Bind("FirstName", "LastName", "Relationship")] Dependent dependent)
+        {
+            try
+            {
+                dependent.DependentID = id;
+                EmployeeDataContext.Dependents.Attach(dependent);
+                EmployeeDataContext.Entry(dependent).State = EntityState.Modified;
+                await EmployeeDataContext.SaveChangesAsync();
+                return RedirectToAction("Dependents", "Employee",
+                    new { id = dependent.Employee.EmployeeID });
+            }
+            catch (DbUpdateException)
+            {
+                ModelState.AddModelError(string.Empty, "Failed to save dependent info updates.");
             }
             return View(dependent);
         }


Completed logging support

Completed logging support

--- LoggingModule/TraceDataSerializer.cs
+++ LoggingModule/TraceDataSerializer.cs
@@ -1,16 +1,14 @@
-using Erwine.Leonard.T.LoggingModule.ExtensionMethods;
 using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Data.SqlClient;
-using System.IO;
 using System.Linq;
 using System.Runtime.Serialization;
 using System.Text;
-using System.Text.RegularExpressions;
 using System.Xml;
 using System.Xml.Linq;
 using System.Xml.Serialization;
+using Erwine.Leonard.T.LoggingModule.ExtensionMethods;

 namespace Erwine.Leonard.T.LoggingModule
 {


Added Helper function for running tasks

Added Helper function for running tasks

--- Manager/Manager/ManagerController.cs
+++ Manager/Manager/ManagerController.cs
@@ -41,13 +41,10 @@
 			var msg = $"{WhoAmI(Request)} : New job received from client ( jobId, jobName ) : ( {jobQueueItem.JobId}, {jobQueueItem.Name} )";
 			this.Log().InfoWithLineNumber(msg);

-
-			Task.Run(() =>
+			return TaskRunnerHelper(() =>
 			{
 				_jobManager.AssignJobToWorkerNodes();
 			});
-
-			return Ok(jobQueueItem.JobId);
 		}

 		[HttpDelete, Route(ManagerRouteConstants.CancelJob)]
@@ -99,7 +96,7 @@
 			var isValidRequest = _validator.ValidateUri(workerNodeUri);
 			if (!isValidRequest.Success) return BadRequest(isValidRequest.Message);

-			Task.Run(() =>
+            return TaskRunnerHelper(() =>
 			{
 				this.Log().InfoWithLineNumber(WhoAmI(Request) +
 					                              ": Received heartbeat from Node. Node Uri : ( " + workerNodeUri + " )");
@@ -107,8 +104,6 @@
 				_nodeManager.WorkerNodeRegisterHeartbeat(workerNodeUri.ToString());

 			});
-
-			return Ok();
 		}

 		[HttpPost, Route(ManagerRouteConstants.JobSucceed)]
@@ -117,7 +112,7 @@
 			var isValidRequest = _validator.ValidateJobId(jobId);
 			if (!isValidRequest.Success) return BadRequest(isValidRequest.Message);

-			Task.Run(() =>
+            return TaskRunnerHelper(() =>
 			{
 				var workerNodeUri = Request.RequestUri.GetLeftPart(UriPartial.Authority);

@@ -130,8 +125,6 @@

 				_jobManager.AssignJobToWorkerNodes();
 			});
-
-			return Ok();
 		}

 		[HttpPost, Route(ManagerRouteConstants.JobFailed)]
@@ -139,47 +132,39 @@
 		{
 			var isValidRequest = _validator.ValidateObject(jobFailed);
 			if (!isValidRequest.Success) return BadRequest(isValidRequest.Message);
-
-			var task = Task.Run(() =>
-			{
-				var workerNodeUri = Request.RequestUri.GetLeftPart(UriPartial.Authority);
-
-				this.Log().InfoWithLineNumber(
-					$"{WhoAmI(Request)}: Received job failed from a Node ( jobId, Node ) : ( {jobFailed.JobId}, {workerNodeUri} )");
+
+            return TaskRunnerHelper(() =>
+            {
+                var workerNodeUri = Request.RequestUri.GetLeftPart(UriPartial.Authority);
+
+                this.Log().InfoWithLineNumber(
+                    $"{WhoAmI(Request)}: Received job failed from a Node ( jobId, Node ) : ( {jobFailed.JobId}, {workerNodeUri} )");
 z
-				var progress = new JobDetail
-				{
-					JobId = jobFailed.JobId,
-					Created = DateTime.UtcNow,
-					Detail = jobFailed.AggregateException.ToString()
-				};
-
-				_jobManager.CreateJobDetail(progress);
-
-				_jobManager.UpdateResultForJob(jobFailed.JobId,
-					"Failed",
-					DateTime.UtcNow);
-
-				_jobManager.AssignJobToWorkerNodes();
-				ExceptionCall();
-			});
-
-			try
-			{
-				task.Wait();
-			}
-			catch (Exception exception)
-			{
-				return InternalServerError(exception);
-			}
-
-			return Ok();
-		}
+                var progress = new JobDetail
+                {
+                    JobId = jobFailed.JobId,
+                    Created = DateTime.UtcNow,
+                    Detail = jobFailed.AggregateException.ToString()
+                };
+
+                _jobManager.CreateJobDetail(progress);
+
+                _jobManager.UpdateResultForJob(jobFailed.JobId,
+                    "Failed",
+                    DateTime.UtcNow);
+
+                _jobManager.AssignJobToWorkerNodes();
+                ExceptionCall();
+            });
+        }

 		private void ExceptionCall()
 		{
 			throw new Exception("From inside Task Exception");
 		}
+
+
+

 		[HttpPost, Route(ManagerRouteConstants.JobCanceled)]
 		public IHttpActionResult JobCanceled(Guid jobId)
@@ -187,7 +172,7 @@
 			var isValidRequest = _validator.ValidateJobId(jobId);
 			if (!isValidRequest.Success) return BadRequest(isValidRequest.Message);

-			Task.Run(() =>
+           return TaskRunnerHelper(() =>
 			{
 				var workerNodeUri = Request.RequestUri.GetLeftPart(UriPartial.Authority);

@@ -200,9 +185,24 @@

 				_jobManager.AssignJobToWorkerNodes();
 			});
-
-			return Ok();
-		}
+		}
+
+
+        private IHttpActionResult TaskRunnerHelper(Action action)
+        {
+            try
+            {
+                var task = Task.Factory.StartNew(action);
+                task.Start();
+                task.Wait();
+            }
+            catch (Exception exception)
+            {
+                return InternalServerError(exception);
+            }
+            return Ok();
+        }
+

 		[HttpPost, Route(ManagerRouteConstants.JobDetail)]


Make Widget and StyleRenderes Threadsafe

--- Mapsui.Rendering.Skia/MapRenderer.cs
+++ Mapsui.Rendering.Skia/MapRenderer.cs
@@ -1,5 +1,7 @@
 using System;
+using System.Collections.Concurrent;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.IO;
 using System.Linq;
 using Mapsui.Layers;
@@ -24,12 +26,12 @@

         public ISymbolCache SymbolCache => _symbolCache;

-        public IDictionary<Type, IWidgetRenderer> WidgetRenders { get; } = new Dictionary<Type, IWidgetRenderer>();
+        public IDictionary<Type, IWidgetRenderer> WidgetRenders { get; } = new ConcurrentDictionary<Type, IWidgetRenderer>();

         /// <summary>
         /// Dictionary holding all special renderers for styles
         /// </summary>
-        public IDictionary<Type, IStyleRenderer> StyleRenderers { get; } = new Dictionary<Type, IStyleRenderer>();
+        public IDictionary<Type, IStyleRenderer> StyleRenderers { get; } = new ConcurrentDictionary<Type, IStyleRenderer>();

         static MapRenderer()
         {


Returned Schedule to only run on Fridays.

--- Melody49Notifier/Melody49Notifier.cs
+++ Melody49Notifier/Melody49Notifier.cs
@@ -11,7 +11,7 @@
     {

         [FunctionName("Melody49Notifier")]
-        public static void Run([TimerTrigger("0/1 * * * * *")]TimerInfo myTimer, TraceWriter log) //[TimerTrigger("0 0 8-18 * * FRI")]TimerInfo myTimer, TraceWriter log)
+        public static void Run([TimerTrigger("0 0 8-18 * * FRI")]TimerInfo myTimer, TraceWriter log)
         {
             log.Info($"C# Timer trigger function started at: {DateTime.Now}.");


Updated with thirdspring data

Updated with thirdspring data

--- sample-csharp/src/R3E.cs
+++ sample-csharp/src/R3E.cs
@@ -299,11 +299,13 @@
             public Double FrontWingHeight;
             public Double FrontRollAngle;
             public Double RearRollAngle;
+            public Double ThirdSpringSuspensionDeflectionFront;
+	        public Double ThirdSpringSuspensionVelocityFront;
+	        public Double ThirdSpringSuspensionDeflectionRear;
+	        public Double ThirdSpringSuspensionVelocityRear;

             // Reserved data
             public Double Unused1;
-            public Double Unused2;
-            public Vector3<Double> Unused3;
         }

         [StructLayout(LayoutKind.Sequential, Pack = 1)]
@@ -539,7 +541,7 @@
             // Note: See the EngineType enum
             public Int32 EngineType;
             public Int32 IncidentPoints;
-
+
             public Int32 Unused2;
         }


Content Control Type and Tag are shown as well

--- source/AsposeWordsSupport/XmlStructureDocumentVisitor.cs
+++ source/AsposeWordsSupport/XmlStructureDocumentVisitor.cs
@@ -448,7 +448,7 @@

         public override VisitorAction VisitStructuredDocumentTagStart(Aspose.Words.Markup.StructuredDocumentTag sdt)
         {
-            this.structureBuilder.AppendLine(string.Concat("<ContentControl Title=\"", sdt.Title, "\" >"));
+            this.structureBuilder.AppendLine(string.Concat("<ContentControl Type=\"", sdt.SdtType, "\" Title=\"", sdt.Title, "\" Tag=\"", sdt.Tag, "\" >"));

             return VisitorAction.Continue;
         }


Fixed #266

Fixed #266

--- source/FFImageLoading.Forms.WinRT/CachedImageRenderer.cs
+++ source/FFImageLoading.Forms.WinRT/CachedImageRenderer.cs
@@ -340,6 +340,18 @@

         private void UpdateAspect()
         {
+            if (Element.Aspect == Xamarin.Forms.Aspect.AspectFill
+                && Control.HorizontalAlignment != HorizontalAlignment.Center) // Then Center Crop
+            {
+                Control.HorizontalAlignment = HorizontalAlignment.Center;
+                Control.VerticalAlignment = VerticalAlignment.Center;
+            }
+            else if (Control.HorizontalAlignment != HorizontalAlignment.Left) // Default
+            {
+                Control.HorizontalAlignment = HorizontalAlignment.Left;
+                Control.VerticalAlignment = VerticalAlignment.Top;
+            }
+
             Control.Stretch = GetStretch(Element.Aspect);
         }


Use RFC1123Pattern format

Use RFC1123Pattern format

--- src/AngleSharp.Core.Tests/Library/CookieHandling.cs
+++ src/AngleSharp.Core.Tests/Library/CookieHandling.cs
@@ -466,7 +466,7 @@
             var url = Url.Create("http://www.example.com");
             var cookie = "A=A";
             mcp.SetCookie(url,
-                $"{cookie}; expires={DateTime.UtcNow.AddHours(1).ToString("ddd, dd MMM yyyy HH:mm:ss")} GMT");
+                $"{cookie}; expires={DateTime.UtcNow.AddHours(1):R}");
             Assert.AreEqual(mcp.GetCookie(url), cookie);
         }


Extended the GenericLineTransformer to accept background, fontStyle, fontWeigth and isUnderline

--- src/AvaloniaEdit.TextMate/GenericLineTransformer.cs
+++ src/AvaloniaEdit.TextMate/GenericLineTransformer.cs
@@ -1,6 +1,4 @@
 using Avalonia.Media;
-using Avalonia.Media.Immutable;
-
 using AvaloniaEdit.Document;
 using AvaloniaEdit.Rendering;

@@ -15,8 +13,19 @@

         protected abstract void TransformLine(DocumentLine line, ITextRunConstructionContext context);

-        public void SetTextOpacity(DocumentLine line, int startIndex, int length, double opacity)
+        public void SetTextStyle(
+            DocumentLine line,
+            int startIndex,
+            int length,
+            IBrush foreground,
+            IBrush background,
+            FontStyle fontStyle,
+            FontWeight fontWeigth,
+            bool isUnderline)
         {
+            int startOffset = 0;
+            int endOffset = 0;
+
             if (startIndex >= 0 && length > 0)
             {
                 if ((line.Offset + startIndex + length) > line.EndOffset)
@@ -24,53 +33,48 @@
                     length = (line.EndOffset - startIndex) - line.Offset - startIndex;
                 }

-                int startOffset = line.Offset + startIndex;
-                int endoffset = line.Offset + startIndex + length;
-
-                if (startOffset < CurrentContext.Document.TextLength && endoffset < CurrentContext.Document.TextLength)
-                {
-                    ChangeLinePart(startOffset, endoffset, e =>
-                    {
-                        if (e.TextRunProperties.ForegroundBrush is ISolidColorBrush solidBrush)
-                        {
-                            e.TextRunProperties.ForegroundBrush = new ImmutableSolidColorBrush(solidBrush.Color, opacity);
-                        }
-                    });
-                }
+                startOffset = line.Offset + startIndex;
+                endOffset = line.Offset + startIndex + length;
             }
             else
             {
-                ChangeLinePart(line.Offset, line.EndOffset, e =>
-                {
-                    if (e.TextRunProperties.ForegroundBrush is ISolidColorBrush solidBrush)
-                    {
-                        e.TextRunProperties.ForegroundBrush = new ImmutableSolidColorBrush(solidBrush.Color, opacity);
-                    }
-                });
+                startOffset = line.Offset;
+                endOffset = line.EndOffset;
             }
+
+            if (startOffset > CurrentContext.Document.TextLength ||
+                endOffset > CurrentContext.Document.TextLength)
+                return;
+
+            ChangeLinePart(
+                startOffset,
+                endOffset,
+                visualLine => ChangeVisualLine(visualLine, foreground, background, fontStyle, fontWeigth, isUnderline));
         }

-        public void SetTextStyle(DocumentLine line, int startIndex, int length, IBrush foreground)
+        void ChangeVisualLine(
+            VisualLineElement visualLine,
+            IBrush foreground,
+            IBrush background,
+            FontStyle fontStyle,
+            FontWeight fontWeigth,
+            bool isUnderline)
         {
-            if (startIndex >= 0 && length > 0)
+            if (foreground != null)
+                visualLine.TextRunProperties.ForegroundBrush = foreground;
+
+            if (background != null)
+                visualLine.TextRunProperties.BackgroundBrush = background;
+
+            visualLine.TextRunProperties.Underline = isUnderline;
+
+            if (visualLine.TextRunProperties.Typeface.Style != fontStyle ||
+                visualLine.TextRunProperties.Typeface.Weight != fontWeigth)
             {
-                if ((line.Offset + startIndex + length) > line.EndOffset)
-                {
-                    length = (line.EndOffset - startIndex) - line.Offset - startIndex;
-                }
+                visualLine.TextRunProperties.Typeface = new Typeface(
+                    visualLine.TextRunProperties.Typeface.FontFamily, fontStyle, fontWeigth);
+            }

-                int startOffset = line.Offset + startIndex;
-                int endoffset = line.Offset + startIndex + length;
-
-                if (startOffset < CurrentContext.Document.TextLength && endoffset < CurrentContext.Document.TextLength)
-                {
-                    ChangeLinePart(startOffset, endoffset, e => { e.TextRunProperties.ForegroundBrush = foreground; });
-                }
-            }
-            else
-            {
-                ChangeLinePart(line.Offset, line.EndOffset, e => { e.TextRunProperties.ForegroundBrush = foreground; });
-            }
         }
     }
 }


UPdate DatePre

UPdate DatePre

--- MomWorld/Views/Account/Manage.cshtml
+++ MomWorld/Views/Account/Manage.cshtml
@@ -363,12 +363,13 @@

+

                                             Ngày mang thai

-                                                <input type="text" id="datepicker" class="form-control" placeholder="Ngày mang thai">
-

-
+                                                <input type="text" class="form-control" placeholder="Ngày mang thai" value="{{user.DatePregnancy | date:'MM/dd/yyyy' }}">
+

+                                                    <input type="text" id="datepicker" hidden />

@@ -392,20 +393,7 @@
                                                                                class="form-control" id="google-plus">

-

-

-

-                                                Thiết lập Bảo mật
-

-
Bảo vệ tài khoản của bạn

-

-

-

-

-                                            Tên đăng nhập <input type="text" class="form-control" id="username"
-                                                                                value="{{user.currentUsername}}" readonly>
-

-

+

@@ -473,7 +461,7 @@


Grid definitions not mandatory

Grid definitions not mandatory

--- MonoGame.PortableUI/Controls/Grid.cs
+++ MonoGame.PortableUI/Controls/Grid.cs
@@ -16,7 +16,7 @@
             public int ColumnSpan { get; set; }
         }

-        public List<RowDefinition> RowDefinitions { get; set; }
+        public List<RowDefinition> RowDefinitions { get; set;  }
         public List<ColumnDefinition> ColumnDefinitions { get; set; }

         private static readonly Dictionary<Control, GridPosition> ControlGridPositionDictionary = new Dictionary<Control, GridPosition>();
@@ -90,14 +90,16 @@
         {
             spriteBatch.Draw(BackgroundTexture, rect, BackgroundColor);

-            var singleWidth = (int) (Width/ColumnDefinitions.Count);
-            var singleHeight = (int) (Height/RowDefinitions.Count);
+            var coloumnCount = ColumnDefinitions?.Count ?? 1;
+            var rowCount = RowDefinitions?.Count ?? 1;
+            var singleWidth = (int) (Width/ coloumnCount);
+            var singleHeight = (int) (Height/rowCount);

             foreach (var child in Children)
             {

-                    var row = Math.Min(GetRow(child), RowDefinitions.Count);
-                    var column = Math.Min(GetColumn(child), ColumnDefinitions.Count);
+                    var row = Math.Min(GetRow(child), rowCount);
+                    var column = Math.Min(GetColumn(child), coloumnCount);
                     var rowSpan = Math.Max(GetRowSpan(child), 1);
                     var columnSpan = Math.Max(GetColumnSpan(child), 1);

@@ -110,12 +112,14 @@
         protected internal override void OnUpdate(TimeSpan elapsed, Rectangle rect)
         {
             base.OnUpdate(elapsed, rect);
-            var singleWidth = (int)(Width / ColumnDefinitions.Count);
-            var singleHeight = (int)(Height / RowDefinitions.Count);
+            var coloumnCount = ColumnDefinitions?.Count ?? 1;
+            var rowCount = RowDefinitions?.Count ?? 1;
+            var singleWidth = (int)(Width / coloumnCount);
+            var singleHeight = (int)(Height / rowCount);
             foreach (var child in Children)
             {
-                var row = Math.Min( GetRow(child), RowDefinitions.Count);
-                var column = Math.Min(GetColumn(child), ColumnDefinitions.Count);
+                var row = Math.Min( GetRow(child), rowCount);
+                var column = Math.Min(GetColumn(child), coloumnCount);
                 var rowSpan = Math.Max(GetRowSpan(child), 1);
                 var columnSpan = Math.Max(GetColumnSpan(child), 1);


bump version

bump version

--- NServiceBus.ProtoBuf/AssemblyInfo.cs
+++ NServiceBus.ProtoBuf/AssemblyInfo.cs
@@ -2,5 +2,5 @@

 [assembly: AssemblyTitle("NServiceBus.ProtoBuf")]
 [assembly: AssemblyProduct("NServiceBus.ProtoBuf")]
-[assembly: AssemblyVersion("0.1.1")]
-[assembly: AssemblyFileVersion("0.1.1")]
+[assembly: AssemblyVersion("0.1.2")]
+[assembly: AssemblyFileVersion("0.1.2")]


Throw exceptions if StateInfo elements already exists. The exception type and text to be decided. Configuration errors like xml config?

--- Navigation/Config/FluentStateInfo.cs
+++ Navigation/Config/FluentStateInfo.cs
@@ -57,10 +57,12 @@
 				dialog.Attributes = new StateInfoCollection<string>();
 				foreach (var attribute in fluentDialog.Attributes)
 					dialog.Attributes[attribute.Key] = attribute.Value;
+				if (dialogs[fluentDialog.Key] != null)
+					throw new InvalidOperationException();
+				dialogs.Add(fluentDialog.Key, dialog);
 				ProcessStates(dialog, fluentDialog);
 				ProcessTransitions(dialog, fluentDialog);
 				dialog.Initial = dialog.States[fluentDialog.Initial.Key];
-				dialogs.Add(fluentDialog.Key, dialog);
 			}
 			StateInfoConfig.Dialogs = dialogs;
 			StateInfoConfig.AddStateRoutes();
@@ -103,6 +105,8 @@
 				state.TrackCrumbTrail = fluentState.TrackCrumbTrail;
 				state.ResourceType = fluentState.ResourceType;
 				state.ResourceKey = fluentState.ResourceKey;
+				if (dialog.States[fluentState.Key] != null)
+					throw new InvalidOperationException();
 				state.Attributes = new StateInfoCollection<string>();
 				foreach (var attribute in fluentState.Attributes)
 					state.Attributes[attribute.Key] = attribute.Value;
@@ -127,6 +131,8 @@
 					transitionIndex++;
 					transition.Key = fluentTransition.Key;
 					transition.To = dialog.States[fluentTransition.To.Key];
+					if (state.Transitions[fluentTransition.Key] != null)
+						throw new InvalidOperationException();
 					state.Transitions[fluentTransition.Key] = transition;
 				}
 			}


added JsonProperty annotations for 1.x compatibility (#202)

see https://docs.couchdb.org/en/1.6.1/api/database/common.html

--- source/projects/MyCouch/Responses/GetDatabaseResponse.cs
+++ source/projects/MyCouch/Responses/GetDatabaseResponse.cs
@@ -27,9 +27,11 @@
         public DbSizes Sizes { get; set; }

         [Obsolete("Use sizes.file instead")]
+        [JsonProperty("disk_size")]
         public long DiskSize { get; set; }

         [Obsolete("Use sizes.active instead")]
+        [JsonProperty("data_size")]
         public long DataSize { get; set; }

         [JsonProperty(JsonScheme.DiskFormatVersion)]
@@ -42,4 +44,4 @@
             public long Active { get; set; }
         }
     }
-}+}


Fix a possible exception in BuyCommandExecute

--- NewClient/ViewModels/BuyViewModel.cs
+++ NewClient/ViewModels/BuyViewModel.cs
@@ -120,16 +120,17 @@

             if (ret.Error == DigiMarketError.NotFullfilled)
             {
+                var quotationResult = App.Current.TheDigiMarket.GetQuotation(session.Username, session.Password);
+                if (!quotationResult)
+                    return;
+
                 result = await MainWindow.Instance.ShowInputAsync("Change quotation",
                     "Order was not fulfilled, specify new quotation value",
                     new MetroDialogSettings
                     {
                         ColorScheme = MetroDialogColorScheme.Accented,
                         AffirmativeButtonText = "Change",
-                        DefaultText =
-                            App.Current.TheDigiMarket.GetQuotation(session.Username, session.Password)
-                                .Value.ToString(CultureInfo.InvariantCulture)
-
+                        DefaultText = quotationResult.Value.ToString(CultureInfo.InvariantCulture)
                     });

                 if (result == null)


Implement CellEditingTemplate

Implement CellEditingTemplate

--- src/Avalonia.Controls.DataGrid/DataGridTemplateColumn.cs
+++ src/Avalonia.Controls.DataGrid/DataGridTemplateColumn.cs
@@ -30,6 +30,20 @@
             set { SetAndRaise(CellTemplateProperty, ref _cellTemplate, value); }
         }

+        private IDataTemplate _cellEditingCellTemplate;
+
+        public static readonly DirectProperty<DataGridTemplateColumn, IDataTemplate> CellEditingTemplateProperty =
+                AvaloniaProperty.RegisterDirect<DataGridTemplateColumn, IDataTemplate>(
+                    nameof(CellEditingTemplate),
+                    o => o.CellEditingTemplate,
+                    (o, v) => o.CellEditingTemplate = v);
+
+        public IDataTemplate CellEditingTemplate
+        {
+            get => _cellEditingCellTemplate;
+            set => SetAndRaise(CellEditingTemplateProperty, ref _cellEditingCellTemplate, value);
+        }
+
         private void OnCellTemplateChanged(AvaloniaPropertyChangedEventArgs e)
         {
             var oldValue = (IDataTemplate)e.OldValue;
@@ -38,7 +52,7 @@

         public DataGridTemplateColumn()
         {
-            IsReadOnly = true;
+            // IsReadOnly = true;
         }

         protected override IControl GenerateElement(DataGridCell cell, object dataItem)
@@ -60,7 +74,18 @@
         protected override IControl GenerateEditingElement(DataGridCell cell, object dataItem, out ICellEditBinding binding)
         {
             binding = null;
-            return GenerateElement(cell, dataItem);
+            if(CellEditingTemplate != null)
+            {
+                return CellEditingTemplate.Build(dataItem);
+            }
+            if (Design.IsDesignMode)
+            {
+                return null;
+            }
+            else
+            {
+                throw DataGridError.DataGridTemplateColumn.MissingTemplateForType(typeof(DataGridTemplateColumn));
+            }
         }

         protected override object PrepareCellForEdit(IControl editingElement, RoutedEventArgs editingEventArgs)
@@ -70,7 +95,8 @@

         protected internal override void RefreshCellContent(IControl element, string propertyName)
         {
-            if(propertyName == nameof(CellTemplate) && element.Parent is DataGridCell cell)
+            var cell = element.Parent as DataGridCell;
+            if(propertyName == nameof(CellTemplate) && cell is not null)
             {
                 cell.Content = GenerateElement(cell, cell.DataContext);
             }


fix invalidation issue.

fix invalidation issue.

--- src/AvaloniaEdit.TextMate/TextMateColoringTransformer.cs
+++ src/AvaloniaEdit.TextMate/TextMateColoringTransformer.cs
@@ -80,7 +80,7 @@

                 for (int i = startLine; i < endLine; i++)
                 {
-                    AddLine(i + 1);
+                    AddLine(i);
                 }

                 if (startLine == endLine)


Remove event

Remove event

--- src/Binance/WebSocket/Events/WebSocketStreamEventArgs.cs
+++ src/Binance/WebSocket/Events/WebSocketStreamEventArgs.cs
@@ -1,39 +0,0 @@
-using System;
-using System.Threading;
-
-namespace Binance.WebSocket.Events
-{
-    public class WebSocketStreamEventArgs : EventArgs
-    {
-        /// <summary>
-        /// Get the event stream name.
-        /// </summary>
-        public string StreamName { get; }
-
-        /// <summary>
-        /// Get the event JSON data (raw payload).
-        /// </summary>
-        public string Json { get; }
-
-        /// <summary>
-        /// Get the cancellation token.
-        /// </summary>
-        public CancellationToken Token { get; }
-
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <param name="streamName"></param>
-        /// <param name="json"></param>
-        /// <param name="token"></param>
-        public WebSocketStreamEventArgs(string streamName, string json, CancellationToken token)
-        {
-            Throw.IfNullOrWhiteSpace(streamName, nameof(streamName));
-            Throw.IfNullOrWhiteSpace(json, nameof(json));
-
-            StreamName = streamName;
-            Json = json;
-            Token = token;
-        }
-    }
-}


Unfortunately, Lucene.Net decided to make SetNextReader of the collector into a property setter, but we cannot do the same because there is an extra parameter being passed.

--- src/BoboBrowse.Net/BoboBrowse.Net/Search/BoboSearcher.cs
+++ src/BoboBrowse.Net/BoboBrowse.Net/Search/BoboSearcher.cs
@@ -337,7 +337,6 @@
                     {
                         docStart = start + ((BoboMultiReader) reader).SubReaderBase(i);
                     }
-                    // TODO: Make these consistenly properties or methods
                     collector.NextReader = atomicContext;
                     validator.SetNextReader(_subReaders[i], docStart);


whitespace cleanup

whitespace cleanup

--- src/Boo.Lang.Compiler/Steps/InjectCallableConversions.cs
+++ src/Boo.Lang.Compiler/Steps/InjectCallableConversions.cs
@@ -1,479 +1,479 @@
-#region license
-// Copyright (c) 2004, Rodrigo B. de Oliveira (rbo@acm.org)
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-//     * Redistributions of source code must retain the above copyright notice,
-//     this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above copyright notice,
-//     this list of conditions and the following disclaimer in the documentation
-//     and/or other materials provided with the distribution.
-//     * Neither the name of Rodrigo B. de Oliveira nor the names of its
-//     contributors may be used to endorse or promote products derived from this
-//     software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#region license
+// Copyright (c) 2004, Rodrigo B. de Oliveira (rbo@acm.org)
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+//     * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//     * Neither the name of Rodrigo B. de Oliveira nor the names of its
+//     contributors may be used to endorse or promote products derived from this
+//     software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #endregion

 using System.Linq;
 using Boo.Lang.Compiler.TypeSystem.Builders;

-namespace Boo.Lang.Compiler.Steps
-{
-	using System;
-	using Boo.Lang.Compiler.Ast;
-	using Boo.Lang.Compiler.TypeSystem;
-
-	public class InjectCallableConversions : AbstractVisitorCompilerStep
-	{
-		IMethod _current;
-
-		IType _asyncResultType;
-
-		IMethod _asyncResultTypeAsyncDelegateGetter;
-
-		Boo.Lang.List _adaptors;
-
-		override public void Run()
-		{
-			if (0 == Errors.Count)
-			{
-				Initialize();
-				Visit(CompileUnit);
-			}
-		}
-
-		void Initialize()
-		{
-			Type type = typeof(System.Runtime.Remoting.Messaging.AsyncResult);
-			_asyncResultType = TypeSystemServices.Map(type);
-			_asyncResultTypeAsyncDelegateGetter = TypeSystemServices.Map(type.GetProperty("AsyncDelegate").GetGetMethod());
-			_adaptors = new Boo.Lang.List();
-		}
-
-		override public void Dispose()
-		{
-			_asyncResultType = null;
-			_asyncResultTypeAsyncDelegateGetter = null;
-			_adaptors = null;
-			base.Dispose();
-		}
-
-		override public void OnMethod(Method node)
-		{
-			_current = (IMethod)GetEntity(node);
-			Visit(node.Body);
-		}
-
-		bool HasReturnType(IMethod method)
-		{
-			return TypeSystemServices.VoidType != method.ReturnType;
-		}
-
-		bool IsMethodReference(Expression node)
-		{
-			IEntity entity = GetEntity(node);
-			return EntityType.Method == entity.EntityType;
-		}
-
-		bool IsNotTargetOfMethodInvocation(Expression node)
-		{
-			MethodInvocationExpression mie = node.ParentNode as MethodInvocationExpression;
-			if (null != mie) return mie.Target != node;
-			return true;
-		}
-
-		bool IsStandaloneMethodReference(Expression node)
-		{
-			return
-				(node is ReferenceExpression) &&
-				IsMethodReference(node) &&
-				IsNotTargetOfMethodInvocation(node);
-		}
-
-		override public void LeaveExpressionStatement(ExpressionStatement node)
-		{
-			// allow interactive evaluation of closures (see booish)
-			Expression converted = ConvertExpression(node.Expression);
-			if (null != converted)
-			{
-				node.Expression = converted;
-			}
-		}
-
-		override public void LeaveReturnStatement(ReturnStatement node)
+namespace Boo.Lang.Compiler.Steps
+{
+	using System;
+	using Boo.Lang.Compiler.Ast;
+	using Boo.Lang.Compiler.TypeSystem;
+
+	public class InjectCallableConversions : AbstractVisitorCompilerStep
+	{
+		IMethod _current;
+
+		IType _asyncResultType;
+
+		IMethod _asyncResultTypeAsyncDelegateGetter;
+
+		Boo.Lang.List _adaptors;
+
+		override public void Run()
+		{
+			if (0 == Errors.Count)
+			{
+				Initialize();
+				Visit(CompileUnit);
+			}
+		}
+
+		void Initialize()
+		{
+			Type type = typeof(System.Runtime.Remoting.Messaging.AsyncResult);
+			_asyncResultType = TypeSystemServices.Map(type);
+			_asyncResultTypeAsyncDelegateGetter = TypeSystemServices.Map(type.GetProperty("AsyncDelegate").GetGetMethod());
+			_adaptors = new Boo.Lang.List();
+		}
+
+		override public void Dispose()
+		{
+			_asyncResultType = null;
+			_asyncResultTypeAsyncDelegateGetter = null;
+			_adaptors = null;
+			base.Dispose();
+		}
+
+		override public void OnMethod(Method node)
+		{
+			_current = (IMethod)GetEntity(node);
+			Visit(node.Body);
+		}
+
+		bool HasReturnType(IMethod method)
+		{
+			return TypeSystemServices.VoidType != method.ReturnType;
+		}
+
+		bool IsMethodReference(Expression node)
+		{
+			IEntity entity = GetEntity(node);
+			return EntityType.Method == entity.EntityType;
+		}
+
+		bool IsNotTargetOfMethodInvocation(Expression node)
+		{
+			MethodInvocationExpression mie = node.ParentNode as MethodInvocationExpression;
+			if (null != mie) return mie.Target != node;
+			return true;
+		}
+
+		bool IsStandaloneMethodReference(Expression node)
+		{
+			return
+				(node is ReferenceExpression) &&
+				IsMethodReference(node) &&
+				IsNotTargetOfMethodInvocation(node);
+		}
+
+		override public void LeaveExpressionStatement(ExpressionStatement node)
+		{
+			// allow interactive evaluation of closures (see booish)
+			Expression converted = ConvertExpression(node.Expression);
+			if (null != converted)
+			{
+				node.Expression = converted;
+			}
+		}
+
+		override public void LeaveReturnStatement(ReturnStatement node)
 		{
 			Expression expression = node.Expression;
 			if (null == expression)
 				return;

 			if (!HasReturnType(_current))
-				return;
-
+				return;
+
 			Expression newExpression = Convert(_current.ReturnType, expression);
 			if (null == newExpression)
-				return;
-
-			node.Expression = newExpression;
-		}
-
-		override public void LeaveExpressionPair(ExpressionPair pair)
-		{
-			Expression converted = ConvertExpression(pair.First);
-			if (null != converted)
-			{
-				pair.First = converted;
-			}
-
-			converted = ConvertExpression(pair.Second);
-			if (null != converted)
-			{
-				pair.Second = converted;
-			}
-		}
-
-		override public void LeaveListLiteralExpression(ListLiteralExpression node)
-		{
-			ConvertExpressions(node.Items);
-		}
-
-		override public void LeaveArrayLiteralExpression(ArrayLiteralExpression node)
-		{
-			IType elementType = ((IArrayType)GetExpressionType(node)).GetElementType();
-			for (int i=0; i<node.Items.Count; ++i)
-			{
-				Expression converted = Convert(elementType, node.Items[i]);
-				if (null != converted)
-				{
-					node.Items.ReplaceAt(i, converted);
-				}
-			}
-		}
-
-		override public void LeaveMethodInvocationExpression(MethodInvocationExpression node)
-		{
-			IParameter[] parameters = null;
-			IMethod entity = node.Target.Entity as IMethod;
-			if (null != entity)
-			{
-				parameters = entity.GetParameters();
-			}
-			else
-			{
-				ICallableType type = node.Target.ExpressionType as ICallableType;
-				if (null == type)
-				{
-					return;
-				}
-				parameters = type.GetSignature().Parameters;
-			}
-			ConvertMethodInvocation(node, parameters);
-		}
-
-		void ConvertMethodInvocation(MethodInvocationExpression node, IParameter[] parameters)
-		{
-			ExpressionCollection arguments = node.Arguments;
-			for (int i=0; i<parameters.Length; ++i)
-			{
-				Expression newArgument = Convert(parameters[i].Type, arguments[i]);
-				if (null != newArgument)
-				{
-					arguments.ReplaceAt(i, newArgument);
-				}
-			}
-		}
-
-		override public void LeaveMemberReferenceExpression(MemberReferenceExpression node)
-		{
-			if (IsEndInvokeOnStandaloneMethodReference(node) &&
-				AstUtil.IsTargetOfMethodInvocation(node))
-			{
-				ReplaceEndInvokeTargetByGetAsyncDelegate((MethodInvocationExpression)node.ParentNode);
-			}
-			else
-			{
-				Expression newTarget = ConvertExpression(node.Target);
-				if (null != newTarget)
-				{
-					node.Target = newTarget;
-				}
-			}
-		}
-
-		override public void LeaveCastExpression(CastExpression node)
-		{
-			Expression newExpression = Convert(node.ExpressionType, node.Target);
-			if (null != newExpression)
-			{
-				node.Target = newExpression;
-			}
-		}
-
-		override public void LeaveTryCastExpression(TryCastExpression node)
-		{
-			Expression newExpression = Convert(node.ExpressionType, node.Target);
-			if (null != newExpression)
-			{
-				node.Target = newExpression;
-			}
-		}
-
-		override public void LeaveBinaryExpression(BinaryExpression node)
-		{
-			if (BinaryOperatorType.Assign == node.Operator)
-			{
-				Expression newRight = Convert(node.Left.ExpressionType, node.Right);
-				if (null != newRight)
-				{
-					node.Right = newRight;
-				}
-			}
-		}
-
-		override public void LeaveGeneratorExpression(GeneratorExpression node)
-		{
-			Expression newExpression = Convert(
-										GetConcreteExpressionType(node.Expression),
-										node.Expression);
-			if (null != newExpression)
-			{
-				node.Expression = newExpression;
-			}
-		}
-
-		void ConvertExpressions(ExpressionCollection items)
-		{
-			for (int i=0; i<items.Count; ++i)
-			{
-				Expression converted = ConvertExpression(items[i]);
-				if (null != converted)
-				{
-					items.ReplaceAt(i, converted);
-				}
-			}
-		}
-
-		Expression ConvertExpression(Expression expression)
-		{
-			return Convert(expression.ExpressionType, expression);
-		}
-
-		Expression Convert(IType expectedType, Expression argument)
-		{
-			if (IsStandaloneMethodReference(argument))
-			{
-				if (IsCallableType(expectedType))
-				{
-					ICallableType argumentType = (ICallableType)GetExpressionType(argument);
-					if (argumentType.GetSignature() !=
-						((ICallableType)expectedType).GetSignature())
-					{
-						return Adapt((ICallableType)expectedType,
-							CreateDelegate(GetConcreteExpressionType(argument), argument));
-					}
-					return CreateDelegate(expectedType, argument);
-				}
-				else
-				{
-					return CreateDelegate(GetConcreteExpressionType(argument), argument);
-				}
-			}
-			else
-			{
-				if (IsCallableType(expectedType))
-				{
-					IType argumentType = GetExpressionType(argument);
-					if (Null.Default != argumentType &&
-						expectedType != argumentType)
-					{
-						return Adapt((ICallableType)expectedType, argument);
-					}
-				}
-			}
-			return null;
-		}
-
-		Expression Adapt(ICallableType expected, Expression callable)
-		{
-			ICallableType actual = GetExpressionType(callable) as ICallableType;
-			if (null == actual)
-			{
-				// TODO: should we adapt System.Object, System.Delegate,
-				// System.MulticastDelegate and ICallable as well?
-				return null;
-			}
-			ClassDefinition adaptor = GetAdaptor(expected, actual);
-			Method adapt = (Method)adaptor.Members["Adapt"];
-			return CodeBuilder.CreateMethodInvocation((IMethod)adapt.Entity, callable);
-		}
-
-		ClassDefinition GetAdaptor(ICallableType to, ICallableType from)
-		{
-			ClassDefinition adaptor = FindAdaptor(to, from);
-			if (null == adaptor)
-				adaptor = CreateAdaptor(to, from);
-			return adaptor;
-		}
-
-		sealed class AdaptorRecord
-		{
-			public readonly ICallableType To;
-			public readonly ICallableType From;
-			public readonly ClassDefinition Adaptor;
-
-			public AdaptorRecord(ICallableType to, ICallableType from, ClassDefinition adaptor)
-			{
-				To = to;
-				From = from;
-				Adaptor = adaptor;
-			}
-		}
-
-		ClassDefinition FindAdaptor(ICallableType to, ICallableType from)
-		{
-			foreach (AdaptorRecord record in _adaptors)
-			{
-				if (from == record.From && to == record.To)
-				{
-					return record.Adaptor;
-				}
-			}
-			return null;
-		}
-
-		ClassDefinition CreateAdaptor(ICallableType to, ICallableType from)
-		{
-			BooClassBuilder adaptor = CodeBuilder.CreateClass("$adaptor$" + from.Name + "$" + to.Name + "$" + _adaptors.Count);
-			adaptor.AddBaseType(TypeSystemServices.ObjectType);
-			adaptor.Modifiers = TypeMemberModifiers.Final|TypeMemberModifiers.Internal;
-
-			Field callable = adaptor.AddField("$from", from);
-
-			BooMethodBuilder constructor = adaptor.AddConstructor();
-			ParameterDeclaration param = constructor.AddParameter("from", from);
-			constructor.Body.Add(
-				CodeBuilder.CreateSuperConstructorInvocation(TypeSystemServices.ObjectType));
-			constructor.Body.Add(
-				CodeBuilder.CreateAssignment(
-					CodeBuilder.CreateReference(callable),
-					CodeBuilder.CreateReference(param)));
-
-			CallableSignature signature = to.GetSignature();
-			BooMethodBuilder invoke = adaptor.AddMethod("Invoke", signature.ReturnType);
-			foreach (IParameter parameter in signature.Parameters)
-			{
-				invoke.AddParameter(parameter.Name, parameter.Type, parameter.IsByRef);
-			}
-			MethodInvocationExpression mie = CodeBuilder.CreateMethodInvocation(
-							CodeBuilder.CreateReference(callable),
-							GetInvokeMethod(from));
-			int fromParameterCount = from.GetSignature().Parameters.Length;
-			for (int i=0; i<fromParameterCount; ++i)
-			{
-				mie.Arguments.Add(
-					CodeBuilder.CreateReference(invoke.Parameters[i]));
-			}
-			if (signature.ReturnType != TypeSystemServices.VoidType &&
-				from.GetSignature().ReturnType != TypeSystemServices.VoidType)
-			{
-				invoke.Body.Add(new ReturnStatement(mie));
-			}
-			else
-			{
-				invoke.Body.Add(mie);
-			}
-
-			BooMethodBuilder adapt = adaptor.AddMethod("Adapt", to);
-			adapt.Modifiers = TypeMemberModifiers.Static|TypeMemberModifiers.Public;
-			param = adapt.AddParameter("from", from);
-			adapt.Body.Add(
-				new ReturnStatement(
-					CodeBuilder.CreateConstructorInvocation(
-						to.GetConstructors().First(),
-						CodeBuilder.CreateConstructorInvocation(
-							(IConstructor)constructor.Entity,
-							CodeBuilder.CreateReference(param)),
-						CodeBuilder.CreateAddressOfExpression(invoke.Entity))));
-
-			RegisterAdaptor(to, from, adaptor.ClassDefinition);
-
-			return adaptor.ClassDefinition;
-		}
-
-		void RegisterAdaptor(ICallableType to, ICallableType from, ClassDefinition adaptor)
-		{
-			_adaptors.Add(new AdaptorRecord(to, from, adaptor));
-			TypeSystemServices.GetCompilerGeneratedTypesModule().Members.Add(adaptor);
-		}
-
-		bool IsEndInvokeOnStandaloneMethodReference(MemberReferenceExpression node)
-		{
-			if (IsStandaloneMethodReference(node.Target))
-			{
-				return node.Entity.Name == "EndInvoke";
-			}
-			return false;
-		}
-
-		void ReplaceEndInvokeTargetByGetAsyncDelegate(MethodInvocationExpression node)
-		{
-			Expression asyncResult = node.Arguments.Last;
-			MemberReferenceExpression endInvoke = (MemberReferenceExpression)node.Target;
-			IType callableType = ((IMember)endInvoke.Entity).DeclaringType;
-
-			endInvoke.Target = CodeBuilder.CreateCast(callableType,
-									CodeBuilder.CreateMethodInvocation(
-										CodeBuilder.CreateCast(_asyncResultType, asyncResult.CloneNode()),
-										_asyncResultTypeAsyncDelegateGetter));
-		}
-
-		bool IsCallableType(IType type)
-		{
-			return type is ICallableType;
-		}
-
-		Expression CreateDelegate(IType type, Expression source)
-		{
-			IMethod method = (IMethod)GetEntity(source);
-
-			Expression target = null;
-			if (method.IsStatic)
-			{
-				target = CodeBuilder.CreateNullLiteral();
-			}
-			else
-			{
-				target = ((MemberReferenceExpression)source).Target;
-			}
-			return CodeBuilder.CreateConstructorInvocation(GetConcreteType(type).GetConstructors().First(),
-									target,
-									CodeBuilder.CreateAddressOfExpression(method));
-		}
-
-		IType GetConcreteType(IType type)
-		{
-			AnonymousCallableType anonymous = type as AnonymousCallableType;
-			if (null == anonymous)
-			{
-				return type;
-			}
-			return anonymous.ConcreteType;
-		}
-
-		IMethod GetInvokeMethod(ICallableType type)
-		{
-			return NameResolutionService.ResolveMethod(type, "Invoke");
-		}
-	}
-}
+				return;
+
+			node.Expression = newExpression;
+		}
+
+		override public void LeaveExpressionPair(ExpressionPair pair)
+		{
+			Expression converted = ConvertExpression(pair.First);
+			if (null != converted)
+			{
+				pair.First = converted;
+			}
+
+			converted = ConvertExpression(pair.Second);
+			if (null != converted)
+			{
+				pair.Second = converted;
+			}
+		}
+
+		override public void LeaveListLiteralExpression(ListLiteralExpression node)
+		{
+			ConvertExpressions(node.Items);
+		}
+
+		override public void LeaveArrayLiteralExpression(ArrayLiteralExpression node)
+		{
+			IType elementType = ((IArrayType)GetExpressionType(node)).GetElementType();
+			for (int i=0; i<node.Items.Count; ++i)
+			{
+				Expression converted = Convert(elementType, node.Items[i]);
+				if (null != converted)
+				{
+					node.Items.ReplaceAt(i, converted);
+				}
+			}
+		}
+
+		override public void LeaveMethodInvocationExpression(MethodInvocationExpression node)
+		{
+			IParameter[] parameters = null;
+			IMethod entity = node.Target.Entity as IMethod;
+			if (null != entity)
+			{
+				parameters = entity.GetParameters();
+			}
+			else
+			{
+				ICallableType type = node.Target.ExpressionType as ICallableType;
+				if (null == type)
+				{
+					return;
+				}
+				parameters = type.GetSignature().Parameters;
+			}
+			ConvertMethodInvocation(node, parameters);
+		}
+
+		void ConvertMethodInvocation(MethodInvocationExpression node, IParameter[] parameters)
+		{
+			ExpressionCollection arguments = node.Arguments;
+			for (int i=0; i<parameters.Length; ++i)
+			{
+				Expression newArgument = Convert(parameters[i].Type, arguments[i]);
+				if (null != newArgument)
+				{
+					arguments.ReplaceAt(i, newArgument);
+				}
+			}
+		}
+
+		override public void LeaveMemberReferenceExpression(MemberReferenceExpression node)
+		{
+			if (IsEndInvokeOnStandaloneMethodReference(node) &&
+				AstUtil.IsTargetOfMethodInvocation(node))
+			{
+				ReplaceEndInvokeTargetByGetAsyncDelegate((MethodInvocationExpression)node.ParentNode);
+			}
+			else
+			{
+				Expression newTarget = ConvertExpression(node.Target);
+				if (null != newTarget)
+				{
+					node.Target = newTarget;
+				}
+			}
+		}
+
+		override public void LeaveCastExpression(CastExpression node)
+		{
+			Expression newExpression = Convert(node.ExpressionType, node.Target);
+			if (null != newExpression)
+			{
+				node.Target = newExpression;
+			}
+		}
+
+		override public void LeaveTryCastExpression(TryCastExpression node)
+		{
+			Expression newExpression = Convert(node.ExpressionType, node.Target);
+			if (null != newExpression)
+			{
+				node.Target = newExpression;
+			}
+		}
+
+		override public void LeaveBinaryExpression(BinaryExpression node)
+		{
+			if (BinaryOperatorType.Assign == node.Operator)
+			{
+				Expression newRight = Convert(node.Left.ExpressionType, node.Right);
+				if (null != newRight)
+				{
+					node.Right = newRight;
+				}
+			}
+		}
+
+		override public void LeaveGeneratorExpression(GeneratorExpression node)
+		{
+			Expression newExpression = Convert(
+										GetConcreteExpressionType(node.Expression),
+										node.Expression);
+			if (null != newExpression)
+			{
+				node.Expression = newExpression;
+			}
+		}
+
+		void ConvertExpressions(ExpressionCollection items)
+		{
+			for (int i=0; i<items.Count; ++i)
+			{
+				Expression converted = ConvertExpression(items[i]);
+				if (null != converted)
+				{
+					items.ReplaceAt(i, converted);
+				}
+			}
+		}
+
+		Expression ConvertExpression(Expression expression)
+		{
+			return Convert(expression.ExpressionType, expression);
+		}
+
+		Expression Convert(IType expectedType, Expression argument)
+		{
+			if (IsStandaloneMethodReference(argument))
+			{
+				if (IsCallableType(expectedType))
+				{
+					ICallableType argumentType = (ICallableType)GetExpressionType(argument);
+					if (argumentType.GetSignature() !=
+						((ICallableType)expectedType).GetSignature())
+					{
+						return Adapt((ICallableType)expectedType,
+							CreateDelegate(GetConcreteExpressionType(argument), argument));
+					}
+					return CreateDelegate(expectedType, argument);
+				}
+				else
+				{
+					return CreateDelegate(GetConcreteExpressionType(argument), argument);
+				}
+			}
+			else
+			{
+				if (IsCallableType(expectedType))
+				{
+					IType argumentType = GetExpressionType(argument);
+					if (Null.Default != argumentType &&
+						expectedType != argumentType)
+					{
+						return Adapt((ICallableType)expectedType, argument);
+					}
+				}
+			}
+			return null;
+		}
+
+		Expression Adapt(ICallableType expected, Expression callable)
+		{
+			ICallableType actual = GetExpressionType(callable) as ICallableType;
+			if (null == actual)
+			{
+				// TODO: should we adapt System.Object, System.Delegate,
+				// System.MulticastDelegate and ICallable as well?
+				return null;
+			}
+			ClassDefinition adaptor = GetAdaptor(expected, actual);
+			Method adapt = (Method)adaptor.Members["Adapt"];
+			return CodeBuilder.CreateMethodInvocation((IMethod)adapt.Entity, callable);
+		}
+
+		ClassDefinition GetAdaptor(ICallableType to, ICallableType from)
+		{
+			ClassDefinition adaptor = FindAdaptor(to, from);
+			if (null == adaptor)
+				adaptor = CreateAdaptor(to, from);
+			return adaptor;
+		}
+
+		sealed class AdaptorRecord
+		{
+			public readonly ICallableType To;
+			public readonly ICallableType From;
+			public readonly ClassDefinition Adaptor;
+
+			public AdaptorRecord(ICallableType to, ICallableType from, ClassDefinition adaptor)
+			{
+				To = to;
+				From = from;
+				Adaptor = adaptor;
+			}
+		}
+
+		ClassDefinition FindAdaptor(ICallableType to, ICallableType from)
+		{
+			foreach (AdaptorRecord record in _adaptors)
+			{
+				if (from == record.From && to == record.To)
+				{
+					return record.Adaptor;
+				}
+			}
+			return null;
+		}
+
+		ClassDefinition CreateAdaptor(ICallableType to, ICallableType from)
+		{
+			BooClassBuilder adaptor = CodeBuilder.CreateClass("$adaptor$" + from.Name + "$" + to.Name + "$" + _adaptors.Count);
+			adaptor.AddBaseType(TypeSystemServices.ObjectType);
+			adaptor.Modifiers = TypeMemberModifiers.Final|TypeMemberModifiers.Internal;
+
+			Field callable = adaptor.AddField("$from", from);
+
+			BooMethodBuilder constructor = adaptor.AddConstructor();
+			ParameterDeclaration param = constructor.AddParameter("from", from);
+			constructor.Body.Add(
+				CodeBuilder.CreateSuperConstructorInvocation(TypeSystemServices.ObjectType));
+			constructor.Body.Add(
+				CodeBuilder.CreateAssignment(
+					CodeBuilder.CreateReference(callable),
+					CodeBuilder.CreateReference(param)));
+
+			CallableSignature signature = to.GetSignature();
+			BooMethodBuilder invoke = adaptor.AddMethod("Invoke", signature.ReturnType);
+			foreach (IParameter parameter in signature.Parameters)
+			{
+				invoke.AddParameter(parameter.Name, parameter.Type, parameter.IsByRef);
+			}
+			MethodInvocationExpression mie = CodeBuilder.CreateMethodInvocation(
+							CodeBuilder.CreateReference(callable),
+							GetInvokeMethod(from));
+			int fromParameterCount = from.GetSignature().Parameters.Length;
+			for (int i=0; i<fromParameterCount; ++i)
+			{
+				mie.Arguments.Add(
+					CodeBuilder.CreateReference(invoke.Parameters[i]));
+			}
+			if (signature.ReturnType != TypeSystemServices.VoidType &&
+				from.GetSignature().ReturnType != TypeSystemServices.VoidType)
+			{
+				invoke.Body.Add(new ReturnStatement(mie));
+			}
+			else
+			{
+				invoke.Body.Add(mie);
+			}
+
+			BooMethodBuilder adapt = adaptor.AddMethod("Adapt", to);
+			adapt.Modifiers = TypeMemberModifiers.Static|TypeMemberModifiers.Public;
+			param = adapt.AddParameter("from", from);
+			adapt.Body.Add(
+				new ReturnStatement(
+					CodeBuilder.CreateConstructorInvocation(
+						to.GetConstructors().First(),
+						CodeBuilder.CreateConstructorInvocation(
+							(IConstructor)constructor.Entity,
+							CodeBuilder.CreateReference(param)),
+						CodeBuilder.CreateAddressOfExpression(invoke.Entity))));
+
+			RegisterAdaptor(to, from, adaptor.ClassDefinition);
+
+			return adaptor.ClassDefinition;
+		}
+
+		void RegisterAdaptor(ICallableType to, ICallableType from, ClassDefinition adaptor)
+		{
+			_adaptors.Add(new AdaptorRecord(to, from, adaptor));
+			TypeSystemServices.GetCompilerGeneratedTypesModule().Members.Add(adaptor);
+		}
+
+		bool IsEndInvokeOnStandaloneMethodReference(MemberReferenceExpression node)
+		{
+			if (IsStandaloneMethodReference(node.Target))
+			{
+				return node.Entity.Name == "EndInvoke";
+			}
+			return false;
+		}
+
+		void ReplaceEndInvokeTargetByGetAsyncDelegate(MethodInvocationExpression node)
+		{
+			Expression asyncResult = node.Arguments.Last;
+			MemberReferenceExpression endInvoke = (MemberReferenceExpression)node.Target;
+			IType callableType = ((IMember)endInvoke.Entity).DeclaringType;
+
+			endInvoke.Target = CodeBuilder.CreateCast(callableType,
+									CodeBuilder.CreateMethodInvocation(
+										CodeBuilder.CreateCast(_asyncResultType, asyncResult.CloneNode()),
+										_asyncResultTypeAsyncDelegateGetter));
+		}
+
+		bool IsCallableType(IType type)
+		{
+			return type is ICallableType;
+		}
+
+		Expression CreateDelegate(IType type, Expression source)
+		{
+			IMethod method = (IMethod)GetEntity(source);
+
+			Expression target = null;
+			if (method.IsStatic)
+			{
+				target = CodeBuilder.CreateNullLiteral();
+			}
+			else
+			{
+				target = ((MemberReferenceExpression)source).Target;
+			}
+			return CodeBuilder.CreateConstructorInvocation(GetConcreteType(type).GetConstructors().First(),
+									target,
+									CodeBuilder.CreateAddressOfExpression(method));
+		}
+
+		IType GetConcreteType(IType type)
+		{
+			AnonymousCallableType anonymous = type as AnonymousCallableType;
+			if (null == anonymous)
+			{
+				return type;
+			}
+			return anonymous.ConcreteType;
+		}
+
+		IMethod GetInvokeMethod(ICallableType type)
+		{
+			return NameResolutionService.ResolveMethod(type, "Invoke");
+		}
+	}
+}


Fix comment

Fix comment

--- src/Cake.Docker/Registry/Logout/Docker.Aliases.Logout.cs
+++ src/Cake.Docker/Registry/Logout/Docker.Aliases.Logout.cs
@@ -8,7 +8,7 @@
     partial class DockerAliases
     {
         /// <summary>
-        /// Register or log in to a Docker registry.
+        /// Logout from a Docker registry.
         /// If no server is specified, the docker engine default is used.
         /// </summary>
         /// <param name="context">The context.</param>


Fixing system menu location for per monitor dpi

--- src/ControlzEx/Microsoft.Windows.Shell/SystemCommands.cs
+++ src/ControlzEx/Microsoft.Windows.Shell/SystemCommands.cs
@@ -81,8 +81,8 @@
         {
             Verify.IsNotNull(window, "window");

-            var dpi = DpiHelper.GetDpi(window);
-            ShowSystemMenuPhysicalCoordinates(window, DpiHelper.LogicalPixelsToDevice(screenLocation, dpi.DpiScaleX, dpi.DpiScaleY));
+            // Using fixed dpi scaling here because the menu gets placed way off otherwise
+            ShowSystemMenuPhysicalCoordinates(window, DpiHelper.LogicalPixelsToDevice(screenLocation, 1, 1));
         }

         internal static void ShowSystemMenuPhysicalCoordinates(Window window, Point physicalScreenLocation)


Added property on CsvPropertyNameCollection to get the raw list of names.

--- src/CsvHelper/Configuration/CsvPropertyNameCollection.cs
+++ src/CsvHelper/Configuration/CsvPropertyNameCollection.cs
@@ -30,6 +30,15 @@
 		/// Gets the prefix to use for each name.
 		/// </summary>
 		public string Prefix { get; set; }
+
+		/// <summary>
+		/// Gets the raw list of names without
+		/// the prefix being prepended.
+		/// </summary>
+		public List<string> Names
+		{
+			get { return names; }
+		}

 		/// <summary>
 		/// Gets the count.


Cleaned up Usings

Cleaned up Usings

--- src/DatenMeister.Tests/Modules/DefaultClassifierTests.cs
+++ src/DatenMeister.Tests/Modules/DefaultClassifierTests.cs
@@ -1,7 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using DatenMeister.Core.EMOF.Implementation;
+using DatenMeister.Core.EMOF.Implementation;
 using DatenMeister.Models;
 using DatenMeister.Models.EMOF;
 using DatenMeister.Modules.DefaultTypes;


Fixing mistake in test after upgrading NUnit.

--- src/HumbleConfig.Tests/KeyFormatters/KeyPrefixerTests.cs
+++ src/HumbleConfig.Tests/KeyFormatters/KeyPrefixerTests.cs
@@ -28,7 +28,7 @@
         [Test]
         public void ThenTheKeyIsPrefixed()
         {
-            Assert.That(_formattedKey, Does.EndWith(_prefix));
+            Assert.That(_formattedKey, Does.StartWith(_prefix));
         }

         [Test]


ensure that docs link doesn't replace other links

--- src/Lernaean.Hydra.Tests/ServingApiDocumentationTests.cs
+++ src/Lernaean.Hydra.Tests/ServingApiDocumentationTests.cs
@@ -1,4 +1,5 @@
 using System;
+using System.Collections.Generic;
 using FakeItEasy;
 using FluentAssertions;
 using Hydra;
@@ -50,7 +51,7 @@

             // then
             response.Headers.Should().ContainKey("Link");
-            response.Headers["Link"].Should().Be(ExpectedLinkHeader);
+            response.Headers["Link"].Should().Match(ExpectedLinkHeader);
         }

         [Fact]
@@ -61,7 +62,19 @@

             // then
             response.Headers.Should().ContainKey("Link");
-            response.Headers["Link"].Should().Be(ExpectedLinkHeader);
+            response.Headers["Link"].Should().Match(ExpectedLinkHeader);
+        }
+
+        [Fact]
+        public async void Should_not_replace_other_links_with_doc_link()
+        {
+            // when
+            var response = await this.browser.Get("has-link");
+
+            // then
+            response.Headers.Should().ContainKey("Link");
+            response.Headers["Link"].Should().MatchRegex(ExpectedLinkHeader);
+            response.Headers["Link"].Should().MatchRegex("<http://test.com/canonical>; rel=\"canonical\"");
         }

         private class TestModule : NancyModule
@@ -70,6 +83,13 @@
             {
                 this.Get("test", _ => "GET test");
                 this.Post("test", _ => "POST test");
+                this.Get("has-link", _ => new Response
+                {
+                    Headers = new Dictionary<string, string>
+                    {
+                        { "Link", "<http://test.com/canonical>; rel=\"canonical\"" }
+                    }
+                });
             }
         }


Add Flakey to Test Category for SignalR Test

- I had noticed this when working on the cake build, this sometimes failed
I thought a delay would help, but it is intermitten. Running in Visual Studio
it passes 100% of the time.

--- src/MassTransit.SignalR.Tests/HubLifeTimeManagerTests.cs
+++ src/MassTransit.SignalR.Tests/HubLifeTimeManagerTests.cs
@@ -115,6 +115,7 @@

         #region From Scaleout
         [Test]
+        [Category("Flakey")]
         public async Task DisconnectConnectionRemovesConnectionFromGroup()
         {
             using (var client = new TestClient())


Remove obsolete dictionary.

Remove obsolete dictionary.

--- src/MySqlConnector/MySqlClient/MySqlStatementPreparer.cs
+++ src/MySqlConnector/MySqlClient/MySqlStatementPreparer.cs
@@ -1,6 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
+using System.Text;

 namespace MySql.Data.MySqlClient
 {
@@ -12,13 +10,6 @@
 			m_parameters = parameters;
 			m_options = options;
 			m_hasBoundParameters = string.IsNullOrWhiteSpace(m_commandText);
-
-			m_namedParameters = new Dictionary<string, MySqlParameter>(StringComparer.OrdinalIgnoreCase);
-			foreach (MySqlParameter parameter in parameters)
-			{
-				if (!string.IsNullOrWhiteSpace(parameter.ParameterName))
-					m_namedParameters.Add(parameter.ParameterName, parameter);
-			}
 		}

 		public void BindParameters()
@@ -86,8 +77,7 @@

 		readonly string m_commandText;
 		readonly MySqlParameterCollection m_parameters;
-		private readonly StatementPreparerOptions m_options;
-		readonly Dictionary<string, MySqlParameter> m_namedParameters;
+		readonly StatementPreparerOptions m_options;
 		bool m_hasBoundParameters;
 	}
 }


Added a period at the end of error message

--- src/NuGetGallery/Authentication/FeedOnlyModeException.cs
+++ src/NuGetGallery/Authentication/FeedOnlyModeException.cs
@@ -5,7 +5,7 @@
     [Serializable]
     public class FeedOnlyModeException : Exception
     {
-        public const string FeedOnlyModeError = "Illegal request! Running on Feed Only mode. User Registration or authentication is disallowed";
+        public const string FeedOnlyModeError = "Illegal request! Running on Feed Only mode. User Registration or authentication is disallowed.";
         public FeedOnlyModeException() { }

         public FeedOnlyModeException(string message) : base(message) { }


Fix merge markers

Fix merge markers

--- Nodejs/Tests/Core/ReplWindowTests.cs
+++ Nodejs/Tests/Core/ReplWindowTests.cs
@@ -122,12 +122,7 @@
             }
         }

-<<<<<<< HEAD
         [TestMethod, Priority(0), TestCategory("AppVeyorIgnore"), TestCategory("Ignore")]
-=======
-        [Ignore]
-        [TestMethod, Priority(0), TestCategory("AppVeyorIgnore")]
->>>>>>> 59fe154edefc5a62b312756298a95d54b2afe8da
         public void TestConsoleDir() {
             using (var eval = ProjectlessEvaluator()) {
                 var window = new MockReplWindow(eval);
@@ -431,15 +426,7 @@
             }
         }

-<<<<<<< HEAD
-        [TestMethod, Priority(0), TestCategory("Ignore")]
-=======
-        [Ignore]
-        [TestMethod, Priority(0), TestCategory("AppVeyorIgnore")]
-<<<<<<< HEAD
->>>>>>> e9bec53... Add AppVeyorIgnoreCategory to repl window tests and disable one that fails locally
-=======
->>>>>>> 59fe154edefc5a62b312756298a95d54b2afe8da
+        [TestMethod, Priority(0), TestCategory("AppVeyorIgnore"), TestCategory("Ignore")]
         public void TestVarI() {
             using (var eval = ProjectlessEvaluator()) {
                 var window = new MockReplWindow(eval);
@@ -528,15 +515,7 @@
             }
         }

-<<<<<<< HEAD
-        [TestMethod, Priority(0), TestCategory("Ignore")]
-=======
-        [Ignore]
-        [TestMethod, Priority(0), TestCategory("AppVeyorIgnore")]
-<<<<<<< HEAD
->>>>>>> e9bec53... Add AppVeyorIgnoreCategory to repl window tests and disable one that fails locally
-=======
->>>>>>> 59fe154edefc5a62b312756298a95d54b2afe8da
+        [TestMethod, Priority(0), TestCategory("AppVeyorIgnore"), TestCategory("Ignore")]
         public void TestNpmReplRedirector() {
             using (var eval = ProjectlessEvaluator()) {
                 var mockWindow = new MockReplWindow(eval) {


#18870: Making menu item descriptions localizable

Work Item: 18870

--HG--
branch : 1.x

--- src/Orchard.Web/Core/Navigation/Views/Admin/Index.cshtml
+++ src/Orchard.Web/Core/Navigation/Views/Admin/Index.cshtml
@@ -54,9 +54,9 @@

                 @foreach (var descriptor in Model.MenuItemDescriptors.OrderBy(x => x.DisplayName)) {

-

@descriptor.DisplayName.CamelFriendly()

+

@T(descriptor.DisplayName.CamelFriendly())

                             @if (!string.IsNullOrWhiteSpace(descriptor.Description)) {
-                                @descriptor.Description
+                                @T(descriptor.Description)
                             }

@Html.ActionLink(T("Add").Text, "CreateMenuItem", "Admin", new { area = "Navigation", id = descriptor.Type, menuId = Model.CurrentMenu.Id, returnUrl = Request.RawUrl }, new { @class = "button grey" })


Fix logic mistake

Fix logic mistake

--- src/Orchard.Web/Modules/LETS/Views/NoticeMetadata.cshtml
+++ src/Orchard.Web/Modules/LETS/Views/NoticeMetadata.cshtml
@@ -5,7 +5,7 @@
 @{
     var createdUtc = Model.ContentPart.CreatedUtc != null ? TimeZoneInfo.ConvertTimeFromUtc(Model.ContentPart.CreatedUtc, WorkContext.CurrentTimeZone) : null;
     var publishedUtc = Model.ContentPart.PublishedUtc != null ? TimeZoneInfo.ConvertTimeFromUtc(Model.ContentPart.PublishedUtc, WorkContext.CurrentTimeZone) : null;
-    var republished = publishedUtc != null && createdUtc != null ?? (publishedUtc - createdUtc).Days > 1;
+    var republished = publishedUtc != null && createdUtc != null && (publishedUtc - createdUtc).Days > 1;
 }
 @if (republished)
 {


Use Task instead of raw thread.

Use Task instead of raw thread.

--- NtImageProcessor/HistogramCreator.cs
+++ NtImageProcessor/HistogramCreator.cs
@@ -1,37 +1,24 @@
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
 using System.Diagnostics;
-using System.Net;
 using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
 using System.Windows.Media.Imaging;
-using System.Windows.Shapes;

 namespace NtImageProcessor
 {
     public class HistogramCreator
     {
-        private BitmapImage image;
-        private WriteableBitmap writableBitmap;
-
         private int[] red, green, blue;

         private int shiftBytes;

-        public enum HistogramResolution {
+        public enum HistogramResolution
+        {
             Resolution_256,
             Resolution_128,
             Resolution_64,
             Resolution_32,
         };
-
+
         public int MaxFrequency { get; set; }
         public int Resolution { get; set; }
         private HistogramResolution histogramResolution;
@@ -71,7 +58,7 @@
                     shiftBytes = 0;
                     break;
             }
-
+
             _init();

         }
@@ -92,7 +79,7 @@
             IsRunning = false;
         }

-        public void CreateHistogram(BitmapImage source)
+        public async Task CreateHistogram(BitmapImage source)
         {
             if (IsRunning)
             {
@@ -103,21 +90,19 @@
             _init();

             IsRunning = true;
-
-            writableBitmap = new WriteableBitmap(source);
-            var thread = new System.Threading.Thread(CalculateHistogram);
-            Debug.WriteLine("starting thread: " + thread.ManagedThreadId);
-            thread.Start();
-            // Debug.WriteLine("started thread: " + thread.ManagedThreadId);
+
+            var writeableBitmap = new WriteableBitmap(source);
+
+            await Task.Run(() => { CalculateHistogram(writeableBitmap); });
         }

-        private void CalculateHistogram()
+        private void CalculateHistogram(WriteableBitmap writableBitmap)
         {
-
+
             foreach (int v in writableBitmap.Pixels)
             {
                 int value = v;
-
+
                 int b = (value & 0xFF);
                 value = value >> 8;
                 int g = (value & 0xFF);
@@ -135,7 +120,7 @@
                 green[g]++;
                 blue[b]++;
             }
-
+
             // normalize values.
             double scaleFactor = (double)MaxFrequency / (double)writableBitmap.Pixels.Length;
             // Debug.WriteLine("scale: " + scaleFactor);


Getting rid of autofac in tests

Getting rid of autofac in tests

--- src/Pickles/Pickles.Test/WhenWorkingWithHtmlResources.cs
+++ src/Pickles/Pickles.Test/WhenWorkingWithHtmlResources.cs
@@ -1,7 +1,6 @@
 using System;
 using System.Linq;
 using NUnit.Framework;
-using Autofac;
 using PicklesDoc.Pickles.DocumentationBuilders.HTML;
 using Should;

@@ -13,10 +12,8 @@
         [Test]
         public void ThenCanDetectAllImagesSuccessfully()
         {
-            var configuration = Container.Resolve<Configuration>();
-            configuration.OutputFolder = configuration.OutputFolder = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\");
+            var htmlResources = this.CreateHtmlResourceSet();

-            var htmlResources = Container.Resolve<HtmlResourceSet>();
             HtmlResource[] images = htmlResources.Images.ToArray();

             images.Length.ShouldEqual(3);
@@ -25,13 +22,18 @@
             images.Any(image => image.File == "inconclusive.png").ShouldBeTrue();
         }

+        private HtmlResourceSet CreateHtmlResourceSet()
+        {
+            var configuration = new Configuration { OutputFolder = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\") };
+            var htmlResources = new HtmlResourceSet(configuration, FileSystem);
+            return htmlResources;
+        }
+
         [Test]
         public void ThenCanDetectAllResourcesSuccessfully()
         {
-            var configuration = Container.Resolve<Configuration>();
-            configuration.OutputFolder = configuration.OutputFolder = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\");
-
-            var htmlResources = Container.Resolve<HtmlResourceSet>();
+            var htmlResources = this.CreateHtmlResourceSet();
+
             HtmlResource[] resources = htmlResources.All.ToArray();

             resources.Length.ShouldEqual(9);
@@ -49,10 +51,8 @@
         [Test]
         public void ThenCanDetectAllScriptsSuccessfully()
         {
-            var configuration = Container.Resolve<Configuration>();
-            configuration.OutputFolder = configuration.OutputFolder = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\");
+            var htmlResources = this.CreateHtmlResourceSet();

-            var htmlResources = Container.Resolve<HtmlResourceSet>();
             HtmlResource[] scripts = htmlResources.Scripts.ToArray();

             scripts.Length.ShouldEqual(2);
@@ -63,10 +63,8 @@
         [Test]
         public void ThenCanDetectAllStylesheetsSuccessfully()
         {
-            var configuration = Container.Resolve<Configuration>();
-            configuration.OutputFolder = configuration.OutputFolder = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\");
+            var htmlResources = this.CreateHtmlResourceSet();

-            var htmlResources = Container.Resolve<HtmlResourceSet>();
             HtmlResource[] stylesheets = htmlResources.Stylesheets.ToArray();

             stylesheets.Length.ShouldEqual(6);


Update logic for SNI fixed IP warning

Update logic for SNI fixed IP warning

--- src/Certify.UI/Controls/ManagedItemSettings.xaml.cs
+++ src/Certify.UI/Controls/ManagedItemSettings.xaml.cs
@@ -94,7 +94,7 @@
                 }

                 // if user has chosen to bind SNI with a specific IP, warn and confirm save
-                if (item.RequestConfig.BindingUseSNI == true && !String.IsNullOrEmpty(item.RequestConfig.BindingIPAddress))
+                if (item.RequestConfig.BindingUseSNI == true && !String.IsNullOrEmpty(item.RequestConfig.BindingIPAddress) && item.RequestConfig.BindingIPAddress != "*")
                 {
                     if (MessageBox.Show(SR.ManagedItemSettings_InvalidSNI, SR.SaveError, MessageBoxButton.YesNoCancel, MessageBoxImage.Warning) != MessageBoxResult.Yes)
                     {


Change TODO to reference the actual tracking issue #5144

--- src/Common/src/System/Net/Logging/NetEventSource.cs
+++ src/Common/src/System/Net/Logging/NetEventSource.cs
@@ -7,7 +7,7 @@

 namespace System.Net
 {
-    // TODO: Issue #5101: This class should not change or it can introduce incompatibility issues.
+    // TODO: Issue #5144: This class should not change or it can introduce incompatibility issues.
     [EventSource(Name = "Microsoft-System-Net",
         Guid = "501a994a-eb63-5415-9af1-1b031260f16c")]
     internal sealed class NetEventSource : EventSource


Change Sign-In link for mobile view.

Change Sign-In link for mobile view.

--- src/CompetitionPlatform/Views/Shared/_Layout.cshtml
+++ src/CompetitionPlatform/Views/Shared/_Layout.cshtml
@@ -102,7 +102,7 @@
                                             My projects

-                                    Sign In
+                                    Sign In


Update StaticViewLocatorGenerator.cs

Update StaticViewLocatorGenerator.cs

--- src/Core2D.Generators/StaticViewLocatorGenerator.cs
+++ src/Core2D.Generators/StaticViewLocatorGenerator.cs
@@ -12,6 +12,7 @@
 	public class StaticViewLocatorGenerator : ISourceGenerator
 	{
 		private const string AttributeText = @"// <auto-generated />
+#nullable enable
 using System;

 namespace Core2D


Update XPolyCubicBezierSegment.cs

Update XPolyCubicBezierSegment.cs

[skip ci]

--- src/Core2D/Path/Segments/XPolyCubicBezierSegment.cs
+++ src/Core2D/Path/Segments/XPolyCubicBezierSegment.cs
@@ -28,9 +28,6 @@
         }

         /// <inheritdoc/>
-        public override string ToString()
-        {
-            return (Points != null) && (Points.Length >= 1) ? "C" + ToString(Points) : "";
-        }
+        public override string ToString() => (Points != null) && (Points.Length >= 1) ? "C" + ToString(Points) : "";
     }
 }


Fixed automapper mapping issue with ViewProject overage usage types

--- src/Exceptionless.Web/Models/Project/ViewProject.cs
+++ src/Exceptionless.Web/Models/Project/ViewProject.cs
@@ -17,6 +17,6 @@
     public long EventCount { get; set; }
     public bool HasPremiumFeatures { get; set; }
     public bool HasSlackIntegration { get; set; }
-    public ICollection<UsageInfo> OverageHours { get; set; }
+    public ICollection<OverageInfo> OverageHours { get; set; }
     public ICollection<UsageInfo> Usage { get; set; }
 }


+ overload ParseUrlQueryString(Uri)

+ overload ParseUrlQueryString(Uri)

--- src/FacebookSharp.Core/FacebookUtils/HttpUtility.cs
+++ src/FacebookSharp.Core/FacebookUtils/HttpUtility.cs
@@ -86,8 +86,8 @@
         }

         /// <summary>
+        /// Parse a URL query and fragment parameters into a key-value bundle.
         /// </summary>
-        /// Parse a URL query and fragment parameters into a key-value bundle.
         /// <param name="query">
         /// The URL query to parse.
         /// </param>
@@ -165,6 +165,20 @@
             return result;
         }

+        /// <summary>
+        /// Parse a URL query and fragment parameters into a key-value bundle.
+        /// </summary>
+        /// <param name="uri">
+        /// The uri to parse
+        /// </param>
+        /// <returns>
+        /// Returns a dictionary of keys and values for the querystring.
+        /// </returns>
+        public static IDictionary<string, List<string>> ParseUrlQueryString(Uri uri)
+        {
+            return ParseUrlQueryString(uri.Query);
+        }
+
         #endregion

     }


small tidies

small tidies

--- src/FilterLists.Agent/ListArchiver/DownloadLists.cs
+++ src/FilterLists.Agent/ListArchiver/DownloadLists.cs
@@ -13,12 +13,12 @@
     {
         public class Command : IRequest
         {
-            public Command(IEnumerable<ListInfo> lists)
+            public Command(IEnumerable<ListInfo> listInfo)
             {
-                Lists = lists;
+                ListInfo = listInfo;
             }

-            public IEnumerable<ListInfo> Lists { get; }
+            public IEnumerable<ListInfo> ListInfo { get; }
         }

         public class Handler : AsyncRequestHandler<Command>
@@ -27,10 +27,10 @@
             private readonly HttpClient _httpClient;
             private readonly IMediator _mediator;

-            public Handler(IMediator mediator, HttpClient httpClient)
+            public Handler(HttpClient httpClient, IMediator mediator)
             {
+                _httpClient = httpClient;
                 _mediator = mediator;
-                _httpClient = httpClient;
             }

             // https://stackoverflow.com/a/22492731/2343739
@@ -42,11 +42,11 @@
                 );
                 var buffer = new BufferBlock<ListDownload>();
                 downloader.LinkTo(buffer);
-                foreach (var list in request.Lists)
+                foreach (var list in request.ListInfo)
                     await downloader.SendAsync(list, cancellationToken);
                 downloader.Complete();

-                foreach (var _ in request.Lists)
+                foreach (var _ in request.ListInfo)
                 {
                     var listDownload = await buffer.ReceiveAsync(cancellationToken);
                     await _mediator.Send(new DownloadList.Command(listDownload), cancellationToken);


Uncommenting fact attribute for integration tests. Improving documentation

--- src/QuartzNET-DynamoDB.Tests/Integration/JobStoreTest.cs
+++ src/QuartzNET-DynamoDB.Tests/Integration/JobStoreTest.cs
@@ -33,9 +33,10 @@
 namespace Quartz.DynamoDB.Tests.Integration
 {
     /// <summary>
-    ///  Unit test for JobStore.
+    /// Integration test for JobStore.
     /// <author>These tests were submitted to Quartz.NET for the RAMJobStoreTest by Johannes Zillmann as part of issue QUARTZ-306.</author>
     /// <author>Luke Ryan - Adapted to test the Dynamo DB store.</author>
+	/// Note: These are integration tests and require connectivity to a dynamo instance. See <see cref="http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.html"/> for information on running dynamo locally.
     /// </summary>
     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification = "This is a test class. No need to implement dispose.")]
     public class JobStoreTest
@@ -57,8 +58,7 @@
             fJobStore.StoreJob(fJobDetail, true);
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestAcquireNextTrigger()
         {
             DateTimeOffset d = DateBuilder.EvenMinuteDateAfterNow();
@@ -87,7 +87,7 @@
             Assert.Equal(trigger3, fJobStore.AcquireNextTriggers(firstFireTime.AddSeconds(10), 1, TimeSpan.FromMilliseconds(1))[0]);
         }

-        //[Fact] [Trait("Category", "Integration")]
+        [Fact] [Trait("Category", "Integration")]
         public void TestAcquireNextTriggerBatch()
         {
             DateTimeOffset d = DateBuilder.EvenMinuteDateAfterNow();
@@ -172,8 +172,7 @@
             fJobStore.ReleaseAcquiredTrigger(trigger3);
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestTriggerStates()
         {
             IOperableTrigger trigger = new SimpleTriggerImpl("trigger1", "triggerGroup1", fJobDetail.Name, fJobDetail.Group, DateTimeOffset.Now.AddSeconds(100), DateTimeOffset.Now.AddSeconds(200), 2, TimeSpan.FromSeconds(2));
@@ -196,8 +195,7 @@
             Assert.Equal(0, fJobStore.AcquireNextTriggers(trigger.GetNextFireTimeUtc().Value.AddSeconds(10), 1, TimeSpan.FromMilliseconds(1)).Count);
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestRemoveCalendarWhenTriggersPresent()
         {
             // QRTZNET-29
@@ -211,8 +209,7 @@
             fJobStore.RemoveCalendar("cal");
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestStoreTriggerReplacesTrigger()
         {
             string jobName = "StoreTriggerReplacesTrigger";
@@ -246,8 +243,7 @@
             Assert.True(exceptionRaised, "an attempt to store duplicate trigger succeeded");
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void PauseJobGroupPausesNewJob()
         {
             string jobName1 = "PauseJobGroupPausesNewJob";
@@ -270,24 +266,21 @@
             Assert.Equal(TriggerState.Paused, fJobStore.GetTriggerState(tr.Key));
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestRetrieveJob_NoJobFound()
         {
             IJobDetail job = fJobStore.RetrieveJob(new JobKey("not", "existing"));
             Assert.Null(job);
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestRetrieveTrigger_NoTriggerFound()
         {
             IOperableTrigger trigger = fJobStore.RetrieveTrigger(new TriggerKey("not", "existing"));
             Assert.Null(trigger);
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void testStoreAndRetrieveJobs()
         {
             // Store jobs.
@@ -308,8 +301,7 @@
         /// <summary>
         /// Storing the same job twice with replaceExisting false the second time throws an exception.
         /// </summary>
-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestStoreExistingJobsThrowsException()
         {
             // Store jobs.
@@ -321,8 +313,7 @@
         /// <summary>
         /// Storing the same job twice with replaceExisting true does not throw an exception.
         /// </summary>
-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestStoreExistingJobsOverwrite()
         {
             // Store jobs.
@@ -335,8 +326,7 @@
             Assert.Equal(jobKey, storedJob.Key);
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestStoreAndRetrieveTriggers()
         {
             // Store jobs and triggers.
@@ -361,8 +351,7 @@
             }
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestAcquireTriggers()
         {
             ISchedulerSignaler schedSignaler = new SampleSignaler();
@@ -404,8 +393,7 @@
             }
         }

-        //[Fact] [Trait("Category", "Integration")]
-
+        [Fact] [Trait("Category", "Integration")]
         public void TestAcquireTriggersInBatch()
         {
             ISchedulerSignaler schedSignaler = new SampleSignaler();


Fix duplicate grouping when changing the filter

--- ParkenDD/ViewModels/MainViewModel.cs
+++ ParkenDD/ViewModels/MainViewModel.cs
@@ -819,7 +819,6 @@
         private void SetParkingLotFilterToAlphabetically()
         {
             ParkingLotFilterMode = ParkingLotFilterMode.Alphabetically;
-            UpdateParkingLotListFilter();
         }
 #endregion

@@ -830,7 +829,6 @@
         private void SetParkingLotFilterToDistance()
         {
             ParkingLotFilterMode = ParkingLotFilterMode.Distance;
-            UpdateParkingLotListFilter();
         }
 #endregion

@@ -841,7 +839,6 @@
         private void SetParkingLotFilterToAvailability()
         {
             ParkingLotFilterMode = ParkingLotFilterMode.Availability;
-            UpdateParkingLotListFilter();
         }
 #endregion


Fixed typo

Fixed typo

--- src/test/Test.FAKECore/PackageMgt/FeedSpecs.cs
+++ src/test/Test.FAKECore/PackageMgt/FeedSpecs.cs
@@ -9,7 +9,7 @@
         It should_return_the_package_url = () => NuGetHelper.getRepoUrl().ShouldEqual(NugetData.RepositoryUrl);
     }

-    public class when_discorvering_the_lastest_FAKE_package
+    public class when_discovering_the_lastest_FAKE_package
     {
         static NuGetHelper.NuSpecPackage _package;
         Because of = () => _package = NuGetHelper.getLatestPackage(NuGetHelper.getRepoUrl(), "FAKE");


Minimize chances of dispose race conditions

--- src/GitHub.VisualStudio/UI/WindowController.xaml.cs
+++ src/GitHub.VisualStudio/UI/WindowController.xaml.cs
@@ -74,8 +74,8 @@
             {
                 if (!disposed)
                 {
+                    disposed = true;
                     Stop();
-                    disposed = true;
                 }
             }
         }


Added basic code generation for code expressions.

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

                 this.code.WriteLineNoTabs("");
+                this.code.WriteLine("private ParseResult<T> ReturnHelper<T>(Func<T> wrappedCode)");
+                this.code.WriteLine("{");
+                this.code.Indent++;
+                this.code.WriteLine("return null;");
+                this.code.Indent--;
+                this.code.WriteLine("}");
+
+                this.code.WriteLineNoTabs("");
                 this.code.WriteLine("private void ReportError(Cursor cursor, string expected)");
                 this.code.WriteLine("{");
                 this.code.Indent++;
@@ -282,6 +290,16 @@
             protected override void WalkClassExpression(ClassExpression classExpression)
             {
                 this.code.WriteLine(this.currentResultName + " = this.ParseClass(ref cursor, " + ToLiteral(string.Join(string.Empty, classExpression.Ranges.SelectMany(r => new[] { r.Min, r.Max }))) + (classExpression.Negated ? ", negated: true" : "") + (classExpression.IgnoreCase ? ", ignoreCase: true" : "") + ");");
+            }
+
+            protected override void WalkCodeExpression(CodeExpression codeExpression)
+            {
+                this.code.WriteLine(this.currentResultName + " = this.ReturnHelpler(() =>");
+                this.code.WriteLine("{");
+                this.code.Indent++;
+                this.code.WriteLine(codeExpression.Code);
+                this.code.Indent--;
+                this.code.WriteLine("});");
             }

             protected override void WalkSequenceExpression(SequenceExpression sequenceExpression)


Fix initial scrollbar arrange.

Fix initial scrollbar arrange.

--- Perspex.Controls/Primitives/Track.cs
+++ Perspex.Controls/Primitives/Track.cs
@@ -129,13 +129,13 @@
                 if (this.Orientation == Orientation.Horizontal)
                 {
                     var width = finalSize.Width * thumbFraction;
-                    var x = (finalSize.Width - thumb.ActualSize.Width) * valueFraction;
+                    var x = (finalSize.Width - width) * valueFraction;
                     thumb.Arrange(new Rect(x, 0, width, finalSize.Height));
                 }
                 else
                 {
                     var height = finalSize.Height * thumbFraction;
-                    var y = (finalSize.Height - thumb.ActualSize.Height) * valueFraction;
+                    var y = (finalSize.Height - height) * valueFraction;
                     thumb.Arrange(new Rect(0, y, finalSize.Width, height));
                 }
             }


Better error message for null PlayFabSettings.TitleId

--- PlayFabSDK/source/PlayFabSettings.cs
+++ PlayFabSDK/source/PlayFabSettings.cs
@@ -1,5 +1,6 @@
 using Newtonsoft.Json;
 using Newtonsoft.Json.Converters;
+using System;

 namespace PlayFab
 {
@@ -14,17 +15,18 @@
         };
         public static Formatting JsonFormatting = Formatting.None;

-        public static bool UseDevelopmentEnvironment = false;
-		public static string DevelopmentEnvironmentURL = ".playfabsandbox.com";
-		public static string ProductionEnvironmentURL = ".playfabapi.com";
+		const string ProductionEnvironmentURL = ".playfabapi.com";
 		public static string LogicServerURL = null;
-		public static string TitleId = null;
+        public static string TitleId { get; set; }
 		public static ErrorCallback GlobalErrorHandler  { get; set; }
 		public static string DeveloperSecretKey = null;

 		public static string GetURL()
 		{
-			string baseUrl = UseDevelopmentEnvironment ? DevelopmentEnvironmentURL : ProductionEnvironmentURL;
+            if (string.IsNullOrWhiteSpace(TitleId))
+                throw new InvalidOperationException("PlayFabSettings.TitleId must be initialized to the value of your title's ID before making API requests.");
+
+			string baseUrl = ProductionEnvironmentURL;
 			if(baseUrl.StartsWith("http"))
 				return baseUrl;
 			return "https://"+TitleId+baseUrl;


Fix compiler errors.

Fix compiler errors.

--- tools/Build/Build.cs
+++ tools/Build/Build.cs
@@ -1,9 +1,7 @@
 using System;
 using System.IO;
 using System.Linq;
-using System.Text.RegularExpressions;
 using Faithlife.Build;
-using static Faithlife.Build.AppRunner;
 using static Faithlife.Build.BuildUtility;
 using static Faithlife.Build.DotNetRunner;

@@ -46,10 +44,10 @@

 		void codeGen(bool verify)
 		{
-			string configuration = dotNetBuildSettings.BuildOptions.ConfigurationOption.Value;
+			var configuration = dotNetBuildSettings.BuildOptions!.ConfigurationOption!.Value;
 			var toolPath = FindFiles($"src/{codegen}/bin/{configuration}/netcoreapp*/{codegen}.dll").FirstOrDefault();

-			string verifyOption = verify ? "--verify" : null;
+			var verifyOption = verify ? "--verify" : null;

 			RunDotNet(toolPath, "___", "___", "--newline", "lf", verifyOption);
 		}


hello added

hello added

--- Project1/Views/ToDoList/Index.cshtml
+++ Project1/Views/ToDoList/Index.cshtml
@@ -6,7 +6,7 @@
 }

Index

-
+
hello

     @Html.ActionLink("Create New", "Create" )


#353 Specifying Sort - fixed sorting queries copy and paste error took ages to spot - had changed signature but not string specifying bound DLL name for `results_create_for_query_sorted`

--- Realm.Shared/native/NativeResults.cs
+++ Realm.Shared/native/NativeResults.cs
@@ -23,7 +23,7 @@
         [DllImport(InteropConfig.DLL_NAME, EntryPoint = "results_create_for_query", CallingConvention = CallingConvention.Cdecl)]
         internal static extern IntPtr create_for_query(SharedRealmHandle sharedRealm, QueryHandle queryPtr, IntPtr objectSchema);

-        [DllImport(InteropConfig.DLL_NAME, EntryPoint = "results_create_for_query", CallingConvention = CallingConvention.Cdecl)]
+        [DllImport(InteropConfig.DLL_NAME, EntryPoint = "results_create_for_query_sorted", CallingConvention = CallingConvention.Cdecl)]
         internal static extern IntPtr create_for_query_sorted(SharedRealmHandle sharedRealm, QueryHandle queryPtr, IntPtr objectSchema, SortOrderHandle sortOrderHandle);

         [DllImport(InteropConfig.DLL_NAME, EntryPoint = "results_destroy", CallingConvention = CallingConvention.Cdecl)]


fix typo (#2804)

fix typo (#2804)

--- Realm/Realm/Linq/IRealmCollection.cs
+++ Realm/Realm/Linq/IRealmCollection.cs
@@ -29,7 +29,7 @@
     /// </summary>
     /// <param name="sender">The <see cref="IRealmCollection{T}"/> being monitored for changes.</param>
     /// <param name="changes">The <see cref="ChangeSet"/> describing the changes to a <see cref="IRealmCollection{T}"/>,
-    /// or <c>null</c> if an has error occurred.</param>
+    /// or <c>null</c> if an error has occurred.</param>
     /// <param name="error">An exception that might have occurred while asynchronously monitoring a
     /// <see cref="IRealmCollection{T}"/> for changes, or <c>null</c> if no errors have occurred.</param>
     /// <typeparam name="T">Type of the <see cref="RealmObject"/>, <see cref="EmbeddedObject"/>, or primitive which is being returned.</typeparam>


add of new values

add of new values

--- Applications/Appleseed.Base.Alerts.Console/Appleseed.Base.Alerts/Model/SolrResponseItem.cs
+++ Applications/Appleseed.Base.Alerts.Console/Appleseed.Base.Alerts/Model/SolrResponseItem.cs
@@ -35,5 +35,7 @@
         public string status { get; set; }

 		public DateTime date_last_indexed { get; set; }
+
+        public DateTime date_last_indexed { get; set;
     }
 }