示例#1
0
        public async Task <DashboardState> Handle(DateTimeOffset date, UserId user, DashboardId dashboard)
        {
            var state        = _readStateUseCase.Handle(date, user);
            var virtualState = _readVirtualStateUseCase.Handle(date, user);

            return(await _manager.GetState(date, user, dashboard, state, virtualState));
        }
示例#2
0
        public void IsStateFailedToCreateForUnknownUser()
        {
            var user         = new UserId(string.Empty);
            var stateManager = new StateManagerBuilder().Build();
            var readUseCase  = new ReadStateUseCase(stateManager);

            Assert.Throws <InvalidUserException>(() => readUseCase.Handle(DateTimeOffset.MinValue, user));
        }
示例#3
0
        public void IsStateCreated()
        {
            var stateManager = new StateManagerBuilder().Build();
            var readUseCase  = new ReadStateUseCase(stateManager);

            var state = readUseCase.Handle(DateTimeOffset.MinValue, new("user"));

            state.Should().NotBeNull();
        }
        public IActionResult Get([Required] DateTimeOffset date)
        {
            var userId = new UserId(User.Identity?.Name ?? string.Empty);

            _logger.LogInformation($"Retrieve state for user '{userId}' at {date}");
            var state   = _readUseCase.Handle(date, userId);
            var brokers = state.Brokers
                          .Select(b => new BrokerDto(
                                      b.Id,
                                      b.DisplayName,
                                      b.Accounts
                                      .Select(a => new AccountDto(a.Id, a.Currency, a.DisplayName, a.Balance))
                                      .ToArray(),
                                      b.Inventory
                                      .Select(a => new AssetDto(a.Id, a.Isin, a.Count))
                                      .ToArray()))
                          .ToArray();
            var currencies = _currencyConfig.GetAll()
                             .Select(c => new CurrencyDto(c, _currencyConfig.GetFormat(c)))
                             .ToArray();
            var dto = new StateDto(brokers, currencies);

            return(new JsonResult(dto));
        }