示例#1
0
        public void CloseParking(string parkingName)
        {
            var command = new CloseParkingCommand(parkingName);

            var commandHandler = new CloseParkingCommandHandler(_dbContext, _commandStoreService);

            commandHandler.Handle(command);
        }
示例#2
0
        public void CloseParking(string parkingName)
        {
            var command = new CloseParkingCommand {
                ParkingName = parkingName
            };

            _commandHandler.Handle(command);
        }
        public async Task Should_CloseParking()
        {
            // Arrange
            var LHandleCloseParking = new CloseParkingCommandHandler(FMockDbContext.Object, FCommands);
            var LCommand            = new CloseParkingCommand
            {
                ParkingName = "Parking-786359"
            };

            // Act
            var LResult = await LHandleCloseParking.Handle(LCommand, CancellationToken.None);

            // Assert
            FMockDbContext
            .Verify(AMockDbContext => AMockDbContext.SaveChangesAsync(CancellationToken.None), Times.Once);

            LResult.ToString().Should().Be("()");
        }
        public void Handle(CloseParkingCommand command)
        {
            var parking = _dbContext.Set <Models.Parking>()
                          .FirstOrDefault(p => p.Name == command.ParkingName);

            if (parking == null)
            {
                throw new Exception($"Cannot find parking '{command.ParkingName}'.");
            }
            if (!parking.IsOpened)
            {
                throw new Exception($"Parking '{command.ParkingName}' is already closed.");
            }

            parking.IsOpened = false;
            _dbContext.SaveChanges();

            _commandStoreService.Push(command);
        }