Beispiel #1
0
            public override async Task <object> Handle(Command cmd, CancellationToken cancellationToken)
            {
                var owned = await _storage.GetStocks(cmd.UserId);

                var alerts = await _alertsStorage.GetAlerts(cmd.UserId);

                foreach (var o in owned)
                {
                    if (o.State.Owned == 0)
                    {
                        continue;
                    }

                    var exists = alerts.Any(a => a.State.Ticker == o.State.Ticker);
                    if (!exists)
                    {
                        var a = new Alert(o.State.Ticker, cmd.UserId);

                        a.AddPricePoint("Migrated average cost", o.State.AverageCost);

                        await _alertsStorage.Save(a);
                    }
                }

                return(new object());
            }
Beispiel #2
0
            public override async Task <object> Handle(Command cmd, CancellationToken cancellationToken)
            {
                var alert = await _alertsStorage.GetAlert(cmd.Ticker, cmd.UserId);

                if (alert == null)
                {
                    alert = new Alert(cmd.Ticker, cmd.UserId);
                }

                alert.RemovePricePoint(cmd.Id.Value);

                await _alertsStorage.Save(alert);

                return(new {
                    ticker = alert.State.Ticker.Value,
                    points = alert.State.PricePoints
                });
            }
Beispiel #3
0
            public override async Task <object> Handle(Command cmd, CancellationToken cancellationToken)
            {
                var alert = await _alertsStorage.GetAlert(cmd.Ticker, cmd.UserId);

                if (alert == null)
                {
                    alert = new Alert(cmd.Ticker, cmd.UserId);
                }

                var added = alert.AddPricePoint(cmd.Description, cmd.Value);

                if (!added)
                {
                    throw new InvalidOperationException("Alert for the price point already exists");
                }

                await _alertsStorage.Save(alert);

                return(new {
                    ticker = alert.State.Ticker.Value,
                    points = alert.State.PricePoints
                });
            }