コード例 #1
0
 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));
 }
コード例 #2
0
        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;
        }