40 lines
967 B
C#
40 lines
967 B
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using MfGames.Gallium;
|
|
using MfGames.Nitride.Pipelines;
|
|
using Serilog;
|
|
using Zio;
|
|
|
|
namespace NitridePipelines.Pipelines;
|
|
|
|
public class DelayPipeline1 : PipelineBase
|
|
{
|
|
private readonly ILogger logger;
|
|
|
|
public DelayPipeline1(ILogger logger, InputPipeline1 input1)
|
|
{
|
|
this.logger = logger.ForContext<DelayPipeline1>();
|
|
this.AddDependency(input1);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public override IAsyncEnumerable<Entity> RunAsync(
|
|
IEnumerable<Entity> entities,
|
|
CancellationToken cancellationToken = default
|
|
)
|
|
{
|
|
entities = entities.Select(entity =>
|
|
{
|
|
Task.Delay(1000, cancellationToken).Wait(cancellationToken);
|
|
|
|
this.logger.Information("Delayed {Value}", entity.Get<UPath>());
|
|
|
|
return entity;
|
|
});
|
|
|
|
return entities.ToAsyncEnumerable();
|
|
}
|
|
}
|