public LogFileReportGeneratorActor( ILogFileRptGeneratorService logFileRptGeneratorService, ILogFilesParsingService logFilesParsingService, IDenialsRptGeneratorService denialsRptGeneratorService) { logFilesExcelProviderActor = Context.ActorOf(Context.DI().Props <LogFilesExcelProviderActor>(), ActorPaths.logFilesExcelProviderActor.Name); getCheckInsActor = Context.ActorOf(Context.DI().Props <GetCheckInsActor>(), ActorPaths.getCheckInsActor.Name); this.logFileRptGeneratorService = logFileRptGeneratorService; this.logFilesParsingService = logFilesParsingService; this.denialsRptGeneratorService = denialsRptGeneratorService; Receive <OpenLogFileViewModel>(viewModel => GenerateReportAsync(viewModel)); Receive <string>(message => Context.Parent.Forward(message)); }
public GetCheckInsActor(ILogFileRptGeneratorService logFileRptGeneratorService) { logFilesExcelProviderActor = Context.ActorOf(Context.DI().Props <LogFilesExcelProviderActor>(), ActorPaths.logFilesExcelProviderActor.Name); var sourceQueue = Source.Queue <LogRptDto>(0, OverflowStrategy.Backpressure) .Recover(ex => throw ex) .SelectAsyncUnordered(int.MaxValue, l => logFileRptGeneratorService.GetCheckInforInUseOuts(l, vm.LogFiles)) .ToMaterialized(Sink.ActorRef <Tuple <bool, LogRptDto> >(logFilesExcelProviderActor, logFileRptGeneratorService.GetReportRows()), Keep.Left) .Run(Context.Materializer()); Receive <OpenLogFileViewModel>(vmodel => { vm = vmodel; Stash.UnstashAll(); BecomeStacked(() => { Receive <LogRptDto>(l => sourceQueue.OfferAsync(l)); }); }); ReceiveAny(_ => Stash.Stash()); this.logFileRptGeneratorService = logFileRptGeneratorService; }