2025-01-30 19:04:26 -05:00

31 lines
876 B
C#

// Copyright (c) Microsoft Corporation. All rights reserved.
// Modifier.cs
#region snippet_Modifier
using Microsoft.AutoGen.Contracts;
using Microsoft.AutoGen.Core;
using ModifyF = System.Func<int, int>;
namespace GettingStartedSample;
[TypeSubscription("default")]
public class Modifier(
AgentId id,
IAgentRuntime runtime,
ModifyF modifyFunc
) :
BaseAgent(id, runtime, "Modifier", null),
IHandle<CountMessage>
{
public async ValueTask HandleAsync(CountMessage item, MessageContext messageContext)
{
int newValue = modifyFunc(item.Content);
Console.WriteLine($"\nModifier:\nModified {item.Content} to {newValue}");
CountUpdate updateMessage = new CountUpdate { NewCount = newValue };
await this.PublishMessageAsync(updateMessage, topic: new TopicId("default"));
}
}
#endregion snippet_Modifier