Example #1
0
        private void PublishToKafka(PublishPortfolioStateToKafka cmd)
        {
            Monitor();

            var portfolioSate = new PortfolioStateViewModel
            {
                AccountCount  = _porfolioState.SupervizedAccounts.Count,
                AsOfDate      = DateTime.Now,
                PortfolioName = Self.Path.Name
            };
            var totalBillings =
                _porfolioState.SupervizedAccounts.Aggregate(0.0, (x, y) => x + y.Value.BalanceAfterLastTransaction);

            portfolioSate.TotalBalance = (decimal)totalBillings;

            var key = portfolioSate.PortfolioName;

            PortfolioStatePublisherActor.Tell(new Publish(key, portfolioSate));
            _log.Debug($"Sending kafka message for portfolio {key}");
        }
Example #2
0
        private void GetMyStatus()
        {
            Monitor();

            _stopWatch = Stopwatch.StartNew();
            _stopWatch.Start();

            var portfolioSate = new PortfolioStateViewModel
            {
                AccountCount  = _porfolioState.SupervizedAccounts.Count,
                AsOfDate      = DateTime.Now,
                PortfolioName = Self.Path.Name,
                TotalBalance  = _porfolioState.CurrentPortfolioBalance
            };

            Sender.Tell(new TellMeYourPortfolioStatus(
                            $"{_porfolioState.SupervizedAccounts.Count} accounts. " +
                            $"I was last booted up on: {_porfolioState.LastBootedOn:yyyy-MM-dd h:mm tt}",
                            portfolioSate));

            _stopWatch.Stop();
            ReportStopwatchInfo("GetMyStatus", _stopWatch.ElapsedMilliseconds);
        }
Example #3
0
 public TellMeYourPortfolioStatus(string message)
 {
     Message = message;
     PortfolioStateViewModel = new PortfolioStateViewModel();
 }
Example #4
0
 public TellMeYourPortfolioStatus(string message, PortfolioStateViewModel portfolioStateViewModel)
 {
     Message = message;
     PortfolioStateViewModel = portfolioStateViewModel;
 }
Example #5
0
 public TellMeYourPortfolioStatus()
 {
     Message = "";
     PortfolioStateViewModel = new PortfolioStateViewModel();
 }