public CreateSoldierEvent GetCreateSoldierEvent(Guid gameId, Army army, string troopType, string ownerUserId, bool immediately = false) { var snap = _domain.GetGameSnapshot(gameId); var game = snap?.Payload as GameAggregate; double productionTime = 0; if (!immediately) { productionTime = _gameSettings.ProductionTime; if (game != null) { productionTime = productionTime * GameSpeedHelper.GetSpeedValue(game.Speed); } } var @event = new CreateSoldierEvent(army, troopType, DateTime.UtcNow, TimeSpan.FromMinutes(productionTime), ownerUserId); return(@event); }
private CreateSoldierEvent GetLatestProductionTime(Guid gameId, Army army) { CreateSoldierEvent latestEvent = _domain.GetLatestEvent <CreateSoldierEvent>(gameId, e => e.Army == army); return(latestEvent); }