40 lines
1,012 B
C#
40 lines
1,012 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 OutputPipeline1 : PipelineBase
|
|
{
|
|
private readonly ILogger logger;
|
|
|
|
public OutputPipeline1(ILogger logger, DelayPipeline1 delay1, InputPipeline2 input2)
|
|
{
|
|
this.logger = logger.ForContext<OutputPipeline1>();
|
|
this.AddDependency(delay1, input2);
|
|
}
|
|
|
|
/// <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("Pretended to write {Value}", entity.Get<UPath>());
|
|
|
|
return entity;
|
|
});
|
|
|
|
return entities.ToAsyncEnumerable();
|
|
}
|
|
}
|