Пример #1
0
        public Task Handle(FactoryDestroyedEvent evnt)
        {
            var factory = _state.GetFactory(evnt.EntityId);

            factory.State = FactoryState.Destroying;
            return(Task.CompletedTask);
        }
Пример #2
0
        public Task Handle(FactoryDestroyedEvent evnt)
        {
            var factory = _dbContext.Factories.FirstOrDefault(f => f.FactoryId == evnt.EntityId);

            if (factory != null)
            {
                factory.State = FactoryState.Destroying;
            }
            return(Task.CompletedTask);
        }
Пример #3
0
        public async Task <EventResult> DeleteFactory(Guid factoryId)
        {
            var player = await _playerRepo.GetPlayer(Context.User);

            var factory = await _repo.GetFactory(factoryId);

            if (factory.OwnerId != player.PlayerId)
            {
                throw new UnauthorizedAccessException("User does not own the factory");
            }
            if (factory.State == FactoryState.Destroying || factory.State == FactoryState.Destroyed)
            {
                // TODO: Do we need to check for this?
            }

            var evnt    = new FactoryDestroyedEvent(factoryId, player);
            var results = await _eventStore.ProduceAsync(evnt);

            return(new EventResult
            {
                Events = new[] { evnt },
                Results = results,
            });
        }