dotnet-installer/src/Microsoft.DotNet.ProjectModel.Server/Messengers/ProjectDiagnosticsMessenger.cs

33 lines
1.1 KiB
C#
Raw Normal View History

2015-12-09 09:57:45 -08:00
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System;
using System.Linq;
using Microsoft.DotNet.ProjectModel.Server.Models;
namespace Microsoft.DotNet.ProjectModel.Server.Messengers
{
internal class ProjectDiagnosticsMessenger : Messenger<ProjectSnapshot>
2015-12-09 09:57:45 -08:00
{
public ProjectDiagnosticsMessenger(Action<string, object> transmit)
: base(MessageTypes.Diagnostics, transmit)
{ }
protected override bool CheckDifference(ProjectSnapshot local, ProjectSnapshot remote)
2015-12-09 09:57:45 -08:00
{
return remote.ProjectDiagnostics != null &&
Enumerable.SequenceEqual(local.ProjectDiagnostics, remote.ProjectDiagnostics);
}
protected override object CreatePayload(ProjectSnapshot local)
2015-12-09 09:57:45 -08:00
{
return new DiagnosticsListMessage(local.ProjectDiagnostics);
}
protected override void SetValue(ProjectSnapshot local, ProjectSnapshot remote)
2015-12-09 09:57:45 -08:00
{
remote.ProjectDiagnostics = local.ProjectDiagnostics;
}
}
}