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)); }
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)); }
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)); }